I'd been using IntelliJ Ultimate with the open-source Rust plugin until their change to the in-house Rust plugin and RustRover. Since then, I've worked with both IntelliJ and RustRover on a daily basis.
Functionally, they're the same when it comes to Rust. IntelliJ has a larger memory footprint, probably due to all the extra plugins and support of Java/Kotlin projects. The licencing is different, though. As you said, RustRover is free for non-commercial projects, while IntelliJ requires the paid Ultimate version to work correctly with Rust.
There's nothing special about the setup, but here are a few tips:
- The first time you start it, it shows a simple window. Create a new Rust project (binary or lib) or open an existing one to see the full GUI. Just open the root directory if you have a VSCode project; it's fine.
- I recommend using the Classic UI plugin (Ctrl+Alt+S to access the settings, then Plugins) because the new UI is very annoying. Unless you like it, of course.
- It should detect your Rust environment, otherwise it'll tell you what's missing. For example, with Windows, you'll need to download an extra module for debugging, but it tells you that the first time and proposes to do it itself, so it's very easy.
- You'll find all the Rust options in the settings (you can type the first letters to find them more easily).
- There's an online user manual from the Help menu, if that helps, but don't hesitate to ask here if you're stuck somewhere.
- Try to learn a few keyboard shortcuts to be more efficient - you can print them with this plugin.
The IDE's overall satisfactory, and I much prefer it to VSCode, but I suspect it's in part a matter of personal preference. It's a true IDE, unlike VSCode, so its features are fully integrated and coherent, accessible through menus and shortcuts, and all the settings are available through the GUI, too. No need to hack files and use StackOverflow to see how. It's even more relevant if you develop with several languages.
It's perfectly OK to use RustRover now. It has the same stability as IntelliJ, but there are a large number of bugs, for sure. Thankfully, they're usually mostly cosmetic or minor annoyances, but sometimes, you may need to clear the caches to fix a weird behaviour. There's a good refactorization system, integrated unit tests, build, and other common Cargo flows, and you can launch any other cargo through a menu or CLI.
The main problem I have with it is the debugger, and it's worse with Windows than Linux:
- The variables' content isn't always/often accessible where they should be when doing step-by-step debugging. Often, you must execute a few more lines, or sometimes it's never available. I often resort to
println!
statements to debug. Sometimes, it's better with VSCode, but not always.
- The formatting of the variable content, when it's available, is sometimes obscure. In Windows, you can't see clearly an
Option<T>
. You have to guess and unfold a lot of levels to see the content (in Linux, it's just been improved). Anything else than simple types doesn't show well. Again, I've seen VSCode do it better in some cases, but not always.
- Sometimes, breakpoints just won't work. You'll have to toggle several lines to finally get it to stop.
It all seems due to LLDB, which wasn't meant for Rust and requires an adaptation, so VSCode has its own version, and Jetbrains have theirs.
Otherwise, it's quite good at managing projects, typing code, giving very good visual code awareness (including direct detection of problems, macro expansions, type detection, ...), versioning (git, github, ...), etc. The comparison to rust-analyzer is a tie, I'd say. And it's much easier to use than VSCode for me, but in part due to knowing the tool for a while.
Use it for a month or so, and you'll get a good idea yourself. It's definitely worth trying.
(EDIT) If you need it commercially, the RustRover Commercial licence is required - to compare to IntelliJ Ultimate depending on your needs. You get a discount from the 2nd year on.