Commit graph

486 commits

Author SHA1 Message Date
Fumiaki MATSUSHIMA 7bbca5d6f3 Set esbuild target as node14 2021-08-28 14:43:44 +00:00
unexge 3a9ba0e506 feat: join lines merges assignments 2021-08-22 21:28:39 +03:00
André Oliveira f4f68e62c2 Use d3-graphviz for rendering crates graph on the extension side 2021-08-10 13:40:49 +00:00
Mukund Lakshman 463860439f vscode extension: use esbuild instead of rollup. 2021-08-10 10:18:08 +01:00
Gianluca Recchia 93433364ab
Exclude rust-analyzer.server.path from VS Code's sync feature
By changing the scope of this configuration to `machine-overridible`,
this setting becomes fully local for the VS Code instance the user is
running.

Having this setting excluded from syncing should help avoid
inconveniences for users who have VS Code installed on two different
operating systems, where the paths to the language server binary would
very likely mismatch.
2021-08-01 12:00:41 +02:00
Aleksey Kladov be84f85c1d feat: gate custom clint-side commands behind capabilities
Some features of rust-analyzer requires support for custom commands on
the client side. Specifically, hover & code lens need this.

Stock LSP doesn't have a way for the server to know which client-side
commands are available. For that reason, we historically were just
sending the commands, not worrying whether the client supports then or
not.

That's not really great though, so in this PR we add infrastructure for
the client to explicitly opt-into custom commands, via `extensions`
field of the ClientCapabilities.

To preserve backwards compatability, if the client doesn't set the
field, we assume that it does support all custom commands. In the
future, we'll start treating that case as if the client doesn't support
commands.

So, if you maintain a rust-analyzer client and implement
`rust-analyzer/runSingle` and such, please also advertise this via a
capability.
2021-07-30 19:16:33 +03:00
Kevin DeLorey 7797c59f18 Updated docs. 2021-07-22 19:35:47 -06:00
Kevin DeLorey b75e0e7bb1 Initial commit of highlight related configuration w/ implementation. 2021-07-22 19:35:47 -06:00
Damien Elmes d22b830ed1 mention files.watcherExclude
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2021-07-22 21:25:23 +10:00
Damien Elmes 106ea7ad85 minor update to excludeDirs doc
I saw reference to globs in #7755, but it doesn't look like they're
actually supported, and I had to dig through the source to discover
that the folders are relative to the workspace root. Further digging
was required to get VS Code from hanging for long periods trying to
watch giant Bazel folders that had already been excluded from Rust
Analyzer. Hopefully this tweak will save others the confusion :-)
2021-07-19 23:30:00 +10:00
Laurențiu Nicola 5749c4d1ac Update eslint 2021-07-10 18:34:48 +03:00
Laurențiu Nicola 713ff1890d Update vsce 2021-07-10 18:32:34 +03:00
Laurențiu Nicola 8f05aceeed Update vscode 2021-07-10 18:31:42 +03:00
Laurențiu Nicola 27f55daf05 Update @types/node 2021-07-10 18:31:33 +03:00
Laurențiu Nicola e965d46a97 Update @types/node-fetch 2021-07-10 18:29:07 +03:00
Laurențiu Nicola 45a3130fb2 Update tslib 2021-07-10 18:29:07 +03:00
Laurențiu Nicola 533b498cb7 Update typescript 2021-07-10 18:29:07 +03:00
Laurențiu Nicola 8eb79ef41c Update mocha 2021-07-10 18:29:07 +03:00
Laurențiu Nicola eff09e89fe Update vsce 2021-07-10 18:29:07 +03:00
Laurențiu Nicola f86e6a1c03 Update vsce a little 2021-07-10 18:29:07 +03:00
Laurențiu Nicola a2ecc5c1ca Update plugin-node-resolve 2021-07-10 18:29:07 +03:00
Laurențiu Nicola b65ddf03c7 Update typescript 2021-07-10 18:29:07 +03:00
Laurențiu Nicola fed134f574 Update eslint some more 2021-07-10 18:29:07 +03:00
Laurențiu Nicola d96c26eb16 Update rollup 2021-07-10 18:29:07 +03:00
Laurențiu Nicola f6b216681d Update eslint plugins 2021-07-10 18:29:06 +03:00
Laurențiu Nicola f97c86501d Update eslint 2021-07-10 18:29:06 +03:00
Laurențiu Nicola 7df4bdb873 Update @types/node 2021-07-10 18:29:06 +03:00
Aleksey Kladov b8a6ea5ab5 feat: make join lines behavior configurable
closes #9492
2021-07-05 23:47:20 +03:00
Jonas Schievink 5f13fb9db9 Add "View Crate Graph (Full)" 2021-07-02 00:10:33 +02:00
kjeremy b88019c610 Update vscode-languageclient 2021-06-21 11:39:13 -04:00
bors[bot] 25bf451c84
Merge #9264
9264: feat: Make documentation on hover configurable r=Veykril a=Veykril

