rust-analyzer/editors/code
bors[bot] d0f2bc3b87
Merge #9292
9292: fix: Code: clean-up #8951 r=wxb1ank a=wxb1ank

#8951 was a major change in the VS Code extension and caused quite a few problems. This PR is a catch-all for bugs and improvements in the new code.

This should fix:
- #9284
- [this unreported bug](https://github.com/rust-analyzer/rust-analyzer/pull/8951/files#r651570446)
- ...and one or two uncaught exceptions I just found

The original lack of testing was my own fault, but this area of the VS Code API is also tricky for a couple reasons:
- The [FileSystem](https://github.com/rust-analyzer/rust-analyzer/pull/8951/files#r651570446) API does not list or warn about any exceptions, but [FileSystemProvider](https://github.com/rust-analyzer/rust-analyzer/pull/8951/files#r651570446) (which `FileSystem` is a wrapper of, AFAICT) does.
- At first glance, [Uri.path](https://github.com/rust-analyzer/rust-analyzer/pull/8951/files#r651570446) *looks* like it works for FS operations. It does not, at least, on Windows. You need to use `Uri.fsPath`.

I only use Windows, so I need people on macOS, Linux, and (possibly) NixOS to test this.

Co-authored-by: wxb1ank <wxblank@gmail.com>
2021-06-15 20:05:07 +00:00
..
src Use .then() for Thenable 2021-06-15 14:03:34 -04:00
tests Support 'runnables' options in the vs code extension 2020-10-02 12:35:22 +03:00
.eslintignore Fix eslint errors on .eslintrc.js and rollup.config.js 2020-08-16 23:28:26 +08:00
.eslintrc.js handle promise catches 2021-02-07 21:27:21 +03:30
.gitignore add rollup bundler for vscode extension 2019-09-23 23:25:16 +02:00
.vscodeignore Remove TextMate grammar 2020-12-21 18:58:46 +02:00
icon.png Extension icon 2020-01-15 16:07:39 +01:00
language-configuration.json Support | as a surrounding pairs 2021-04-22 15:57:30 -04:00
package-lock.json Revert "Merge #9177" 2021-06-08 15:31:36 +03:00
package.json Use objects instead of bools for markers in package.json 2021-06-15 09:40:43 +03:00
ra_syntax_tree.tmGrammar.json Fix .rast tmGrammar to account for numbers in identifiers 2020-04-22 02:00:58 +03:00
README.md clean uo rustup link 2021-03-01 15:19:30 -05:00
rollup.config.js Bump @rollup/plugin-commonjs 2020-06-27 22:37:03 +03:00
tsconfig.json Disable ES module interop 2020-07-06 14:29:19 +03:00

rust-analyzer

Provides support for rust-analyzer: novel LSP server for the Rust programming language.

Note the extension may cause conflicts with the official Rust extension. It is recommended to disable the Rust extension when using the rust-analyzer extension.

Note the project is in alpha status: it is already useful in practice, but can't be considered stable.

Sponsor

Work on rust-analyzer is sponsored by

Ferrous Systems

If you want to sponsor:

Features

Quick start

  1. Install rustup
  2. Install the rust-analyzer extension

Configuration

This extension provides configurations through VSCode's configuration settings. All the configurations are under rust-analyzer.*.

See https://rust-analyzer.github.io/manual.html#vs-code-2 for more information on VSCode specific configurations.

Communication

For usage and troubleshooting requests, please use "IDEs and Editors" category of the Rust forum:

https://users.rust-lang.org/c/ide/14

Documentation

See https://rust-analyzer.github.io/ for more information.