Hi,
Which one do you recommend for rust devlopment , neovim or helix?
Regards
There are many more options:
IDE and editor support - Rust for C-Programmers
And lapce has now even a "light" fork:
Cozy Lapce now jumps from logs to code â v0.2.1 sneak peek đ
Actually, I would not call neovim and helix an IDE, but powerful, modal editors.
Both work well with Rust, but neovim and helix have very different approaches. neovim is almost infinitely configurable, but requires more work to configure for Rust development. helix is not very configurable, but works well with Rust with very little effort.
Also, although both use modal editing, they use different types of modal editing, so switching from one to the other requires some adjustment.
PS. I use Helix myself and I'm very happy with it.
While I like what Helix is doing, and daily drove it for a few moths, ultimately it is still too immature for my liking, although definetively usable. I just went back to neovim, but both are good enough for rust.
I tried both and then wrote my own. So far, I am glad I did it.
Your own editor? I really need to get around to that at some point, even if I don't end up using it...
I really do not understand any complex editors. Notepad or nano are actually fine with me. Only recently I started requiring line number on every line, perhaps the old time returning to me when we had a line number in positions of 72-80 of a punch card. I also learned that any algorithm should not be more complicated than 150 lines. Anyway every developer chooses an editor according own personality. It is like - show me your IDE and I will tell who you are.
I've been loving the helix editor. If you're up for building the current master branch from source, I recommend it. There are some fixes to syntax highlighting that haven't made it to release yet. It is true that helix is less mature of a project, but I still love using it.
I've gone back to use raw text editors for coding something every so often just to make sure I remember how to, I find mostly it's just clumsier to have to type out the whole method name, jump to the top of the file to add an import, leave the editor to run the formatter, manually navigate to item docs rather than using a shortcut, waiting for running a build to see errors, and a few small other things.
But those things I miss are very specific and limited, and that I could absolutely see myself implementing the things I actually care about pretty quickly with LSP doing the heavy lifting for language awareness. I don't need any fancy macro system, I don't need tabs or splits other than a single vertical split, etc....
I use the Zed editor which has a lot of IDE features along with rust_analyser. https://zed.dev/ It's written in Rust you know. I love it even if I don't use its AI and collaboration features.
Otherwise Vim with syntax highlighting and nothing else.
I was surprised to learn that Brian Kernighan's preferred text editor is not vi, but Sam - I think Ken Thompson's too.
Not sure how actively developed it is - originally made for X windows.
Probably would be a good exercise to build your own from scratch - more satisfying than agonising over which IDE to pick. A bit of a rabbit hole though given everything else one can spend time on.
No agonising over IDE's here. Editors come and go, change with platforms, change with fashions, change with work places. From Alter on those first 8 bit Intel development systems, through Vim, Atom, Sublime, VSCode and some others along the way landing on Zed today.
Oddly, back in the day my opinion was that if you needed even just colour syntax highlighting there was something missing in your familiarity with the language you were using. Now, after all these years, I can hardly write Rust without syntax highlighting, type hints, all these red squiggles on syntax errors, auto formatting, etc.
Oh,... may be there is something missing in my familiarity with Rust...
I use JetBrains' RustRover! Works like a charm...
If we're talking about Helix and Neovim here, I have to mention Ki Editor | Ki Editor as well.
Where helix relies on the familiarity of vim (which to many might still not be familiar to begin with), Ki blazes a brave new path, combining extremely consistent behavior between operating on tree-sitter code objects, tokens, characters, lines, search results, diagnostics, etc (instead of one normal mode, you get a normal mode per type of object) with a keyboard-position-based default layout idea that maximizes hand switching and reuses keys for conceptually similar things instead of building on vim or emacs defaults.
Even the arrow directions are ijkl (wasd shaped) and not khjl.
Many editors offer a dynamic compilation as you type the code. It's certainly a cool feature, however when you are in active development phase, it distracts you from coding and you start fixing compilation problems instead of delivering new code. But certainly a jump to an error line from a compilation log is useful for me. Since I work on a code in differrent languages, a conversion identificators to Camel, Snake, upper and lower cases is useful. Cross ref table and global search are also helpful. Finally, AI prompts are useful. It's a pretty much list of all functionality of my editor. Did I mention a color coding?
I use neovim with the https://astronvim.com/ config and I like that.
While the original question focuses on Neovim vs Helix, I'd like to point out that there are essentially two main approaches to Rust IDEs today:
-
Editors based on Rust Analyzer. Tools like Zed, Neovim, Helix, VSCode, and others rely on Rust Analyzer under the hood. These editors generally offer a similar user experience and feature set from a source code analysis perspective.
-
JetBrains RustRover (formerly the JetBrains Rust plugin [1]). While comparable to Rust Analyzer in functionality, RustRover takes a distinct approach to source code analysis, resulting in a noticeably different user experience with its own strengths and weaknesses.
For the first group, choosing between these editors is largely a matter of personal preference and convenience, as they all leverage Rust Analyzer's capabilities. The differences lie in their text-editing features rather than Rust-specific functionality.
Personally, I prefer RustRover because its incremental analysis of Rust macros performs significantly better than Rust Analyzer's. This is particularly valuable for my work, though it may be less critical for some users. Additionally, RustRover feels less intrusive. Its analysis approach is less aggressive, prioritizing tasks and deferring heavier computations to background processes, which creates a smoother experience.
However, when it comes to pure text-editing capabilities, JetBrains editors, including RustRover, may not be ideal for users who prefer modal editing, which could be a key factor depending on personal preferences.
Since the question focuses on IDEs rather than basic code editors (e.g., "Notepad with syntax highlighting"), it's worth noting that RustRover is a full-feature IDE. This can be both an advantage and a drawback. While its extensive features benefit some users, others may find them unnecessary. For instance, I prefer terminal-based workflows and rarely use RustRover's built-in GitHub integration or advanced debugger. These features, being integrated, cannot be fully removed, making RustRover a heavier option compared to Rust Analyzer-based editors. It typically takes tens of seconds to launch and consumes significant RAM, which may limit how frequently you can open and close it during a workday.
Note that older versions of the JetBrains Rust Plugin are still available in some JetBrains products. âŠī¸
That is a bit of show stopper for me. So annoying. Is RustRover written in Java by any chance?
I believe it's written in kotlin based on this source.
But the fact that rust rover is a closed source tool is a deal breaker for me.
Ah ha. Java, Kotlin, makes no difference does it? It's all JVM.
Closed source is also a no-no for me.