Day 2 - Setting Up My Rust Development Environment

“The tools you choose shape the way you build — choose wisely.”
When I decided to learn Rust, my first instinct was to set everything up with Neovim, just like I had done before in other languages. I love how lightweight and extensible it is, and there’s something satisfying about building your own setup from scratch.
My initial plan: Neovim + Plugins
I started looking into the best plugin setup for Neovim focused on Rust development. Here are a few essentials I came across:
🦀 rust.vim – basic syntax highlighting and file detection.
🔧 nvim-lspconfig – for integrating Rust’s language server (rust-analyzer).
⚡ nvim-cmp – for autocompletion.
🧠 null-ls.nvim – for formatting and linting using tools like
rustfmt
andclippy
.📦 mason.nvim – to easily install external tools and LSPs.
While I enjoyed putting this together, and I still think it's a great way to learn how everything works under the hood, I started to realize something:
I wanted to focus more on learning Rust itself — not just configuring my editor.
My final choice: RustRover + Vim Plugin
After some experimentation, I made the switch to RustRover — JetBrains’ IDE dedicated to Rust. And honestly, it felt like the right move.
Why?
✅ Full support for
cargo
,rust-analyzer
, and toolchain integration.🧠 Built-in refactoring, debugging, and error inspection.
💡 Autocompletion and real-time feedback that just works.
🔍 Excellent project navigation (which I’ve always appreciated in JetBrains IDEs).
But I didn’t want to give up everything I liked from Neovim… so I installed the Vim emulation plugin, and now I have the best of both worlds:
I can still use my favorite motions and commands (
y
,p
, visual block, etc.)But I don’t have to spend hours setting up or debugging plugin configs.
Bonus: JetBrains AI Plugin
One more thing I added is the JetBrains AI Assistant. I had already used it when working with .NET, and I found it genuinely helpful — especially when I get stuck or want to speed up repetitive tasks.
So far, it’s been great for:
🧠 Explaining compiler errors.
🚀 Generating test code or boilerplate.
🤝 Working like a second pair of eyes when writing logic.
Conclusion
Even though I started with the idea of crafting a minimal setup in Neovim, I realized that developer experience matters, especially when learning a new language. Rust is challenging enough — and using RustRover lets me stay focused on the code itself.
I might return to Neovim later once I’m more comfortable… but for now, I’m riding with a powerful IDE and just enough Vim to feel like home.
Let’s keep going! 🦀
If you're setting up your Rust environment too — what tools are you using? Let me know!
Subscribe to my newsletter
Read articles from Juan Horta directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
