9fans / plan9port

Plan 9 from User Space
https://9fans.github.io/plan9port/
Other
1.6k stars 318 forks source link

Proposal for Acme Editor Enhancements #659

Open mibk opened 1 week ago

mibk commented 1 week ago

I have a custom version of Acme with a few modifications tailored to my use case. Over the years, I've experimented with various features; I've kept those that worked and discarded those that didn't. Below is a list of changes that I believe could be beneficial to include in the official version of Acme. Before submitting any pull requests, I'd appreciate your feedback on whether these changes are worth merging into the master branch.

Fixed Strings as Regexp Patterns

I've implemented functionality similar to Plan 9's grep, where an expression starting with * treats the rest of the expression as literal characters. For instance, Edit x/*items[0]/ matches items[0], not items0.

Support for \t (in addition to \n)

While not strictly necessary, I believe adding support for \t enhances functionality without any drawbacks.

Convenient Double Click to Quickly Change Regexp Pattern

I've added support for / similar to the existing support for " and '. When double-clicking next to a / (e.g., in Edit ,x/pattern expr/ command), the entire pattern is selected.

Support for the Del Key

I've included support for the Del key, as I see no reason it should not be supported.

Controversial Changes

These changes might be more contentious, and I would appreciate your thoughts on them:

Prevent Cmd+Q from Quitting the App

Rationale: In its default state, hitting Cmd+Q in Acme closes the application immediately. This behaviour can lead to accidental closures and potential loss of unsaved work.

I have a CL that removes this feature, requiring the user to use the Exit command.

Implement Cmd+A

Rationale: Introducing the Cmd+A command provides a convenient way to select all text within the window body. This one is similar to Cmd+S which was previously declined. It might go against the spirit of the editor, but it proved to be very useful in practice.


Would these enhancements be worth adding to the master branch? Your insights would be greatly appreciated.

Thank you!