An angry and likely unpopular rant about code editors
Things I want to see in a code editor:
- Indent selection with tab (with configurable indent convention) and dedent selection with shift-tab. This is the major criterion that makes it more useful than a text editor.
- Syntax highlighting. I prefer Solarised-Light, assuming you’ve actually implemented it correctly, but could probably live with another.
- Decent find and replace, preferably with a regex option, which doesn’t tend to crash the editor when you change the options (glares at Mousepad).
- Navigate to numbered line.
- Runs on both Windows and Linux, or at least runs under Wine without incapacitating typing lag. Glares at Notepad++ (though oddly, that didn’t happen on my old (32-bit Pentium 4) system, only my current one).
- Tabbed multiple document interface.
- Togglable word-wrap.
- Preferably, the ability to open large files without line breaks without crashing (sideglances at every Linux GUI text editor except GUI Emacs, which has its own problems).
- Preferably, recordable/repeatable keystroke sequences as macros.
Things I don’t want to see:
- I type something. I go back and place a bracket or quotation mark after part of it, and then before that part (or vice versa). If this process inserted any more than two characters, allez en enfer.
- More generally, inserting any characters under the presumption that I’d want them. Glares at darn near everything.
- Tangibly slowing down my system. It’s an editor, not a browser. A text editor should be very perceptibly lighter than a word processor. Glares at Atom and VSCode.
- Screwing with the indentation of stuff I paste. Glares at Atom.
- When I disable “auto-indent on paste”, still screwing with the indentation of stuff I paste just in a different way. Glares lividly at Atom. (Apparently they don’t think screwing with the indent to match rather than increase the destination indent counts as an “auto indent” or something like that. Apparently they also want me to use a different key combo to actually paste properly.)
- In general, making it difficult, confusing or impossible to turn any of the above (or indeed automatic indent in general) off.
- Nannying my whitespace automatically on save, or in general doing anything to the document that I didn’t do explicitly, or in general doing anything at all under the assumption that it knows what I’m doing better than I do. Uninstalls Atom with prejudice.
If you want me to take to your editor, I want to be able to take to using it, to discover and appreciate its useful features as I go along. I do not want to be treated as some heretical freak of nature and given papercuts and annoyances at every turn because I, scandalously, learned to code in Notepad and Wordpad. I do not want to be infantilised and treated like I don’t know what I’m doing and Editor Knows Best.
If your editor is not less annoying to use than (Note|Word|Leaf)pad, then screw it, I’ll just use those. Though on Linux, I’m currently using mainly Mousepad, as the find and replace bugs and limitations are the only serious annoyance with it. Dependent on correct configuration, Notepad++ is still ideal though, assuming Windows.