Which IDE to use: VsCode, Intellij, something else?

I've personally settled on Neovim + various language servers and a small number of other plugins. Perhaps not newbie friendly, but it's definitely more responsive than most full blown ide's. Before that I used amp, which is written in Rust, but which seems to not be maintained anymore and lacks a lot of what you can get with neovim.

VScode is totally fine though, and I still fire it up for certain tasks. In particular it handles XML better than any of my other editors. The code completion is quite nice. I'm just, you know, an old greybeard who has been using Vim for decades, so it feels odd to use -any- graphical editor.

This may be a very naïve question from one who hasn't used IDEs other than GNU Emacs since (I think) before VS Code existed, but do VS Code and IntelliJ require much mouse use and not have Vim modes?

I seem to recall that VS Code at least is thought to have a decent Vim mode.

From what I hear from people who use both GNU Emacs and Neovim (a sample size of one) and my own history of using both Emacs and standard Vim, I would see Emacs as better at providing a fuller and smoother "IDE experience" than Vim. (That is not to say that Emacs is "better" than Vim; Vim's lightweightness, of course, may make it either more or less pleasant than Emacs depending on one's preferences and use-case.)

Speaking of code editors in Rust, has anyone tried Helix?

It has received some positive press recently, so I am now curious.

There is a Vim mode plugin for Intellij. I didn't use it, so can't comment on the quality. In general, pretty much everything in Intellij can be assigned a keybinding, or already has one assigned. Personally I prefer to use a mouse than to remember hundreds of rarely used bindings, except for those which I use regularly.

I tried Helix a few months ago, and I'm impressed with its out-of-the-box lsp feature.
Helix seems to try its best to provide the most common part of what a coder with different programming language skills wants.
So if someone wants to try coding in terminal, it can be a pleasant start.

I started learning Rust and vim (then neovim) at the same time, and it's a hard and long journey and will continue.

BTW according to 2021 Annual Survey Report | Inside Rust Blog, (neo)vim is the second top editor used by Rustaceans. Kinda surprising :laughing:

No. There may be some obscure corners which can't be reached with shortcuts, but they are few and far between, and don't affect daily editor use. The idea that GUI editors/IDEs require (as opposed to permit) mouse use is only leftover editor wars rhetoric.

They both have vim modes via plugins. Vim aficionados/experts will have their own views as to how 'true' these vim modes are to the original, but at least for all the basic movement and editing actions they work well.

The main issue with them from my perspective is some friction between the vi vs 'native ide' functionalities - there can be issues with conflicting keybindings, different clipboards, etc. You can configure them enough to your liking to minimise these. It's been a while since I've used IntelliJ, but I seem to remember its IdeaVim plugin was a little better integrated than VSCode's equivalent VSCodeVim. But I'm using the latter and it's fine.

VSCode also has the very interesting VsCode Neovim extension, which uses an actual neovim as a kind of text-editing backend for VSCode. The nice thing about that is you can share a lot of config between VSCode and nvim.

1 Like

Something I miss from IntelliJ is the 'Key Promoter X' (I think it was called) plugin that prompts the user with a keyboard shortcut when they perform some mouse functions at over a threshold rate. It helps learn keyboard shortcuts in a kind of rational order (ie. frequency of use).

I've tried a few solutions, but for me nothing compares to the IntelliJ plugin when it comes to the overall IDE experience.

To be fair, I'm using their tools regularly for Kotlin and Python, but there isn't much of a learning curve in the case of Rust, except maybe knowing the keyboard shortcuts for those like me who don't want to use the mouse all the time (a pdf document is available from the menu, for the main shortcuts).

It's not free, I think it's possible to use the plugin on the Community Edition or on Android Studio but you won't get the debugger feature.

It can be used with IntelliJ, CLion and PyCharm. I have tried it with PyCharm but there are some specific problems that don't exist on IntelliJ.

Sure, it's far from stable (1.4k issues on their GitHub) but in practice it's already good enough for development. The strong points are

  • very good syntactic awareness - at the expense of some CPU power to keep the index tables up-to-date, so code completion and error detection are very reliable
  • very good code navigation and inspection
  • fairly good refactoring features, even if they're not as complete yet as for the tool's native languages it's still much, much better than other Rust "IDEs"
  • cargo commands from the IDE or from the terminal
  • debugging with breakpoints, variable inspection (not as good as native languages but OK), stack, threads, ...
  • setup to build, run, test binaries and libs from the IDE
  • clean and user-friendly interface
  • all the other advantages of an IDE: support for VCS, team work, deployment, ...
1 Like

Addressing the issue of bloat raised by the OP, I also found IntelliJ consumed a lot of memory on my machine and could be sluggish to respond. I appreciate the advice from @afetisov to try disabling unused features etc.

The Vim family promised light-weight, responsive and fast, but in my experience there is no free lunch to eat here. The small rust project I've got open now in Neovim is consuming 3.7G in Zellij, and 6.3G in rust-analyzer. This is not an awful price to pay for all the benefits mentioned by @AlexCue987 and others, but I can forget about dusting off my old Thinkpad and turning it into a Vim development machine, like the recruitment poster says.

Avid hotkey fans have noted every mainstream editor includes extensive default key mappings and the means to set your own key maps, so I can keep playing my favorite chords. I did not mean to imply vim had a monopoly on hotkeys. Mouse-free text editing is a fair reason to select Neovim; it one of their differentiating characteristics. The fact that other editors offer a vim mode is indicative that their approach is unique and distinct.

Perhaps discussion of text editing is off-topic, since the features of interest in an IDE are more specifically coding-related. If you are curious, I recommend the article by Daniel Miessler "Learn Vim for the Last Time".

1 Like

I know it's not exactly an IDE (though LSP smudges the distinction somewhat), but is anyone here using Sublime for Rust? How is the Rust-Analyzer integration? And what is the state of ST's vi emulation these days?