This also implements deprecation support for config options as this renames `hoverActions_linksInHover` to `hover_linksInHover`.

Fixes #9232

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-21 14:15:49 +00:00
Lukas Wirth 43098d99ae Remove deprecation support in config 2021-06-21 16:15:25 +02:00
Jade 8b77e2692c Implement a config override for the default #[cfg(test)] in cargo crates
Fixes crates which vanish when the 'test' cfg atom is set.

Fix #7243.
Fix #9203.
Fix #7225.
2021-06-19 01:09:19 -07:00
Lukas Wirth 2ee090faaf Allow to disable import insertion on single path glob imports 2021-06-18 23:11:56 +02:00
bors[bot] f6e73d510d
Merge #9258
9258: minor: Give `ImportPrefix` variants better config names r=matklad a=Veykril

I feel like `crate` and `self` work better than `by_crate` and `by_self`. The only reason for the current names were that `Self` doesn't work for the variant name on the rust side so I forgot about setting proper config names on serde layer.

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-06-16 14:53:06 +00:00
bors[bot] 2980fd430d
Merge #9267 #9279
9267: fix: Code: update the LSP server without asking r=matklad a=lnicola

Most LSP extensions seem to do the same thing, and this is causing some
confusion for users who don't notice the update prompt before Code hides
it.

9279: minor: Document installation via Homebrew r=matklad a=Svetlitski

`rust-analyzer` can be installed via [Homebrew](https://brew.sh) (AKA`brew`) on macOS. I've added instructions on how to do so to the documentation. Additionally, I added a `.gitignore` rule to ignore the HTML documentation produced by  `asciidoctor manual.adoc` so that it is not accidentally checked into `git`.

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
Co-authored-by: Kevin Svetlitski <kevin_svetlitski@berkeley.edu>
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-06-15 20:45:54 +00:00
Laurențiu Nicola 41949748a6 Use objects instead of bools for markers in package.json 2021-06-15 09:40:43 +03:00
Laurențiu Nicola 6cbb18e570 Code: automatically update the LSP server
Most LSP extensions seem to do the same thing, and this is causing some
confusion for users who don't notice the update prompt before Code hides
it.
2021-06-14 17:44:29 +03:00
Lukas Wirth 178b5ffba3 Add configuration deprecation 2021-06-14 15:49:57 +02:00
Lukas Wirth a93d166f0f Make documentation on hover configurable 2021-06-14 15:25:10 +02:00
Lukas Wirth b58c1c9eb2 Give ImportPrefix variants better config names 2021-06-13 22:00:39 +02:00
Lukas Wirth 07394316ff Add function references hover action 2021-06-04 15:54:55 +02:00
Jonas Schievink 9fdb8f9037 Make it opt-in 2021-06-03 18:09:21 +02:00
Lukas Wirth d304352407 Document that addCallArgumentSnippets requires `addCallParenthesis 2021-06-02 22:10:09 +02:00
Lukas Wirth fb7105a580 Add config setting for self-on-the-fly 2021-05-31 15:14:56 +02:00
Lucas Schwiderski 9a057c0ff4
Fix incorrect setting descriptions
Descriptions for diagnostic warning hint and info display were swapped.

Fixes #8485.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
2021-05-29 18:08:14 +02:00
Andy Russell a90b9a5872
implement range formatting 2021-05-23 15:50:36 -04:00
Jonas Schievink 271ec6b990 Add a "Debug ItemTree" LSP request 2021-05-21 23:59:52 +02:00
bors[bot] 8bb37737c9
Merge #8873
8873: Implement import-granularity guessing  r=matklad a=Veykril

This renames our `MergeBehavior` to `ImportGranularity` as rustfmt has it as the purpose of them are basically the same. `ImportGranularity::Preserve` currently has no specific purpose for us as we don't have an organize imports assist yet, so it currently acts the same as `ImportGranularity::Item`.

We now try to guess the import style on a per file basis and fall back to the user granularity setting if the file has no specific style yet or where it is ambiguous. This can be turned off by setting `import.enforceGranularity` to `true`.

Closes https://github.com/rust-analyzer/rust-analyzer/issues/8870

Co-authored-by: Lukas Tobias Wirth <lukastw97@gmail.com>
2021-05-20 08:27:16 +00:00
Lukas Tobias Wirth b4fe479236 Replace ImportGranularity::Guess with guessing boolean flag 2021-05-19 15:57:10 +02:00