We’re fully committed to shaping RustRover into the undisputed powerhouse IDE for Rust developers. This requires a meticulous, bespoke approach to every aspect of our product, from working with code to library management and UI/UX of the IDE itself.
In this blog, we’ll go over the key features implemented in the previous quarter that we believe will help your creativity soar above all the counter-productive nuances you might encounter in your daily routine.
Rust code insight
Let’s go over the improvements made to Rust’s code insight first. These are aimed at resolving a multitude of annoyances that can plague your daily coding experience.
Crate and features dependency management
Now, when you paste in or simply reference a crate that is not currently used as a dependency in your project, RustRover will suggest auto-adding it to Cargo.toml. This also works for invoking crate features, ensuring they’re also added in tandem.
Additionally, you can now call a function from some of the most popular crates used by the community and get auto-completion suggestions even if they haven’t yet been added to your project’s dependency list.
Auto-completion inside macro_rules!
Auto-completion and basic code insight are now available inside macro declarations. You’ll also get a warning when a macro call argument doesn’t match any available definition.
Live diagnostics
RustRover doesn’t need a dry compiler run to perform code diagnostics and highlight potential errors. We run our own custom-built live analysis that we’re always improving, so that you get the most advanced error detection as you type, even when working with incomplete code.
Improved detection is now available for the following errors: E0308, E0368, E0369, E0604, E0605, E0606, E0607, E0609, E0615, and E0620.
Managing items under the disabled cfg()
RustRover resolves and provides autocompletion for code even when it’s part of the currently disabled cfg(feature)
. When invoked, the IDE will suggest enabling that feature for you.
It’s the same when it comes to designating part of the code for the specific OS, i.e. cfg(Windows)
– if you’re on a Unix system, you’ll still be able to get out-of-scope code suggestions. Or you can “spoof” your system via the Available Target Architectures menu in the bottom right-hand corner of the IDE and continue developing as if you were on that OS.
Quick Documentation improvements
This feature will now provide you with a description for user-defined macros, r#
raw string literals, primitive types like i32
, clickable traits/structs, and properly recognizes let/let mut/let ref
variables.
Code Vision optimizations
The way Code Vision handles usages, implementations, and author hints throughout the code has been heavily optimized.
Auto-import on paste
When pasting a piece of code that utilizes a specific feature, RustRover now auto-imports the use
path for you. Please note, you must copy-paste from within the IDE for the import to happen.
skip
method completion
When constructing a chain of method calls, you’ll see both immediate autocomplete suggestions and the ones available further down the chain for .await.
and .iter()
methods.
General quality-of-life improvements
We’re hard at work developing our own diagnostics, and this round of improvements includes new RustRover-specific inspections that you can check out here.
Miscellaneous improvements to RustRover IDE
Cargo.toml code insight and typing assist
We’ve made various small improvements to help you more easily manage Cargo.toml, like adding a file link to the readme
section, showing the version of the installed crate as an inlay, stating the Rust version, enhanced autocompletion for its dependencies and cargo package categories sections, as well as added support for all valid category slugs.
Deeper integration with the rustc output
Conveniently navigate to the referenced file and specific line of code or apply error fixes directly from the compiler output in the Build tool window.
Attaching new Rust file to module
When creating a new Rust file, you’ll be given the option to have it automatically added to the module’s target (main.rs
or lib.rs
). The previous action will be remembered, and a set of quick-fix checks will also be available to ensure that the new file is attached only when necessary.
We hope these updates will make your journey with Rust even more interesting and fun. It’s now easier than ever to get going with RustRover! We’re here to guide you through your very first launch.
If you don’t have a toolchain installed on your machine when creating your first project, RustRover will helpfully provide you with the option to download and install Rustup.
Should you want to try RustRover with your existing VS Code settings, you can now easily import them with a single click.
We hope you’ll enjoy these new quality-of-life improvements whether it’s your first day on the job or if you’re already a seasoned Rust developer.