Skip to content
This repository has been archived by the owner on Mar 19, 2024. It is now read-only.
/ atom-ide-rust Public archive

Rust IDE support for Atom, powered by the Rust Analyzer or Rust Language Server

License

Notifications You must be signed in to change notification settings

rust-lang/atom-ide-rust

Repository files navigation

IDE-Rust

Rust language support for Atom-IDE, powered by rust-analyzer.

Features

  • Auto-completion
  • Diagnostics (errors and warnings from rustc)
  • Document outline
  • Go to definition (ctrl or cmd click)
  • Type information and Documentation on hover (hold ctrl or cmd for more information)
  • Find references (ctrl-alt-shift-f or cmd-opt-shift-f also in context menu)
  • Format file with rustfmt (ctrl-shift-c or cmd-shift-c also in context menu)
  • Format on save (disabled by default, see atom-ide-ui settings)
  • Rustup toolchain update checking at startup & every 6 hours thereafter
  • Supports rustup override toolchains
  • Rust language snippets

Install

Install from Settings view by searching for ide-rust, or with the command line:

$ apm install ide-rust

Prerequisites

rust-analyzer must be installed manually, if possible on the PATH (otherwise configure this in the package settings). See https://rust-analyzer.github.io/manual.html#rust-analyzer-language-server-binary.

NOTE: On Windows, you can install it using choco: choco install rust-analyzer

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.

Configure rust-analyzer

rust-analyzer settings can be stored in a JSON file in the project directory.

It first looks for rust-analyzer.json. If the file does not exists, it then checks .config/rust-analyzer.json.

Refer to the rust-analyzer User Manual for the supported config options.

Examples

enable proc-macro support (from the User Manual)

{
    "cargo": {
        "loadOutDirsFromCheck": true,
    },
    "procMacro": {
        "enable": true,
    }
}

configure rust-fmt

{
    "rustfmt": {
        "extraArgs": ["+nightly"]
    }
}

Commands

  • ide-rust:restart-all-language-servers Restart all currently active Rls processes

Debugging IDE-Rust

If stuff isn't working you can try enabling logging to debug:

  • Open the atom console (ctrl-shift-i)
  • Enter atom.config.set('core.debugLSP', true)
  • Reload atom (ctrl-shift-F5)

This will spit out language server message logging into the atom console. Check if requests/responses are being sent or are incorrect.

RLS

RLS is no longer supported. To use RLS install a previous version of ide-rust, apm install ide-rust@0.21.2.

Screenshots

Autocomplete:

Autocomplete image

Datatips:

Datatips image

Linter:

Linter image

Outline:

Outline image

License

MIT License. See the license for more details.