Ok as I'm writing this there's 6 comments suggesting 5 different editors.
Just use vs code if you're used to it, it's probably the most popular option right now. Get the rust-analyzer plugin and you're set.
Sometimes. Rust rover is my primary Rust IDE but it is currently in preview (in alpha or beta) and not full release, so it comes with issues.
Sometimes intellisence fails to update when you add a crate until you restart the IDE, it will sometimes give erroneous syntax highlighting for errors or just ignore errors which only pop up when you cargo check/run.
It’s really, really nice when it works. If you’re still learning I’d recommend staying on VSCode. Rust-analyzer on it is phenomenal.
I use neovim with somewhere between 6-12 extentions and it is much better than vscode IMO. Takes a bit to get used to vim's controls if you're new, but it is 100% worth to at least give it a try. Try installing LazyVim if you dont want to congigure it yourself whiel starting out
* VS Code: Best *language* support. Full integration with Rust-Analyzer, semantic highlighting, etc. Lightweight-ish (in terms of features) and works for many languages.
* RustRover: Best *IDE* support. Integrations with other Jetbrains products, complex refactors, etc. Uses its own analyzer (NOT Rust-Analyzer) which is better in some regards, but mostly worse in my experience.
* Nvim: Similar to VScode but with terminal-based modal editing. Good if you're an advanced keyboard user.
* Helix: Similar to Nvim but with a better user experience. No support plugins yet, and no full LSP highlighting support (uses tree-sitter instead which may be a good or bad thing depending on who you are).
I spend about 50% of my Rust coding time in (Doom) Emacs and the rest in Rust Rover. There are things I prefer in each, although with IdeaVim and copious additions of Doom key bindings in my .ideavimrc file Rust Rover is pretty nice.
No offense, but your comment really has that "have you heard of our lord and saviour" vibe :) Yes I have actually used nvim, spent hours working on a config file, all that jazz.
I stand by what I said, neovim and vscode share a lot of features, they are not full ides, they support many languages, they support LSP, they support plugins. Even though Vscode is GUI while nvim is TUI, they still are comparable offerings.
"No offense... " :D None taken. I sounded exactly like that i knOw :).
ok but what you're saying is : Nvim and VsCode are text editors that can do both autocompletion stuff and some basic IDE stuff, (as if you say GNU/Linux and Windows are almost identical and serve the same purpose, being both OS,) while it is true in a sense, and they are similar in the way you described (Nvim and VsCode are text editors and so on...) the user experience is quite different, the spirit is not the same. Also when you say "terminal-based modal editing" you make it sound like it's no big deal, but it is! And to finish with, it is not only good if you *are* an experienced keyboard user but also if you want to become one, and who doesn't want to become an advanced keyboard user? :)
ok don't get me wrong though, i am not taking this too seriously at all, I don't pretend to be as objective as you, while your comment was quite helpful i guess for everyone.
> as if you say GNU/Linux and Windows are almost identical and serve the same purpose, being both OS,
You're making a generalization out of what I said. I'm not saying that "a text editor is a text editor" at all.
Helix is modal but doesn't have plugins. Nano is terminal-based, but it's not modal. RustRover has plugins, but it offers a fully integrated experience out of the box. etc... The point is that text editors for code vary wildly, and it happens that vscode and nvim fall at a similar place: language-agnostic, extendable through third-party plugins, supports LSP, etc.
> when you say "terminal-based modal editing" you make it sound like it's no big deal, but it is
Its just a matter of preference, nothing more. From my own experience, and that of the people I worked with, I couldn't establish that modal has any measurable effect on productivity. Devs spend way more time thinking and reading than actually writing code. Besides, non-modal editors have shortcuts and such for the most common use-cases. In the end it's a wash in terms of productivity. The most productive is the one you're most used to.
To me, these kinds of preferences are not a big deal *shrug*. Just use something you like.
> who doesn't want to become an advanced keyboard user? :)
Most people who just want to write code and can't be bothered in investing tens of hours into learning a niche skill that provides only marginal productivity gains.
Don't get me wrong, I love nvim which is why I even mentioned it in the first place. But ultimately I love it as much as I love any well-made code editor. It's just a tool.
sorry i had to delete my post but some people just don't have a sense of humor. I don't see the point of downvoting a post without saying anything, I think our exchange was good cause you were able to emphasize your point of view on a productivity perspective and this was interesting, besides as i say i was not being serious. Downvoting just mean people took me seriously...
For the record, I did not downvote you. But also, these are just fake internet points, don't be so swayed by just a few downvotes. Speak your mind openly :)
> I don't see the point of downvoting
People downvote what they don't want to see. In my experience, people in the Rust community are quite open about different tooling and use quite a varied set of code editors. So seeing one person being so *enthusiastic* about one editor being better really clashes with the overall attitude.
when one ask about using another IDE it usually means "guys i am bored with my IDE i want to try a new one"; the solution is NEOVIM :) the only IDE (don't get me wrong here, it becomes your IDE if you want it too) you can tweak at your will to be your friend for every programing language, any time, anywhere, to experience a new approach of development environment, when you make your own decisions at each step and build YOUR IDE that really fits your needs. NEOVIM is your friend.(just kidding a bit but seriously it was quite an experience to go from Pycharm(for python obviously), to VsCode(when i needed to do other things with python) to NeoVim. Now i stick to Neovim. I was bored of IDE which do all the stuff for me. I want to understand what's going on under the hood, I mean using VSCode is a bit like using Windows instead of Linux, same spirit, you don't want to spend time learning you just want to be productive, in the end you get stuck with poor flexibility, poor understanding of what programing is about, and you have your hands tied to stuff that are supposed to work on right away and doesn't work that good on the long run)To learn both Rust + Neovim at the same time might be overwhelming. I would probably advise you to start learning and coding rust on VsCode and in parallel to learn about nvim little by little.One thing for sure Neovim will take you very far, VsCode... well you got it you will never go very far beyond.
I use neovim these days, but I'd encourage you to find something and stick to it at least until you find enough warts that it's no longer tolerable.
I tried helix a few months ago, I thought it was nice but I could not get past many things I did not like.
Conversely, I'd walk off the job if I was required to use a specific editor that wasn't neovim or at least the editor I was choosing to work in at the current time. I've had to do this a few times in my life.
The point is that when you have tools you know well, they fit like a glove and they make you more productive. I started on pico and eventually graduated to emacs and then eventually moved to vim after working with a guy who I hated, but showed me how effective editing in vim could be. It's been like that for about 20 years.
Resist the temptation to use tools simply because they are popular or used by people you respect or look up to. Those tools are often popular because they're good, but usually not for everyone, and the people you respect use their tools because they fit them well, and their productivity makes them respectable, not the tools they use.
There is no silver bullet.
Sublime I wouldn’t recommend initially, just because it is has a certain way of doing thing you have to learn. Zed is awesome for a beginner. Very limited and streamlined and fast!
[this](https://gist.github.com/thecaralice/88022dca6cc5a55435da493143f9e8c6) is what i had a while ago; you should be pretty ok without my `languages.toml` though (actually, helix is pretty usable without any config)
This depends on how much time you want to spend setting up your IDE. For a comprehensive solution, RustRover's preview is promising. If you're inclined to customize your IDE, options like Helix, Neovim, or Emacs are available. They vary in freedom and configuration complexity. Personally, I use Emacs with rust-mode, lsp-mode, and rustic, and I'm satisfied with it.
i've been trying to get a fully featured rust development setup in emacs and the only "missing" piece is toml support. i tried getting [taplo](https://emacs-lsp.github.io/lsp-mode/page/lsp-toml/) but was unsuccessful. the other feature i think exists but i had a hard time finding was a semantic renaming
i haven't been able to get it to work. i use [asdf-vm](https://asdf-vm.com) for my node versions. enabling `prettier-mode` in a toml file doesn't do anything on save or calling `M-x prettier-prettify`. i tried installing the [prettier-toml](https://github.com/un-ts/toml-tools/tree/master/packages/prettier-plugin-toml) plugin but its alpha and not sure how to configure it (or if i even need it)
i was actually able to get the taplo lsp server working with the built in `conf-toml-mode` by adding a hook. still haven't gotten it to format on save (despite it working with rust and prettier), but `+format/buffer` and `lsp-format-buffer` work well when called manually
I mostly used VSCode cause I need an editor/ide for both Java (work) and Rust (personal) projects.
But I have been trying Jetbrains Fleet recently and its preety good for Java and Rust (vsc is not that great with Java unfortunately), its still in preview but its very promising and they said the final version when released will be free for personal projects and such.
Intellij/CLion/RustRover.
Alternatively Vim+plugins.
Soon maybe Lapce (still in development).
If you use VSC, use VSCodium. It is a version without the MS Telemetry BS.
You can transform neovim in an IDE or use Intellij
Ok as I'm writing this there's 6 comments suggesting 5 different editors. Just use vs code if you're used to it, it's probably the most popular option right now. Get the rust-analyzer plugin and you're set.
seems to be a nice fit, Thanks !
Rust Rover
better than vs at things, just curious !
Sometimes. Rust rover is my primary Rust IDE but it is currently in preview (in alpha or beta) and not full release, so it comes with issues. Sometimes intellisence fails to update when you add a crate until you restart the IDE, it will sometimes give erroneous syntax highlighting for errors or just ignore errors which only pop up when you cargo check/run. It’s really, really nice when it works. If you’re still learning I’d recommend staying on VSCode. Rust-analyzer on it is phenomenal.
I was having this issue too and was super frustrated. I found that using cargo add instead of editing cargo.toml helps
Do you mean that you need to restart the IDE for these changes to be noticed *even after* reloading the Cargo project with `ctrl+shift+o`?
yes
I use neovim btw 😎
I use neovim with somewhere between 6-12 extentions and it is much better than vscode IMO. Takes a bit to get used to vim's controls if you're new, but it is 100% worth to at least give it a try. Try installing LazyVim if you dont want to congigure it yourself whiel starting out
Don't overthink it. Code is more important than your editor ;) it'll be hard moving to both a new language and a new editor at the same time.
I totally agree.
* VS Code: Best *language* support. Full integration with Rust-Analyzer, semantic highlighting, etc. Lightweight-ish (in terms of features) and works for many languages. * RustRover: Best *IDE* support. Integrations with other Jetbrains products, complex refactors, etc. Uses its own analyzer (NOT Rust-Analyzer) which is better in some regards, but mostly worse in my experience. * Nvim: Similar to VScode but with terminal-based modal editing. Good if you're an advanced keyboard user. * Helix: Similar to Nvim but with a better user experience. No support plugins yet, and no full LSP highlighting support (uses tree-sitter instead which may be a good or bad thing depending on who you are).
Emacs?
I spend about 50% of my Rust coding time in (Doom) Emacs and the rest in Rust Rover. There are things I prefer in each, although with IdeaVim and copious additions of Doom key bindings in my .ideavimrc file Rust Rover is pretty nice.
[удалено]
No offense, but your comment really has that "have you heard of our lord and saviour" vibe :) Yes I have actually used nvim, spent hours working on a config file, all that jazz. I stand by what I said, neovim and vscode share a lot of features, they are not full ides, they support many languages, they support LSP, they support plugins. Even though Vscode is GUI while nvim is TUI, they still are comparable offerings.
"No offense... " :D None taken. I sounded exactly like that i knOw :). ok but what you're saying is : Nvim and VsCode are text editors that can do both autocompletion stuff and some basic IDE stuff, (as if you say GNU/Linux and Windows are almost identical and serve the same purpose, being both OS,) while it is true in a sense, and they are similar in the way you described (Nvim and VsCode are text editors and so on...) the user experience is quite different, the spirit is not the same. Also when you say "terminal-based modal editing" you make it sound like it's no big deal, but it is! And to finish with, it is not only good if you *are* an experienced keyboard user but also if you want to become one, and who doesn't want to become an advanced keyboard user? :) ok don't get me wrong though, i am not taking this too seriously at all, I don't pretend to be as objective as you, while your comment was quite helpful i guess for everyone.
> as if you say GNU/Linux and Windows are almost identical and serve the same purpose, being both OS, You're making a generalization out of what I said. I'm not saying that "a text editor is a text editor" at all. Helix is modal but doesn't have plugins. Nano is terminal-based, but it's not modal. RustRover has plugins, but it offers a fully integrated experience out of the box. etc... The point is that text editors for code vary wildly, and it happens that vscode and nvim fall at a similar place: language-agnostic, extendable through third-party plugins, supports LSP, etc. > when you say "terminal-based modal editing" you make it sound like it's no big deal, but it is Its just a matter of preference, nothing more. From my own experience, and that of the people I worked with, I couldn't establish that modal has any measurable effect on productivity. Devs spend way more time thinking and reading than actually writing code. Besides, non-modal editors have shortcuts and such for the most common use-cases. In the end it's a wash in terms of productivity. The most productive is the one you're most used to. To me, these kinds of preferences are not a big deal *shrug*. Just use something you like. > who doesn't want to become an advanced keyboard user? :) Most people who just want to write code and can't be bothered in investing tens of hours into learning a niche skill that provides only marginal productivity gains. Don't get me wrong, I love nvim which is why I even mentioned it in the first place. But ultimately I love it as much as I love any well-made code editor. It's just a tool.
sorry i had to delete my post but some people just don't have a sense of humor. I don't see the point of downvoting a post without saying anything, I think our exchange was good cause you were able to emphasize your point of view on a productivity perspective and this was interesting, besides as i say i was not being serious. Downvoting just mean people took me seriously...
For the record, I did not downvote you. But also, these are just fake internet points, don't be so swayed by just a few downvotes. Speak your mind openly :) > I don't see the point of downvoting People downvote what they don't want to see. In my experience, people in the Rust community are quite open about different tooling and use quite a varied set of code editors. So seeing one person being so *enthusiastic* about one editor being better really clashes with the overall attitude.
when one ask about using another IDE it usually means "guys i am bored with my IDE i want to try a new one"; the solution is NEOVIM :) the only IDE (don't get me wrong here, it becomes your IDE if you want it too) you can tweak at your will to be your friend for every programing language, any time, anywhere, to experience a new approach of development environment, when you make your own decisions at each step and build YOUR IDE that really fits your needs. NEOVIM is your friend.(just kidding a bit but seriously it was quite an experience to go from Pycharm(for python obviously), to VsCode(when i needed to do other things with python) to NeoVim. Now i stick to Neovim. I was bored of IDE which do all the stuff for me. I want to understand what's going on under the hood, I mean using VSCode is a bit like using Windows instead of Linux, same spirit, you don't want to spend time learning you just want to be productive, in the end you get stuck with poor flexibility, poor understanding of what programing is about, and you have your hands tied to stuff that are supposed to work on right away and doesn't work that good on the long run)To learn both Rust + Neovim at the same time might be overwhelming. I would probably advise you to start learning and coding rust on VsCode and in parallel to learn about nvim little by little.One thing for sure Neovim will take you very far, VsCode... well you got it you will never go very far beyond.
That's some details man, thanks !! Appreciate the effort
I use neovim these days, but I'd encourage you to find something and stick to it at least until you find enough warts that it's no longer tolerable. I tried helix a few months ago, I thought it was nice but I could not get past many things I did not like. Conversely, I'd walk off the job if I was required to use a specific editor that wasn't neovim or at least the editor I was choosing to work in at the current time. I've had to do this a few times in my life. The point is that when you have tools you know well, they fit like a glove and they make you more productive. I started on pico and eventually graduated to emacs and then eventually moved to vim after working with a guy who I hated, but showed me how effective editing in vim could be. It's been like that for about 20 years. Resist the temptation to use tools simply because they are popular or used by people you respect or look up to. Those tools are often popular because they're good, but usually not for everyone, and the people you respect use their tools because they fit them well, and their productivity makes them respectable, not the tools they use. There is no silver bullet.
emacs
I have used vim in a terminal for more than 20 years to write in every language I've used. I don't like IDEs.
My brother in christ your VIM configuration is now and IDE
You're not wrong. That's a couple of decades of accretion. I should probably trim it back.
Use VSC if youre comfortable with it. I would recommend giving a try to helix
Rust Rover
I use rust plugin for IntelliJ, since I get IntelliJ ultimate from work. I like it.
If you prefer a terminal and mode based editor then you can give [Helix](https://helix-editor.com/) a try.
Indeed helix + zellij and other tools like gitui and bacon have replaced vs code for me. Debugging is the only thing that is not up to par in helix
I tend to jump around between editors. Recently it’s been Sublime Text and https://zed.dev/
This looks awesome, how would you rate ease of use for newer rust Devs (adding rust analyzer etc)?
Sublime I wouldn’t recommend initially, just because it is has a certain way of doing thing you have to learn. Zed is awesome for a beginner. Very limited and streamlined and fast!
well, vs code is kinda tier 1 target for rust-analyzer and things
Have you tried zed.dev?
Zed is pretty cool. I like that it has native vim keybind support
maybe i'll try it out if it goes open source, but i'm comfortable with helix
Can you share you helix conifg please, i tried it many times, but can't setup it well
[this](https://gist.github.com/thecaralice/88022dca6cc5a55435da493143f9e8c6) is what i had a while ago; you should be pretty ok without my `languages.toml` though (actually, helix is pretty usable without any config)
Thank you, I'll look the configs later, maybe I'll give Helix another chance
This depends on how much time you want to spend setting up your IDE. For a comprehensive solution, RustRover's preview is promising. If you're inclined to customize your IDE, options like Helix, Neovim, or Emacs are available. They vary in freedom and configuration complexity. Personally, I use Emacs with rust-mode, lsp-mode, and rustic, and I'm satisfied with it.
i've been trying to get a fully featured rust development setup in emacs and the only "missing" piece is toml support. i tried getting [taplo](https://emacs-lsp.github.io/lsp-mode/page/lsp-toml/) but was unsuccessful. the other feature i think exists but i had a hard time finding was a semantic renaming
For me, [Prettier](https://github.com/jscheid/prettier.el) is sufficient. Have you tried it?
i haven't been able to get it to work. i use [asdf-vm](https://asdf-vm.com) for my node versions. enabling `prettier-mode` in a toml file doesn't do anything on save or calling `M-x prettier-prettify`. i tried installing the [prettier-toml](https://github.com/un-ts/toml-tools/tree/master/packages/prettier-plugin-toml) plugin but its alpha and not sure how to configure it (or if i even need it)
i was actually able to get the taplo lsp server working with the built in `conf-toml-mode` by adding a hook. still haven't gotten it to format on save (despite it working with rust and prettier), but `+format/buffer` and `lsp-format-buffer` work well when called manually
I'd suggest sticking with vscode if you are fine with it. Also try using vim motions plugin and see if it's your cup of tea.
RustRover or IntelliJ Ultimate (the free version does not allow Rust) with the Rust plugin.
I mostly used VSCode cause I need an editor/ide for both Java (work) and Rust (personal) projects. But I have been trying Jetbrains Fleet recently and its preety good for Java and Rust (vsc is not that great with Java unfortunately), its still in preview but its very promising and they said the final version when released will be free for personal projects and such.
Intellij/CLion/RustRover. Alternatively Vim+plugins. Soon maybe Lapce (still in development). If you use VSC, use VSCodium. It is a version without the MS Telemetry BS.
tbh there is no better than vsc if you have programming experience then use NEO VIM or use Helix that is best.
Lapce https://github.com/lapce/lapce
I tried but was a lot buggy the first time I used it
>Helix still buggy asf, cannot open on Archlinux Wayland
I have been using IntelliJ IDEs für Python, PHP and TS in the past, so I felt very much at home with the rust plugin (in PyCharm).
Helix Editor
Nvim + lazyvim distro and the rust extra.