Day 2 - Setting Up My Rust Development Environment

Juan HortaJuan Horta
3 min read

“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 and clippy.

  • 📦 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!

0
Subscribe to my newsletter

Read articles from Juan Horta directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Juan Horta
Juan Horta