Giter Site home page Giter Site logo

atom-ide-rust's Introduction

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 [email protected].

Screenshots

Autocomplete:

Autocomplete image

Datatips:

Datatips image

Linter:

Linter image

Outline:

Outline image

License

MIT License. See the license for more details.

atom-ide-rust's People

Contributors

adrian5 avatar aldonogueira avatar alexheretic avatar aminya avatar barbeque avatar dannyfritz avatar ghisvail avatar green-avocado avatar jacobmischka avatar manishearth avatar mehcode avatar msrd0 avatar randompoison avatar sunjay avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.