Rust IDE support for Atom, powered by the Rust Language Server (RLS)

Overview

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.

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.

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].

License

MIT License. See the license for more details.

Comments
  • Unreasonably poor editor performance when RLS is connected

    Unreasonably poor editor performance when RLS is connected

    I'm currently following this blog series, and I'm experiencing severe performance issues in Atom while doing so; every file modification (key press, undo, etc.) takes anywhere between 100ms and 500ms to occur, and the editor hangs in the meantime. This is making my editor absolutely unusable.

    I've isolated the problem to ide-rust, specifically when it's connected to an RLS instance with an rls.toml specifying an alternate target; I've tested the following scenarios:

    • RLS connected, rls.toml specified: Performance is unusably poor.
    • RLS disconnected (eg. repeatedly killed and restart limit reached): Performance is fine.
    • rls.toml removed: Performance is fine.
    • Editing a non-Rust project: Performance is fine.

    I've uploaded an archive here of the project in the exact state in which it causes performance issues. There's also a profiler dump of the performance issues.

    I'm currently using Atom 1.31.2 x64, on NixOS 18.03.

    (The rls.toml is necessary to keep RLS from complaining about conflicts with std, since this is a no_std project.)

    opened by joepie91 28
  • 100% CPU usage with rust repos

    100% CPU usage with rust repos

    This looks a lot like https://github.com/atom/atom/issues/6437 -- CPU runs constantly until I disable ide-rust. JavaScript profiler in Atom developer tools show that it is constantly forking.

    Repro with Atom 0.21.0 on macOS:

    cargo new foobar
    cd foobar
    open -a /Applications/Atom.app --args "$PWD" "$PWD/src/lib.rs"
    watch -n 0.1 'ls -lR'
    

    Repro on Linux:

    cargo new foobar
    cd foobar
    atom "$PWD" "$PWD/src/lib.rs"
    watch -n 0.1 'ls -lR'
    

    The watch command at the end will show that it's constantly rebuilding rls dependencies. This appears to be a conflict between file change notification watchers. But I cannot pinpoint the cause beyond these initial steps.

    I don't have this problem when opening a parent directory of the rust project. In this case, rls isn't getting built in the project directory, either.

    opened by parasyte 20
  • Rust Analyzer Support

    Rust Analyzer Support

    Hi, I use this plugin daily and often run into slowness/lagging due to the enormous memory consumption of RLS on my platform. Would it be possible (even experimentally) add support for using Rust Analyzer instead of RLS?

    It would be fine to require the user to install it themselves since it has to be built from source. I am very interested in seeing if this makes using atom for Rust more enjoyable.

    Thanks for working on this plugin! I use it every day. :smile:

    opened by sunjay 15
  • Whitespace-only lines are removed rather than trimmed on format

    Whitespace-only lines are removed rather than trimmed on format

    When using the formatting tool (ctrl+shift+c), if there are any lines that consist only of whitespace, the entire line is removed. E.g. starting with

    fn foo() {}
    
    fn main() {}
    

    with spaces or tabs on the second line, you end up with

    fn foo() {}
    fn main() {}
    

    What should happen instead is that the trailing whitespace is removed, but the line isn't. Normal Rustfmt doesn't have this problem, so it seems to be an issue specific to the Atom plugin.

    opened by Rua 14
  • Cargo failed: Error compiling dependent crate

    Cargo failed: Error compiling dependent crate

    Hi Ryan (or anyone reading this),

    I've been using atom-ide-rust for some time, but the rls stopped working lately. I get a Cargo failed: Error compiling dependent crate message when I start atom in a Rust project directory. Other things (like rustfmt) still work.

    Here's the output I get with atom.config.set('core.debugLSP', true):

    /home/althonos/.local/share/atom/packages/ide-rust/node_modules/atom-languageclient/build/lib/logger.js:9 
    Rust (RLS) stderr {
        "message":"multiple input filenames provided",
        "code":null,
        "level":"error",
        "spans":[],
        "children":[],
        "rendered":
        "error: multiple input filenames provided\n\n"
    }
    

    with:

    $ rls --version
    rls-preview 0.128.0-nightly (453f5e4 2018-05-28)
    $ atom --version
    Atom    : 1.27.1
    Electron: 1.8.4
    Chrome  : 59.0.3071.115
    Node    : 8.2.1
    
    opened by althonos 12
  • stderr thread 'main' has overflowed its stack

    stderr thread 'main' has overflowed its stack

    I'm using ide-rust with a project using glium and following the tutorials. https://github.com/glium/glium/tree/master/book

    The linter doesn't seem to be working when I'm in this glium project. When I enable logging, I get logger.ts:19 Rust (RLS) stderr thread 'main' has overflowed its stack in the console.

    atom_2018-04-24_16-57-57

    rls 
    opened by dannyfritz 12
  • Uncaught Error: Connection is closed.

    Uncaught Error: Connection is closed.

    [Enter steps to reproduce:]

    Not, sure. I've got that on first save of Rust code (Cmd-S) after upgrading to ide-rust 0.6.0

    Atom: 1.22.0 x64 Electron: 1.6.15 OS: Mac OS X 10.13.1 Thrown From: ide-rust package 0.6.0

    Stack Trace

    Uncaught Error: Connection is closed.

    At /Users/imp/.atom/packages/ide-rust/node_modules/vscode-jsonrpc/lib/main.js:613
    
    Error: Connection is closed.
        at /packages/ide-rust/node_modules/vscode-jsonrpc/lib/main.js:138:28)
        at throwIfClosedOrDisposed (/packages/ide-rust/node_modules/vscode-jsonrpc/lib/main.js:613:19)
        at Object.sendNotification (/packages/ide-rust/node_modules/vscode-jsonrpc/lib/main.js:667:13)
        at LanguageClientConnection._sendNotification (/packages/ide-rust/node_modules/atom-languageclient/build/lib/languageclient.js:242:15)
        at LanguageClientConnection.didChangeTextDocument (/packages/ide-rust/node_modules/atom-languageclient/build/lib/languageclient.js:131:10)
        at TextEditorSyncAdapter.sendIncrementalChanges (/packages/ide-rust/node_modules/atom-languageclient/build/lib/adapters/document-sync-adapter.js:200:24)
        at Function.module.exports.Emitter.simpleDispatch (/Applications/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:25:20)
        at Emitter.module.exports.Emitter.emit (/Applications/Atom.app/Contents/Resources/app/node_modules/event-kit/lib/emitter.js:141:34)
        at TextBuffer.module.exports.TextBuffer.emitDidChangeTextEvent (/Applications/Atom.app/Contents/Resources/app/node_modules/text-buffer/lib/text-buffer.js:1675:28)
        at TextBuffer.module.exports.TextBuffer.transact (/Applications/Atom.app/Contents/Resources/app/node_modules/text-buffer/lib/text-buffer.js:975:18)
        at TextEditor.module.exports.TextEditor.transact (/Applications/Atom.app/Contents/Resources/app/src/text-editor.js:1687:32)
        at /Applications/Atom.app/Contents/Resources/app/src/text-editor.js:1248:30
        at TextEditor.module.exports.TextEditor.mergeSelections (/Applications/Atom.app/Contents/Resources/app/src/text-editor.js:2635:24)
        at TextEditor.module.exports.TextEditor.mergeIntersectingSelections (/Applications/Atom.app/Contents/Resources/app/src/text-editor.js:2597:41)
        at TextEditor.module.exports.TextEditor.mutateSelectedText (/Applications/Atom.app/Contents/Resources/app/src/text-editor.js:1246:25)
        at TextEditor.module.exports.TextEditor.insertText (/Applications/Atom.app/Contents/Resources/app/src/text-editor.js:1212:25)
        at TextEditorComponent.didTextInput (/Applications/Atom.app/Contents/Resources/app/src/text-editor-component.js:1627:30)
    

    Commands

    Non-Core Packages

    atom-beautify 0.30.6 
    atom-ide-ui 0.5.4 
    atomatigit 1.5.5 
    autocomplete-python 1.10.3 
    browser-plus 0.0.98 
    build 0.69.0 
    build-cargo 2.0.0 
    build-make 0.13.0 
    busy 0.7.0 
    busy-signal 1.4.3 
    ide-rust 0.6.0 
    imdone-atom 2.2.7 
    imdone-atom-github 0.1.11 
    intentions 1.1.5 
    language-diff 0.7.0 
    language-docker 1.1.8 
    language-rust 0.4.12 
    linter 2.2.0 
    linter-pycodestyle 2.1.3 
    linter-rust 0.8.1 
    linter-ui-default 1.6.10 
    merge-conflicts 1.4.5 
    minimap 4.29.7 
    minimap-git-diff 4.3.1 
    project-manager 3.3.5 
    python-tools 0.6.9 
    racer-plus 2.0.0 
    release-notes 0.53.0 
    rust-api-docs-helper 0.5.1 
    rusty-dark-syntax 0.7.0 
    split-diff 1.5.1 
    sync-settings 0.8.3 
    tool-bar 1.1.0 
    travis-ci-status 1.3.1 
    
    opened by imp 10
  • Diagnostics/Linting not loading

    Diagnostics/Linting not loading

    So i've run into an issue with this package. Diagnostics or Linting doesn't work while a .rs file is open. Saving the file or going to the new line does not lint the file. It seems that this only happens when the file is first opened and in order to kick it off again you have to close and reopen this file.

    Would it be possible to implement proper code linting using the RLS or even Racer if needed?

    Atom: version is 1.23.3 (all packages updated to latest) Rust: nightly-x86_64-pc-windows-msvc (default) rustc 1.25.0-nightly (e6072a7b3 2018-01-13)

    opened by nlvw 9
  • "Ghost" window stays open after closing atom

    When atom is closed with atom-ide-rust enabled, a "ghost" window appears, showing the last open file but without any syntax highlighting or most of the UI.

    Atom before clicking the cross to close: image

    Atom after clicking the cross as a "ghost" window. image

    opened by autumnull 8
  • Format code using the project rustfmt.toml

    Format code using the project rustfmt.toml

    I noticed that when I do formatting, it uses the default rustfmt configuration

    Also would be cool a command to formate all using cargo fmt on the project

    opened by GrayJack 8
  • Toolchain is reportedly not installed, even though it very much is

    Toolchain is reportedly not installed, even though it very much is

    I'm getting errors pointing to a missing rustup installation while I'm very certain it is available and present in PATH:

    Uncaught (in promise) Error: failed to start server: Error: Command failed: rustup run stable-x86_64-pc-windows-gnu rustc --version
    error: toolchain 'stable-x86_64-pc-windows-gnu' is not installed
    
        at RustLanguageClient.startServerProcess (C:\Users\user\.atom\packages\ide-rust\lib\index.js:622)
        at <anonymous>
        at process._tickCallback (internal/process/next_tick.js:188:7)
    

    Running rustup run stable-x86_64-pc-windows-gnu rustc --version in cmd works nicely and returns rustc 1.27.0 (3eda71b00 2018-06-19). rustup component list --toolchain stable confirms that the required components are there:

    cargo-x86_64-pc-windows-gnu (default)
    rls-preview-x86_64-pc-windows-gnu (installed)
    rust-analysis-x86_64-pc-windows-gnu (installed)
    rust-docs-x86_64-pc-windows-gnu (default)
    rust-mingw-x86_64-pc-windows-gnu (default)
    rust-src (installed)
    rust-std-x86_64-pc-windows-gnu (default)
    rustc-x86_64-pc-windows-gnu (default)
    

    I've also tried to make it work with nightly-x86_64-pc-windows-gnu (that I also have along with RLS), but it only changed the flavor of the error to:

    Error: Command failed: rustup run nightly-x86_64-pc-windows-gnu rustc --version
    error: toolchain 'nightly-x86_64-pc-windows-gnu' is not installed
    

    Debug mode doesn't show any more errors.

    opened by ljedrz 8
  • Contacting?

    Contacting?

    Pulsar discord: https://discord.com/invite/7aEbB9dGRT A rust discord: https://discord.gg/rust-lang-community

    I couldn't find @aminya or @Green-Avocado

    I was asking pulsar devs about variable highlighting, the VSCode plugin does this, and they said I need to contact the ide devs.

    opened by cheako 0
  • Uncaught Error: Message header must separate key and value using :

    Uncaught Error: Message header must separate key and value using :

    [Enter steps to reproduce:]

    1. ...starting atom
    2. ...

    Atom: 1.58.0 x64 Electron: 9.4.4 OS: Windows 10 Thrown From: ide-rust package 1.1.1

    Stack Trace

    Uncaught Error: Message header must separate key and value using :

    At C:\Users\amiga\.atom\packages\ide-rust\node_modules\vscode-jsonrpc\lib\common\messageBuffer.js:87
    
    Error: Message header must separate key and value using :
        at MessageBuffer.tryReadHeaders (/packages/ide-rust/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js:87:23)
        at StreamMessageReader.onData (/packages/ide-rust/node_modules/vscode-jsonrpc/lib/common/messageReader.js:132:45)
        at /packages/ide-rust/node_modules/vscode-jsonrpc/lib/common/messageReader.js:122:18)
        at Socket.emit (events.js:228:7)
        at addChunk (_stream_readable.js:309:12)
        at readableAddChunk (_stream_readable.js:290:11)
        at Socket.Readable.push (_stream_readable.js:224:10)
        at Pipe.onStreamRead (internal/stream_base_commons.js:181:23)
    

    Commands

    Non-Core Packages

    atom-ide-base 3.4.0 
    atom-ide-code-format 1.0.2 
    atom-ide-datatip 0.25.0 
    atom-ide-definitions 0.4.2 
    atom-ide-hyperclick 1.0.11 
    atom-ide-markdown-service 2.1.0 
    atom-ide-outline 3.2.0 
    atom-ide-signature-help 0.16.0 
    atom-language-rust 0.14.1 
    build 0.70.0 
    build-cargo 2.0.0 
    busy-signal 2.0.1 
    ide-rust 1.1.1 
    intentions 2.1.1 
    linter 3.4.0 
    linter-rust-cargo 1.1.0 
    linter-ui-default 3.4.1 
    rust-format 1.0.3 
    
    opened by Amiganer 0
  • Support custom command / toolchain for rustfmt

    Support custom command / toolchain for rustfmt

    I'd like to be able to use nightly Rust for rustfmt but keep using stable Rust for everything else. Stable rust is set as the default toolchain in rustup and I always call cargo +nightly fmt for code formatting. However, I couldn't find any option in atom-ide-rust to replicate this behaviour. Instead, everytime I save a file this package adds a whole bunch of trailing commas, likely because the option to remove those is unstable and ignored by stable rustfmt.

    opened by msrd0 3
  • ide-rust's use of rust analyzer results in extremely poor battery life

    ide-rust's use of rust analyzer results in extremely poor battery life

    Ide-rust's use of rust analyzer has very poor impact on laptop battery life.

    There needs to be work done to reduce its CPU util when idle.

    My battery util with rust analyzer turned on v.s. without is 45W v.s. 10-15W. That is truly a battery life killer.

    Are there any suggestions on how this might be done?

    Rust analyzer issue: https://github.com/rust-analyzer/rust-analyzer/issues/5919

    Something that would be nice is to have rust-analyzer be manually refreshable, rather than to be called constantly. Or to have a button to toggle whether analyzer is on or off directly in the console, rather than having to navigate to the packages page.

    opened by jon-chuang 1
  • Editor crashes when

    Editor crashes when "main.rs" is empty

    When the "main.rs" file is saved empty, the whole editor freezes and shortly crashes. During the freeze, a really high spike in CPU usage occurs. The analyzer doesn't show the compilation error that no fn main() was found, so the issue likely occurs during this check.

    The editor works normally when in safe mode (eg. all packages disabled).

    Atom version: 1.49.0 atom-ide-rust version: 0.22.0-beta.3 RLS: rust-analyzer-mac Toolchain: stable-x86_64-apple-darwin

    opened by ruza-net 0
  • long running 'cargo check' with high CPU usage

    long running 'cargo check' with high CPU usage

    When I get my project into a state in which there are no compiler errors, then ide-rust starts to go crazy. The rust-analyzer and atom-helper processes go up to 100 - 200% CPU usage and ide-rust says it's running cargo check. This usually takes around 10 minutes and I get messages like this thousands of times:

    /.atom/packages/ide-rust/lib/index.js:211 Rust LS suspicious stdout: ource":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_WEIGHT_ARRAY_POINTER_ARB`","range":{"end":{"character":51,"line":661},"start":{"character":0,"line":661}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_WEIGHT_ARRAY_ARB`","range":{"end":{"character":43,"line":662},"start":{"character":0,"line":662}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW0_ARB`","range":{"end":{"character":40,"line":663},"start":{"character":0,"line":663}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW1_ARB`","range":{"end":{"character":41,"line":664},"start":{"character":0,"line":664}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW2_ARB`","range":{"end":{"character":41,"line":665},"start":{"character":0,"line":665}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW3_ARB`","range":{"end":{"character":41,"line":666},"start":{"character":0,"line":666}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW4_ARB`","range":{"end":{"character":41,"line":667},"start":{"character":0,"line":667}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW5_ARB`","range":{"end":{"character":41,"line":668},"start":{"character":0,"line":668}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW6_ARB`","range":{"end":{"character":41,"line":669},"start":{"character":0,"line":669}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW7_ARB`","range":{"end":{"character":41,"line":670},"start":{"character":0,"line":670}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW8_ARB`","range":{"end":{"character":41,"line":671},"start":{"character":0,"line":671}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW9_ARB`","range":{"end":{"character":41,"line":672},"start":{"character":0,"line":672}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW10_ARB`","range":{"end":{"character":42,"line":673},"start":{"character":0,"line":673}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW11_ARB`","range":{"end":{"character":42,"line":674},"start":{"character":0,"line":674}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW12_ARB`","range":{"end":{"character":42,"line":675},"start":{"character":0,"line":675}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW13_ARB`","range":{"end":{"character":42,"line":676},"start":{"character":0,"line":676}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW14_ARB`","range":{"end":{"character":42,"line":677},"start":{"character":0,"line":677}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW15_ARB`","range":{"end":{"character":42,"line":678},"start":{"character":0,"line":678}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW16_ARB`","range":{"end":{"character":42,"line":679},"start":{"character":0,"line":679}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW17_ARB`","range":{"end":{"character":42,"line":680},"start":{"character":0,"line":680}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW18_ARB`","range":{"end":{"character":42,"line":681},"start":{"character":0,"line":681}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW19_ARB`","range":{"end":{"character":42,"line":682},"start":{"character":0,"line":682}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW20_ARB`","range":{"end":{"character":42,"line":683},"start":{"character":0,"line":683}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW21_ARB`","range":{"end":{"character":42,"line":684},"start":{"character":0,"line":684}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW22_ARB`","range":{"end":{"character":42,"line":685},"start":{"character":0,"line":685}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW23_ARB`","range":{"end":{"character":42,"line":686},"start":{"character":0,"line":686}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW24_ARB`","range":{"end":{"character":42,"line":687},"start":{"character":0,"line":687}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW25_ARB`","range":{"end":{"character":42,"line":688},"start":{"character":0,"line":688}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW26_ARB`","range":{"end":{"character":42,"line":689},"start":{"character":0,"line":689}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW27_ARB`","range":{"end":{"character":42,"line":690},"start":{"character":0,"line":690}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW28_ARB`","range":{"end":{"character":42,"line":691},"start":{"character":0,"line":691}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW29_ARB`","range":{"end":{"character":42,"line":692},"start":{"character":0,"line":692}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW30_ARB`","range":{"end":{"character":42,"line":693},"start":{"character":0,"line":693}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_MODELVIEW31_ARB`","range":{"end":{"character":42,"line":694},"start":{"character":0,"line":694}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_ARRAY_BUFFER_ARB`","range":{"end":{"character":43,"line":695},"start":{"character":0,"line":695}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_ELEMENT_ARRAY_BUFFER_ARB`","range":{"end":{"character":51,"line":696},"start":{"character":0,"line":696}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_ARRAY_BUFFER_BINDING_ARB`","range":{"end":{"character":51,"line":697},"start":{"character":0,"line":697}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB`","range":{"end":{"character":59,"line":698},"start":{"character":0,"line":698}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_VERTEX_ARRAY_BUFFER_BINDING_ARB`","range":{"end":{"character":58,"line":699},"start":{"character":0,"line":699}},"severity":2,"source":"rustc","tags":[1]},{"code":"dead_code","message":"constant item is never used: `GL_NORMAL_ARRAY_BUFFER_BINDING_ARB`","range":{"end":{"character":58,"line":700},"start":{"character":0,"line":700}},"severity":2,"sourc
    

    If I run cargo check in the terminal, it usually runs in under a second.

    Rust Analyzer Version: fbb8b88

    opened by TitanNano 0
Releases(v1.1.2)
  • v1.1.2(Mar 18, 2022)

    What's Changed

    • Add cargo +nightly fmt example to readme by @Green-Avocado in https://github.com/rust-lang/atom-ide-rust/pull/209
    • Remove unused rls.toml code by @Green-Avocado in https://github.com/rust-lang/atom-ide-rust/pull/210
    • Change the lint CI job name to be more descriptive by @Green-Avocado in https://github.com/rust-lang/atom-ide-rust/pull/208
    • Fixed markdown in datatips by @autumnull in https://github.com/rust-lang/atom-ide-rust/pull/212

    New Contributors

    • @autumnull made their first contribution in https://github.com/rust-lang/atom-ide-rust/pull/212

    Full Changelog: https://github.com/rust-lang/atom-ide-rust/compare/v1.1.1...v1.1.2

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Dec 2, 2021)

    What's Changed

    • Support rust-analyzer config file under .config/rust-analyzer.json @Green-Avocado in https://github.com/rust-lang/atom-ide-rust/pull/207

    Full Changelog: https://github.com/rust-lang/atom-ide-rust/compare/v1.1.0...v1.1.1

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Dec 1, 2021)

    What's Changed

    • Configure rust-analyzer with project-specific config files by @Green-Avocado in https://github.com/rust-lang/atom-ide-rust/pull/205
    • Remove duplicate lint warnings by @Green-Avocado in https://github.com/rust-lang/atom-ide-rust/pull/206
    • Eslint fixes by @aminya in https://github.com/rust-lang/atom-ide-rust/pull/201

    New Contributors

    • @Green-Avocado made their first contribution in https://github.com/rust-lang/atom-ide-rust/pull/205

    Full Changelog: https://github.com/rust-lang/atom-ide-rust/compare/v1.0.2...v1.1.0

    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Jul 21, 2021)

    • kill rust-analyzer fast without waiting for the close response. fixes Atom not closing (fixes #196)
    • update atom-languageclient (#200)
    • update atom-package-deps (#200)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Jul 15, 2021)

  • v1.0.0(Jun 18, 2021)

  • v0.22.0(May 17, 2020)

    • Switch from RLS to rust-analyzer (#157). Also see https://github.com/rust-lang/rfcs/pull/2912.
    • Add snippets for eprint, eprintln, todo, unimplemented, and unreachable (#162).
    • Update atom-languageclient: support additionalTextEdits (#165).
    • Update atom-languageclient to use rimraf for building (#160).
    • Workaround missing markdown syntax highlighting (#171)
    • Improve the missing rust-analyzer bin error notification (#172)
    • Support some standard code actions, filter out rust-analyzer custom ones (#173)

    RLS is no longer supported. To use RLS install a previous version of ide-rust, apm install [email protected].

    Source code(tar.gz)
    Source code(zip)
  • v0.22.0-beta.3(May 13, 2020)

    • Workaround missing markdown syntax highlighting (#171)
    • Improve the missing rust-analyzer bin error notification (#172)
    • Support some standard code actions, filter out rust-analyzer custom ones (#173)
    Source code(tar.gz)
    Source code(zip)
  • v0.22.0-beta.2(May 11, 2020)

    • Add snippets for eprint, eprintln, todo, unimplemented, and unreachable (#162).
    • Update atom-languageclient: support additionalTextEdits (#165).
    • Update atom-languageclient to use rimraf for building (#160).
    Source code(tar.gz)
    Source code(zip)
  • v0.22.0-beta.1(May 11, 2020)

  • v0.21.2(Nov 20, 2019)

  • v0.21.1(Oct 26, 2019)

  • v0.21.0(Jul 3, 2019)

    • Switch thee default toolchain to '' which will now mean "use rustup/system default toolchain". This allows rustup overrides to be used.
    • When using a rustup override also check the override toolchain for updates.
    • Environments without rustup are now supported without errors or workarounds, however update checking is not supported without rustup.
    • Kill RLS instead of waiting for a graceful shutdown, this will stop RLS compiling much more quickly when restarts are requested or project files are closed.
    Source code(tar.gz)
    Source code(zip)
  • v0.20.3(May 24, 2019)

  • v0.20.2(May 7, 2019)

  • v0.20.1(Apr 11, 2019)

  • v0.20.0(Feb 15, 2019)

    • Support language server functionality in cargo dependency & std library sources outside of the project that are clicked through to from the local project files.
    • Update dependencies.
    Source code(tar.gz)
    Source code(zip)
  • v0.19.4(Jan 10, 2019)

  • v0.19.3(Dec 28, 2018)

  • v0.19.2(Dec 7, 2018)

    • Add snippets taken from language-rust. (language-rust is no longer necessary as Atom provides built in support for rust since 1.33. The built in support does not include snippets).
    • Avoid showing using rls command rls notification when using the current workaround for no-rustup environments.
    Source code(tar.gz)
    Source code(zip)
  • v0.19.1(Nov 30, 2018)

  • v0.19.0(Nov 28, 2018)

  • v0.18.5(Nov 16, 2018)

  • v0.18.4(Oct 18, 2018)

    • Add rls::build=info default RUST_LOG when console logging is enabled.
    • Update atom-languageclient -> 0.9.7
    • Fix toolchain warning message typo.
    Source code(tar.gz)
    Source code(zip)
  • v0.18.3(Aug 29, 2018)

  • v0.18.2(Aug 24, 2018)

  • v0.18.1(Aug 24, 2018)

  • v0.18.0(Jul 2, 2018)

  • v0.17.1(Jun 16, 2018)

  • v0.17.0(Jun 7, 2018)

Owner
The Rust Programming Language
The Rust Programming Language
Repository for the Rust Language Server (aka RLS)

Rust Language Server (RLS) The RLS provides a server that runs in the background, providing IDEs, editors, and other tools with information about Rust

The Rust Programming Language 3.6k Dec 30, 2022
Rust extension for Visual Studio 2017 with RLS support

Rust support for Visual Studio 2017 Preview Adds language support for Rust to Visual Studio 2017. Supports: code completion goto definition find all r

Zoey Riordan 111 Aug 4, 2022
IDE tools for writing pest grammars, using the Language Server Protocol for Visual Studio Code, Vim and other editors

Pest IDE Tools IDE support for Pest, via the LSP. This repository contains an implementation of the Language Server Protocol in Rust, for the Pest par

pest 20 Apr 8, 2023
RustDT is an Eclipse based IDE for the Rust programming language:

Project website: http://rustdt.github.io/ As of 2017, RustDT is no longer actively maintained, see this blog post for more information. If you are int

null 351 Aug 20, 2022
Eclipse Corrosion - Rust edition in Eclipse IDE

Eclipse Corrosion Rust edition and debug in Eclipse IDE Corrosion is a Rust development plugin for the Eclipse IDE, providing a rich edition experienc

Eclipse Foundation 194 Dec 23, 2022
Rust IDE

This branch contains the development of a "new ride" that maintain a small impact on the ui library. This is for a few reasons. Can customize the colo

Gustav Jansson 171 Dec 24, 2022
An IDE for Rust

Introduction SolidOak is a simple IDE for Rust. See the website for binary releases. It has the following features: An embedded copy of Neovim as its

Zach Oakes 907 Dec 29, 2022
Flowistry: Powerful IDE Tools for Rust

Flowistry - a VSCode extension that helps you understand Rust programs with program analysis.

Will Crichton 1.4k Dec 29, 2022
Language Server Protocol (LSP) support for vim and neovim.

For legacy python implementation, see branch master. LanguageClient-neovim Language Server Protocol support for vim and neovim. More recordings at Upd

Junfeng Li 3.5k Dec 29, 2022
Fennel language server protocol (LSP) support.

fennel-language-server Fennel language server protocol (LSP) support. fennel-language-server is currently in a very early stage and unreliable. Use it

null 68 Dec 27, 2022
AIDL Language Server Protocol (LSP) server

AIDL Language Server Protocol (LSP) server Experimental AIDL LSP server based on rust-aidl-parser. Features: diagnostics workspace symbols (Ctrl+T in

Benoit Walter 0 Jan 9, 2022
A LSP (Language Server Protocol) server for OpenSCAD.

openscad-LSP A LSP (Language Server Protocol) server for OpenSCAD. inspired by dzhu/openscad-language-server Tested with VSCode on Mac and Windows. Te

Leathong 20 Dec 15, 2022
impl LSP (Language Server Protocol) Server for librime

rime-ls 为 rime 输入法核心库 librime (的部分功能) 实现 LSP 协议, 从而通过编辑器的代码补全功能输入汉字. 项目还处在早期阶段, 各方面都非常不成熟. 目标是提供 rime + LSP 的通用解决方案, 在不同编辑器内实现与其他 rime 前端类似的输入体验. Feat

zilch40 55 Jan 22, 2023
Kakoune Language Server Protocol Client

Kakoune Language Server Protocol Client kak-lsp is a Language Server Protocol client for Kakoune implemented in Rust. Installation Note kak-lsp.toml d

null 495 Dec 17, 2022
An experimental proofreading and linting language server for markdown files ✍️

prosemd is an experimental proofreading and linting language server for markdown files. It aims to provide helpful and smart diagnostics when writing

Phil Pluckthun 132 Dec 14, 2022
Experimental treesiter based language server, let's see how far this goes 😆.

tsls Tree-sitter based language server for general languages. Warning: It's in active development right now, and bug is expected. Features Go To Defin

Keyv Chan 16 Sep 11, 2022
A brand-new language server for Typst, plus a VS Code extension

Typst LSP A brand-new language server for Typst. Features Syntax highlighting, error reporting, code completion, and function signature help Compiles

Nathan Varner 414 Apr 17, 2023
WIP: Asynchronous Language Server Protocol framework

async-lsp Asynchronous Language Server Protocol (LSP) framework based on tower. ⚠️ This project serves as a proof-of-concept for LSP with middlewares

null 9 Apr 11, 2023
Better Rust/Cargo support for Flycheck

flycheck-rust — Flycheck for Rust This Flycheck extension configures Flycheck automatically for the current Cargo project. Setup Install from MELPA or

Flycheck 112 Sep 21, 2022