News

Features Update Retrospective for Q4 2023

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.

A RustRover auto-completion feature for items from popular crates not present in the 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.

Сode insight and auto-completion suggestion features inside Rust macro declarations.

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.

RustRover's custom-built live analysis performing code diagnostics and highlighting potential errors even on an 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.

Autocomplete suggestions for the .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.

Cargo.toml code insight and typing assist improvements.

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.

An option to download and install Rustup when creating your first project in RustRover.

Should you want to try RustRover with your existing VS Code settings, you can now easily import them with a single click.

Importing VS code settings into RustRover in one 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.

image description