Jonathan Turner

Rust Language Server Alpha 2 Release

Today, we’re happy to announce the second alpha for the Rust Language Server, a project build to bring high-quality Rust IDE support to any IDE or editor. This release brings new features, better stability, and an easier installation than the first alpha.

Support for new project types

When a project first starts, it tends to begin life as a library or as an application. As projects grow, sometimes they take on aspects of both, being both a library and an application that can be executed.

With alpha 2, we add support for this hybrid project type. Why, you might ask?

Image of Editing Cargo Source

Editing Cargo’s source code

With this change we can now work on Cargo in RLS. We’re continuing to improve the experience and take on even larger codebases, but it’s promising to see the RLS already able to work with real-world projects, like Cargo.

Support for custom derive

Rust projects that need serialisation often reach for the popular serde crate to do the work. With alpha 2, we now support the new serde annotations that are based on the new custom derive capabilities, which is sometimes called “macros 1.1”.

Support for test code

Image of tokio test code

Editing a test in Tokio

With alpha 2, you’ll also be able to get intellisense for the #[test] functions code in your project, allowing you to seamlessly switch between application and test code without having to change anything in your IDE or project. We’d like to extend this coverage more in the future.

Better stability

We’ve fixed dozens of issues in the RLS and related crates. As a result, the experience is much more solid. We continue to make stability a focus as we push towards the beta release, but we’re already pleased with the progress since the first alpha.

Easier installation

When you look at the setup instructions for the RLS now, you’ll see we’ve got it down to four steps.

Image of hover with std docs

Standard library documentation on hover

We’ve also simplified getting access to the standard library documentation. In one step, you can get now all the types and documentation for the standard library to your RLS install, allowing you to get the same IDE experience with the standard library that you do with your own code.

Part of the Rust language nursery

The RLS, as it’s matured, has proven that it’s ready to take a step closer to being an official Rust project. Recently, the Rust tools team voted to bring the RLS in the Rust language ‘nursery’, a set of blessed projects that are working towards becoming an officially supported part of the Rust toolchain. We’re excited to take this step and are committed to continuing to improve it towards the eventual 1.0 release.

Looking forward

We’re hopeful this will let more people set up the RLS and get the best experience. In the future, we hope to transition the RLS over to the rustup tool, which should allow you to add RLS support with one easy command. This release is a stepping stone to that vision.