Eiji

Eiji

My ideal code editor

Here is my personal list:

  1. Real multi-thread support. Panel, sidebar or file tab should not freeze whole app and OS.

  2. 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.

  3. Command palette :smile:

  4. Version bigger than or equal to 1.0.0 should 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.

  5. Color scheme editor almost like in Intellij.

  6. 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

  7. All-in-one truly advanced color picker. Of course for base work any is ok, but for example when working with CSS it could be really uncomfortable.
    Good picker should allow to choose picker type (for example triangle), preferred input and output format.

  8. A little, just little better prompts. For example for: String. with caps lock disabled editor should not show: String.Chars prompt 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.

  9. Need for speed support! :smile: Some editors have really big performance problems with lots of small files and/or really big file(s).

  10. Built-in minifier and beautifier + support for new Elixir formatter

  11. Auto-recompile file on input or on save.

  12. 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.

  13. Support for Friday black kittens - i.e. automatically find bugs and performance issues, hahah :077:

  14. Really good support for Git. GUI shortcuts for rebase features, collision resolver, better diffs like in ExUnit and more.

  15. Support for most-popular code hosting services like: BitBucket, GitHub and GitLab -
    adding comments, creating snippets, issues and pull requests + notifications should be minimum for every editor. :smiley:

  16. Support for preview generated code when using meta-programming.

  17. Suport for mix tasks

  18. Connection with internet checker.

  19. Support for iex helpers. For example one-letter helpers in command palette.

  20. Good integration with OS (default language, apps etc)

  21. Markdown support + preview

  22. Built-in multi-communicator with code quoting :smiley:

  23. Advanced find and replace tool - support for preview and multiple files changing.

  24. Support for auto file updating - for example auto update README.md on new version pushed to hex.pm.

  25. Hidden mini-games, Adblock and other Easter eggs :077:

  26. Code refactoring tools like find duplicates or auto rename project and/or module after move/rename directory or file.

  27. Good dark theme

  28. Time is up! - notification error for specified in configuration time - just to make sure that we have enough time for sleep :smiley:

  29. Tips for example for weird atoms:
    TIP: Change atom at line … column … from :exampleAtom to :example_atom.

  30. Code templates - for example GenServer template

  31. CSS style generator (like in developer tools)

  32. Vertical tabs with grouping support

  33. Customizable menus

  34. Achievements support :smile:

  35. Ecto migration and model GUI generator

  36. Builtin configuration preview, observer and other debug/statistic tools

  37. José Valim’s watermark signature below combo counter :077:

  38. Forum integration - writing new posts and replies + notifications

  39. Rest time! Block editor for x minutes every y hours.

  40. Spy tools to analyze what parts of code we read too long. :smiley:

Most Liked

NobbZ

NobbZ

Most of these requirements just scream for Emacs …

14
Post #2
hubertlepicki

hubertlepicki

and here I am, with almost bare bones Vim set up.

12
Post #3
hubertlepicki

hubertlepicki

You do not have to change habits if your first programming experience was C written in vim in first place.

10
Post #8

Last Post!

sribe

sribe

Update: happy enough with VS Code so far, and today they release a version with more flexible editor layout, which was my main gripe.

Where Next?

Popular in Dev Env & Tools Top

brightball
Since the keyboard thread has been going strong for a while I wanted to start a similar thread for desk chair recommendations. I’m in the...
New
AstonJ
Welcome to our thread for Windows users :smiley: Mac users please use this thread Linux users please use this thread For those who dis...
New
adamu
There is a thread about vim already, but I wanted to start one specifically about the language server. What configuration do people use ...
New
dimitarvp
Yeah, feels the same here. :confused: And I made a much bigger investment, the iMac Pro I got was $8000 at the time I bought it (2019). ...
New
AstonJ
Not sure I’m going to upgrade myself yet, but curious what others think: How are you finding it for dev? What are your thoughts of it g...
New
AstonJ
I’ve been reinstalling macOS after trying out Tahoe, and when I went to migrate from a Time Machine backup I got an error I’ve not see be...
New
bwlang
I want to buld this docker image but it fails with a timeout at RUN mix local.hex --force Maybe it’s just a maintenance window, but the...
New

Other popular topics Top

rms.mrcs
Hi, I need to transform a list of numbers into a map where the keys are the indexes and the values are the original values of the list. ...
New
electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
gshaw
What is the idiomatic way of matching for not nil in Elixir? E.g., First way: defp halt_if_not_signed_in(conn, signed_in_account) when...
New
saif
Hello everyone, Long time lurker first time poster here. I’ve recently begun working on Elixir full-time again! :raised_hands: It’s been...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42576 114
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New

We're in Beta

About us Mission Statement