Eiji
My ideal code editor
Here is my personal list:
-
Real multi-thread support. Panel, sidebar or file tab should not freeze whole app and OS.
-
Access to symbolic links for directories only on request, open them in another sidebar tab, don’t read them recursively and don’t index them - at least by default or add timeout for it.
-
Command palette

-
Version bigger than or equal to
1.0.0should have everything configurable through GUI (unlike Atom editor) - it’s ok to make configurable editor using json configuration files at start, but I mostly don’t have a time for it and want simply use checkbox. -
Color scheme editor almost like in
Intellij. -
Fully integrated compiler for every supported language - no regex-based syntax highlighting - in Elixir case support additional style(s) for:
a) macro calls
b) private function calls
c) core lang modules
d) modules from dependencies
e) not aliased modules -
All-in-one truly advanced color picker. Of course for base work any is ok, but for example when working with
CSSit could be really uncomfortable.
Good picker should allow to choose picker type (for example triangle), preferred input and output format. -
A little, just little better prompts. For example for:
String.with caps lock disabled editor should not show:String.Charsprompt and similarly for enabled caps lock. It’s really uncomfortable for longer session when every time I see modules filling all prompt places. Also extra prompts for structs. -
Need for speed support!
Some editors have really big performance problems with lots of small files and/or really big file(s). -
Built-in minifier and beautifier + support for new Elixir formatter
-
Auto-recompile file on input or on save.
-
Good integration with documentation. For example on hover editor should show pop-up with first paragraph of docs description + provide a link (opened in sidebar) for full documentation.
-
Support for Friday black kittens - i.e. automatically find bugs and performance issues, hahah

-
Really good support for
Git. GUI shortcuts for rebase features, collision resolver, better diffs like in ExUnit and more. -
Support for most-popular code hosting services like:
BitBucket,GitHubandGitLab-
adding comments, creating snippets, issues and pull requests + notifications should be minimum for every editor.
-
Support for preview generated code when using meta-programming.
-
Suport for
mixtasks -
Connection with internet checker.
-
Support for
iexhelpers. For example one-letter helpers in command palette. -
Good integration with OS (default language, apps etc)
-
Markdown support + preview
-
Built-in multi-communicator with code quoting

-
Advanced find and replace tool - support for preview and multiple files changing.
-
Support for auto file updating - for example auto update
README.mdon new version pushed to hex.pm. -
Hidden mini-games, Adblock and other Easter eggs

-
Code refactoring tools like find duplicates or auto rename project and/or module after move/rename directory or file.
-
Good dark theme
-
Time is up! - notification error for specified in configuration time - just to make sure that we have enough time for sleep

-
Tips for example for weird atoms:
TIP: Change atom at line … column … from:exampleAtomto:example_atom. -
Code templates - for example
GenServertemplate -
CSS style generator (like in developer tools)
-
Vertical tabs with grouping support
-
Customizable menus
-
Achievements support

-
Ectomigration and model GUI generator -
Builtin configuration preview, observer and other debug/statistic tools
-
José Valim’s watermark signature below combo counter
-
Forum integration - writing new posts and replies + notifications
-
Rest time! Block editor for
xminutes everyyhours. -
Spy tools to analyze what parts of code we read too long.

Most Liked
NobbZ
Most of these requirements just scream for Emacs …
hubertlepicki
and here I am, with almost bare bones Vim set up.
hubertlepicki
You do not have to change habits if your first programming experience was C written in vim in first place.
cs-victor-nascimento
I’m on the Emacs side of things. Took me a while… but I’m glad I did go all in on Emacs.
My current line of though is that every programmer should master at least one good programming text editor (not a full featured IDE like IntelliJ but one pure text editor like Emacs/Vim/Kate/Notepad++/Etc). This is good skill for being productive. You should be really good at shortcuts, text search/replace/count/selection/etc.
Then, if you feel the need, go to an IDE. Not before dealing with a pure “text buffer” oriented text editor.
Just a tip: do not try to learn a new language while learning Emacs… I tried to learn Erlang and Emacs together (there were no Eclipses/IntelliJs at the time for Erlang) coming from a Java OO world with all the tools that Java provides… Boy that was a baaaaaad decision… but after a while (could have been a shorter while…) I feel comfortable with Emacs. The typing hands position thing truly makes sense when you think about it…
peerreynders
Here is my personal list:
- …
… - …
I like to allocate the maximum amount of “space in my head” to focusing on solving the problem at hand, so I’m loath to reserve any amount of that space towards remembering how to interact with some overwrought Editor/IDE.
If there are repetitive tasks that need automating there is probably a way to script it in the shell or Vim/Emacs.
To get sufficient mileage out of “full featured” products you are either drowning in a medium with way too much boilerplate and/or your are just cranking out “nearly” the same thing over and over again.
And lets remember that sometimes repetition is a good thing because that is how we learn (or get motivated to do things in a better way next time).









