Rust language support for Atom-IDE, powered by the Rust Language Server (RLS).
rustc
and clippy
, see clippy_preference
setting)ctrl
or cmd
click)ctrl
or cmd
for more information)ctrl-alt-shift-f
or cmd-opt-shift-f
also in context menu)ctrl-shift-c
or cmd-shift-c
also in context menu)atom-ide-ui
settings)all_targets
, clippy_preference
rls.toml
file at project root, see rls#configuration
# rls.tomlfeatures = ["serde"]
You can install from the command line with:
$ apm install ide-rust
Or you can install from Settings view by searching for ide-rust
.
No other packages or manual setup is required as these will be handled with user prompts after install. However, you may wish to install rustup
with your OS package manager instead of following prompts to install via rustup.rs.
ide-rust:restart-all-language-servers
Restart all currently active Rls processesA root Cargo.toml
is required in each atom project, however cargo workspaces can be used to support multiple crates in a single project.
For example, a project with 'rust_foo' & 'rust_bar' directories/crates could have the following root Cargo.toml
# Cargo.toml[workspace]members = ["rust_foo","rust_bar",]
Even if you only have a single crate in your Atom project, RLS can only detect it if you
have a root Cargo.toml
. If your project is setup such that you have one or more crate nested
in folders under the root, you can add a root Cargo.toml
file and setup a Cargo workspace that
includes all the crates in the project:
# Cargo.toml[workspace]members = ["foo/bar/rust_foo",]
The Rls command can be specified manually, for example to run from local source code:
# config.cson..."ide-rust":rlsCommandOverride: "cargo +nightly run --manifest-path=/rls-src/Cargo.toml"
When set you'll be able to see, and remove, this from the package settings. After restarting atom an info message will inform you the override is in place.
If stuff isn't working you can try enabling logging to debug:
atom.config.set('core.debugLSP', true)
This will spit out language server message logging into the atom console. Check if requests/responses are being sent or are incorrect. It will also include any Rls stderr messages (as warnings) which may point to Rls bugs.
MIT License. See the license for more details.
Good catch. Let us know what about this package looks wrong to you, and we'll investigate right away.