Commit Graph

614 Commits

Author SHA1 Message Date
bors
135164f547 Auto merge of #12226 - Veykril:reborrow-inlay-hints, r=Veykril
feat: Allow reborrow inlay hints to be restricted to mutable reborrows only
2022-05-12 12:21:06 +00:00
Lukas Wirth
c2190ad87c feat: Allow reborrow inlay hints to be restricted to mutable reborrows only 2022-05-12 14:00:06 +02:00
Lukas Wirth
84176f6b24 internal: Rename primeCaches config keys 2022-05-12 12:30:00 +02:00
Elliot Roberts
2298a76222 fix typo in inlayHints.renderColons option description 2022-05-10 19:15:07 -07:00
bors
460e389f54 Auto merge of #12010 - Veykril:r-a-config, r=Veykril
Config revamp

Fixes https://github.com/rust-lang/rust-analyzer/issues/11790
Fixes https://github.com/rust-lang/rust-analyzer/issues/12115

This PR changes a lot of config names, and a few ones are being merged or split apart. The reason for this is that our configuration names currently are rather inconsistent and some where poorly chosen in regards to extensability. This PR plans to fix that.

We still allow the old config names by patching them to the new ones before deserializing to keep backwards compatability with other clients (the VSCode client will auto update the config) but ideally we will get rid of that layer in the future.

Here is a list of the changes:

These are simple renames `old_name | alias1 | alias2 ... -> new_name` (the vscode client will fix these up automagically):
```
assist_allowMergingIntoGlobImports -> imports_merge_glob
assist_exprFillDefault -> assist_expressionFillDefault
assist_importEnforceGranularity -> imports_granularity_enforce
assist_importGranularity | assist_importMergeBehavior | assist_importMergeBehaviour -> imports_granularity_group
assist_importGroup -> imports_group_enable
assist_importPrefix -> imports_prefix

cache_warmup -> primeCaches_enable

cargo_loadOutDirsFromCheck -> cargo_buildScripts_enable
cargo_runBuildScripts | cargo_runBuildScriptsCommand -> cargo_runBuildScripts_overrideCommand
cargo_useRustcWrapperForBuildScripts -> cargo_runBuildScripts_useRustcWrapper

completion_snippets -> completion_snippets_custom

diagnostics_enableExperimental -> diagnostics_experimental_enable

experimental_procAttrMacros -> procMacro_attributes_enable

highlighting_strings -> semanticHighlighting_strings_enable

highlightRelated_breakPoints -> semanticHighlighting_breakPoints_enable
highlightRelated_exitPoints -> semanticHighlighting_exitPoints_enable
highlightRelated_yieldPoints -> semanticHighlighting_yieldPoints_enable
highlightRelated_references -> semanticHighlighting_references_enable

hover_documentation -> hover_documentation_enable
hover_linksInHover | hoverActions_linksInHover -> hover_links_enable
hoverActions_debug -> hoverActions_debug_enable
hoverActions_enable -> hoverActions_enable_enable
hoverActions_gotoTypeDef -> hoverActions_gotoTypeDef_enable
hoverActions_implementations -> hoverActions_implementations_enable
hoverActions_references -> hoverActions_references_enable
hoverActions_run -> hoverActions_run_enable

inlayHints_chainingHints -> inlayHints_chainingHints_enable
inlayHints_closureReturnTypeHints -> inlayHints_closureReturnTypeHints_enable
inlayHints_hideNamedConstructorHints -> inlayHints_typeHints_hideNamedConstructorHints
inlayHints_parameterHints -> inlayHints_parameterHints_enable
inlayHints_reborrowHints -> inlayHints_reborrowHints_enable
inlayHints_typeHints -> inlayHints_typeHints_enable

lruCapacity -> lru_capacity

runnables_cargoExtraArgs -> runnables_extraArgs
runnables_overrideCargo -> runnables_command

rustcSource -> rustc_source

rustfmt_enableRangeFormatting -> rustfmt_rangeFormatting_enable
```

These are configs that have been merged or split apart, which have to be manually updated by the user:

```
callInfo_full -> signatureInfo_detail, signatureInfo_documentation_enable

cargo_allFeatures, cargo_features -> cargo_features
checkOnSave_allFeatures, checkOnSave_features -> checkOnSave_features
completion_addCallArgumentSnippets completion_addCallParenthesis -> completion_callable_snippets
```
2022-05-10 12:07:24 +00:00
Lukas Wirth
291f94e22e Fix up config docs 2022-05-01 19:57:09 +02:00
Lukas Wirth
1f11b70c3b Final fixups 2022-05-01 19:57:09 +02:00
Lukas Wirth
3d17261972 Adjust signature info and enum variant lenses 2022-05-01 19:57:08 +02:00
Lukas Wirth
b84f3cc98f Update docs and config 2022-05-01 19:57:08 +02:00
unknown
b373e62f1a Reload project on .cargo/config[.toml] changes
Fixes #11024
2022-04-27 12:10:43 -03:00
Laurențiu Nicola
f77adb3a23 Remove old inlay hints settings 2022-04-16 08:05:07 +03:00
Deadbeef
73a033e77c
feat: allow customizing the command for running build scripts 2022-04-13 23:45:51 +10:00
OKURA Masafumi
afe1155e64
Fix typo in the manual
The -> There
2022-04-11 01:17:39 +09:00
bors[bot]
bc0825d135
Merge #10802
10802: Allow clients to configure the global workspace search limit r=Veykril a=knutwalker

Playing around with [helix](https://helix-editor.com) I realized that the global worksapce symbol search works different compared to vs-code.
Helix requires all possible symbols in one query and does no subsequent refinement searched.
This PR adds a configuration option to override the default search limit with the default being the currently hardocded value.
Helix users can increment this limit for their instance with a config like

```toml
[[language]]
name = "rust"
language-server = { command = "rust-analyzer" }
[language.config]
workspace = { symbol = { search = { limit = 65536 }}}
```

Other editors are not affected by this change.


Co-authored-by: Paul Horn <dev@knutwalker.engineer>
2022-04-03 12:03:46 +00:00
Gibson Fahnestock
6b38c2d75e
docs(auto_import): change by_self -> self and by_crate -> crate
Keep things consistent with the package.json , which uses `self` and
`crate` instead of `by_self` and `by_crate`. Both names are in fact
allowed as aliases, but we should be consistent so that people reading
the docs and using a schema do not see red squiggles.
2022-03-30 12:33:07 +01:00
Jonas Schievink
44a99d6e49 Disable experimental diagnostics by default 2022-03-24 17:00:17 +01:00
Lukas Wirth
ecf2c98859 fix: Fix lifetime elision hint configuration key 2022-03-22 16:28:36 +01:00
Lukas Wirth
37b48ceb8f feat: Visualize compiler inserted reborrows via inlay hints 2022-03-20 14:38:16 +01:00
Lukas Wirth
7da5b80f25 Change skip trivial behaviour 2022-03-19 20:12:14 +01:00
Lukas Wirth
7ab0aaa82a Add option to skip trivial cases 2022-03-19 19:01:19 +01:00
Lukas Wirth
bd17933c31 feat: Add return type hints for closures with block bodies 2022-03-16 21:25:03 +01:00
Ian Chamberlain
606ac3e73a
Update manual for inlay hint customization
Closes #6883 

This functionality was changed as of #11445 and now can be customized using native VSCode settings instead of `rust-analyzer`-specific ones.
2022-03-14 17:21:36 -04:00
Lukas Wirth
62265ee9cb fix: Allow configuration of colons in inlay-hints 2022-03-11 21:15:36 +01:00
Vitaly Shukela
6e62d93c95
Update manual.adoc
Resolves #11507
2022-03-07 14:22:07 +03:00
Lukas Wirth
2a7793d912 feat: Make private editable completions configurable, disable by default 2022-02-25 22:16:40 +01:00
Jean SIMARD
8025b6449c
Add Kakoune and Helix configuration
Follow-up of rust-analyzer/rust-analyser.github.io#181
Fixes rust-analyzer/rust-analyser.github.io#180
2022-02-23 08:55:56 +01:00
Laurențiu Nicola
b97ab63cbe Rephrase nightly instructions in the manual 2022-02-23 06:37:16 +02:00
Jan Tache
90916b726e Change Rust Analyzer->rust-analyzer to match style 2022-02-21 23:01:05 -08:00
Jan Tache
08461cc8f0 doc: state that only the latest stable toolchain is supported
This closes #11226. The content seemed to make more sense in the
installation section as opposed to the Troubleshooting section.
2022-02-21 22:54:25 -08:00
bors[bot]
d771e3a7e9
Merge #11142
11142: Updated the Sublime Text section r=Veykril a=AmjadHD

rust-analyzer/rust-analyzer.github.io#160

Co-authored-by: Amjad Ben Hedhili <amjadhedhili@outlook.com>
2022-02-21 10:29:16 +00:00
Heyward Fann
1988ea2b48
chore(manual): update coc-rust-analyzer manual
Semantic tokens highlighting is added now
2022-02-21 11:04:39 +08:00
Laurențiu Nicola
befaa874ac Update install notes 2022-02-03 21:54:23 +02:00
Jake Heinz
25f67b6939 make it a config 2022-01-15 02:47:47 +00:00
Matt Williams
1ded222c8b
Kate uses rust-analyzer by default 2022-01-11 13:36:06 +00:00
Wang Ruochen
01b3ce3006
Fix documentation of snippet 2022-01-10 21:29:41 -08:00
bors[bot]
40009e07d0
Merge #11145
11145: feat: add config to use reasonable default expression instead of todo! when filling missing fields r=Veykril a=bnjjj

Use `Default::default()` in struct fields when we ask to fill it instead of putting `todo!()` for every fields

before:

```rust
pub enum Other {
    One,
    Two,
}

pub struct Test {
    text: String,
    num: usize,
    other: Other,
}

fn t_test() {
    let test = Test {<|>};
}
``` 

after: 

```rust
pub enum Other {
    One,
    Two,
}

pub struct Test {
    text: String,
    num: usize,
    other: Other,
}

fn t_test() {
    let test = Test {
        text: String::new(),
        num: 0,
        other: todo!(),
    };
}
``` 



Co-authored-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
Co-authored-by: Coenen Benjamin <benjamin.coenen@hotmail.com>
2022-01-07 14:10:11 +00:00
Benjamin Coenen
8e0a05eb70 feat(diagnostics): use default expression instead of todo! when missing fields
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2022-01-07 15:01:37 +01:00
Lukas Wirth
f6eba28ef8 Adjust config name 2022-01-06 13:50:35 +01:00
Lukas Wirth
dd4b53402d Regenrate docs and package.json 2022-01-06 13:50:24 +01:00
Benjamin Coenen
df6fa50f92 feat(diagnostics): add new config to fill default expression
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2021-12-31 16:29:08 +01:00
Amjad Ben Hedhili
3475a30080
Update manual.adoc 2021-12-29 22:22:02 +01:00
Laurențiu Nicola
f55cca4d3b Update privacy note 2021-12-23 14:04:15 +02:00
bors[bot]
0dbbf14bd6
Merge #11042
11042: minor: clarify RA_LOG env var troubleshooting r=lnicola a=Veykril

cc https://github.com/rust-analyzer/rust-analyzer/pull/10261

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-18 20:21:29 +00:00
Lukas Wirth
dc9257682c
Fix typo 2021-12-18 21:02:03 +01:00
Laurențiu Nicola
262a698875 Prepare Code extension for bundling 2021-12-18 17:44:16 +02:00
Lukas Wirth
1cd40a408a minor: clarify RA_LOG env var troubleshooting 2021-12-17 18:08:40 +01:00
bors[bot]
6674756c07
Merge #11041
11041: minor: Fix some clippy lints r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-12-17 15:52:53 +00:00
Laurențiu Nicola
fb9529626d Spelling nits 2021-12-17 17:26:35 +02:00
Lukas Wirth
9fe0f0d1d9 Add a few default snippets for VSCode 2021-12-17 16:24:29 +01:00
Laurențiu Nicola
a68ce62f6a Add toggle to disable cache priming 2021-11-19 19:30:11 +02:00
Paul Horn
553bb7f50a
Allow clients to configure the global workspace search limit 2021-11-18 17:52:02 +01:00
Jake Heinz
520ff62f4e flip the default 2021-11-13 23:39:34 +00:00
Jake Heinz
d3d768de0d inlay hints: add the option to always show constructor inlay hints 2021-11-13 23:12:29 +00:00
mjkalyan
364f1ed5be
Update docs: include Gentoo source build
Mention the dev-util/rust-analyzer package for building from source.
2021-11-12 18:26:21 -07:00
Laurențiu Nicola
834916bad1 Show how to create ~/.local/bin 2021-11-05 19:32:55 +02:00
Jan Scheer
1bfedc3591
Amend the instruction for rustup.
The current instruction for installation via rustup are misleading.
2021-10-21 23:04:43 +02:00
Laurențiu Nicola
e43e1240a7 Document rustc source auto-discovery 2021-10-14 08:57:07 +03:00
bors[bot]
5ff992465e
Merge #10447
10447: Add enum variant references CodeLens. r=Veykril a=ericsampson



Co-authored-by: Eric Sampson <esampson@eaze.com>
2021-10-05 22:03:23 +00:00
Lukas Wirth
041cfbe0f4 Render the expansion of snippets as their docs 2021-10-05 18:11:22 +02:00
Lukas Wirth
d0c8777a44 Regen generated_config.adoc 2021-10-04 21:47:02 +02:00
Eric Sampson
99dd8066d9 need to update some generated files. 2021-10-04 02:30:46 -05:00
Laurențiu Nicola
81891f7abe Enable attribute proc macros by default 2021-09-27 18:11:31 +03:00
Carlos Menezes
8ad484b341 Add missing files 2021-09-24 14:53:11 +01:00
Terry Sun
04e1d72354 Fix title of User Manual page
Asciidoc uses the first line of a doc as the title, so you can't put
comments before the heading.
2021-09-22 21:39:21 -07:00
Wilfred Hughes
e543fe855b
Fix typescript syntax errors
Remove unwanted `:` and fix the naming of the boolean type.
2021-09-15 17:53:36 -07:00
Laurențiu Nicola
b66e506cc2 Don't spam the manual with warnings 2021-09-13 10:56:14 +03:00
Dorian Peake
a2bc57c28f
Update manual.adoc 2021-09-05 16:59:38 +01:00
Dorian Peake
aae1e97590
Add rust-project.json + cargo check info to docs
Add information about how to configure compilation errors/checks when using rust-project.json.
2021-09-05 16:32:05 +01:00
Aleksey Kladov
cff88a819f no need to reed the docs, feel free to charge ahead!
But knowing where the docs are is useful ;)
2021-09-04 20:34:17 +03:00
Aleksey Kladov
b535804e1b docs: make dev docs more discoverable
I *think* people might try to debug ra by using only the troubleshooting
section. Might make sense to point them to dev docs then!
2021-09-04 20:17:28 +03:00
unexge
3a9ba0e506 feat: join lines merges assignments 2021-08-22 21:28:39 +03:00
Ole Christian Eidheim
06da68303d
Update manual.adoc: added juCi++ section 2021-08-14 12:47:58 +02:00
Toby Fleming
cb13e4a2ca
Rust project supports proc-macro dependent crates 2021-08-01 14:43:10 -07: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
bors[bot]
2fbecccc71
Merge #9634
9634: minor update to excludeDirs doc r=lnicola a=dae

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 :-)

Co-authored-by: Damien Elmes <gpg@ankiweb.net>
Co-authored-by: Damien Elmes <dae@users.noreply.github.com>
2021-07-22 11:43:05 +00: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
Jesse Jackson
a9f4527fd3
docs: fix typo
tree -> three
2021-07-21 04:06:19 -05: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
Daniel Hofstetter
8470c020bc
Remove outdated "(not yet released)" hint
Neovim 0.5 has been released recently (see http://neovim.io/news/2021/07), hence the "(not yet released)" hint is no longer needed.
2021-07-17 16:56:26 +02:00
Aleksey Kladov
b8a6ea5ab5 feat: make join lines behavior configurable
closes #9492
2021-07-05 23:47:20 +03: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]
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
Aleksey Kladov
78668f76a0
Update docs/user/manual.adoc 2021-06-15 23:40:07 +03:00
Laurențiu Nicola
cbf53ba251 Consolidate the privacy notes 2021-06-15 20:07:59 +03:00
Kevin Svetlitski
76202234a9 Document installation via Homebrew; Add gitignore entry for asciidoctor output 2021-06-14 16:41:34 -05: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
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
mjkalyan
508d1230d8
manual.adoc: add Gentoo Linux installation method
Added installation instructions for the binary ebuild of the "latest" `rust-analyzer` in Gentoo's GURU repository.
2021-06-03 00:16:23 -06: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
bors[bot]
835cf55887
Merge #8767
8767: implement range formatting r=matklad a=euclio

Fixes #7580.

This PR implements the `textDocument/rangeFormatting` request using `rustfmt`'s `--file-lines` option.

Still needs some tests. What I want to know is how I should handle the instability of the `--file-lines` option. It's still unstable in rustfmt, so it's only available on nightly, and needs a special flag to enable. Is there a way for `rust-analyzer` to detect if it's using nightly rustfmt, or for users to opt-in?

Co-authored-by: Andy Russell <arussell123@gmail.com>
2021-05-25 12:15:48 +00:00
Laurențiu Nicola
400cf10299 Update download instructions 2021-05-24 17:57:20 +03:00
Christoph Schmatzler
9f8f7a8053 docs: fix binary installation instructions
issue #8926 removed uncompressed release artifacts. This updates the documentation to update instructions accordingly.
2021-05-24 16:38:33 +02:00
Andy Russell
a90b9a5872
implement range formatting 2021-05-23 15:50:36 -04:00
sim
fe93c114e3
docs(manual): Add rust-tools.nvim to nvim-lsp 2021-05-22 21:17:40 -07:00
Lukas Tobias Wirth
066856ab5b Update outdated auto-import documentation 2021-05-20 15:31:33 +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
alcroito
1f7d2a6c22 Add new LSP extension for workspace symbol lookup
The new extension allows filtering of workspace symbool lookup
results by search scope or search kind.

Filtering can be configured in 3 different ways:

 - The '#' or '*' markers can be added inline with the symbol lookup
   query.

   The '#' marker means symbols should be looked up in the current
   workspace and any dependencies. If not specified, only current
   workspace is considered.

   The '*' marker means all kinds of symbols should be looked up
   (types, functions, etc). If not specified, only type symbols are
   returned.

 - Each LSP request can take an optional search_scope or search_kind
   argument query parameter.

 - Finally there are 2 global config options that can be set for all
   requests served by the active RA instance.

Add support for setting the global config options to the VSCode
extension.
The extension does not use the per-request way, but it's useful for
other IDEs.

The latest version of VSCode filters out the inline markers, so
currently the only reasonable way to use the new functionality is
via the global config.
2021-05-18 00:40:30 +02:00
Aleksey Kladov
41510f437e minor: adjust config name 2021-05-17 18:37:06 +03:00
bors[bot]
f9d4a9eaee
Merge #8795
8795: Allow semantic tokens for strings to be disabled r=matklad a=djrenren

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7111

Pretty straightforward change, but open to any suggestions if there's a more recommended testing strategy than what I went with.

Co-authored-by: John Renner <john@jrenner.net>
2021-05-17 14:41:56 +00:00
Aleksey Kladov
e22b21e1bb minor: and one more recipe for ace 2021-05-17 11:22:59 +03:00
John Renner
7ae3967e57 Formatting and docs 2021-05-10 13:34:09 -07:00
Lukas Wirth
59c2efe4b6 Update docs 2021-05-10 22:10:12 +02:00
Aleksey Kladov
078c8f7488 fix: fix manual rendering
We add `// see the other repo` comments before headers (==). This one isn't a header, but a closing of the example block.
2021-05-10 15:43:01 +03:00
Aleksey Kladov
ca0aef2f3f feat: make troubleshooting a top-level section 2021-05-08 13:48:25 +03:00
Aleksey Kladov
a191b24fec feat: friendlier trouble shooting guide 2021-05-08 13:18:25 +03:00
Méven Car
b39578d816 docs: Add Kate installation section 2021-05-08 07:33:24 +02:00
Aleksey Kladov
0fce38b138 fix: direct people to the right repository 2021-05-08 00:26:29 +03:00
bors[bot]
a2349366b5
Merge #8482
8482:  Mention how to customize unsafe operation styles r=matklad a=danielzfranklin

I was confused about how to do this, so I filed #8474. I apologize for initially filing this incorrectly and spamming people.

Co-authored-by: Daniel Franklin <daniel@danielzfranklin.org>
2021-05-03 16:57:51 +00:00
Daniel Franklin
13e9fb73f9
Merge with semantic style section 2021-05-03 17:54:09 +01:00
Aleksey Kladov
5c1a901035 internal: ensure that client and server-side configs are not mixed up
https://github.com/rust-lang/rust/issues/84647 would help big time here.
2021-04-28 13:13:30 +03:00
Jorge Mederos Alvarado
c4dba4077f Add config options 2021-04-26 20:29:54 -04:00
James Leitch
72718bc2d7 Code review feedback. 2021-04-21 15:10:53 -07:00
James Leitch
9fcad82980 Diagnostic Remap Path Prefixes added. 2021-04-21 15:10:53 -07:00
Aleksey Kladov
0ce591d33d minor: fix ugly line wrapping in the rendered manual 2021-04-20 10:44:06 +03:00
bors[bot]
9beed98f2a
Merge #8432
8432: decl_check: consider outer scopes' allows r=jonas-schievink a=lf-

Fix #8417. Also makes it less noisy about no_mangle annotated stuff the
user can do nothing about.

Note: this still is broken with bitfield! macros. A repro in an ignore
test is included here. I believe this bug is elsewhere, and I don't
think I can work around it here.

I would like help filing the remaining bug, as it does actually affect
users, but I don't know how to describe the behaviour (or even if it
is unintended).

Co-authored-by: Jade <software@lfcode.ca>
2021-04-13 12:02:26 +00:00
Daniel Franklin
23429a08d5
Mention how to customize unsafe operation styles
I was confused about how to do this, so I filed [an issue][issue].

[issue]: rust-analyzer/rust-analyzer#8474
2021-04-12 16:18:04 +01:00
Aleksey Kladov
186c5c47cb feat: avoid checking the whole project during initial loading 2021-04-12 15:29:31 +03:00
Jade
4529f1be81 decl_check: consider outer scopes' allows
Fix #8417. Also makes it less noisy about no_mangle annotated stuff the
user can do nothing about.

Note: this still is broken with bitfield! macros. A repro in an ignore
test is included here. I believe this bug is elsewhere, and I don't
think I can work around it here.
2021-04-08 14:43:19 -07:00
PSeitz
14a1f0ce46
remove enumeration 2021-03-29 22:09:04 +02:00
PSeitz
3153a80261
update vim ycm installation instruction 2021-03-29 21:31:29 +02:00
Laurențiu Nicola
ea8159893a Mention the rustup version in the manual 2021-03-27 12:39:16 +02:00
Thiébaud Weksteen
1c68954a7d Fix manual description for rust_project.json 2021-03-25 10:02:16 +01:00
Kirill Bulatov
5e83a56dfb Bump the default hint length 2021-03-23 19:43:55 +02:00
Kirill Bulatov
f1e1a2c0a7 Limit the hints size by default 2021-03-23 19:04:48 +02:00
Aleksey Kladov
2469af3017
Apply suggestions from code review
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com>
2021-03-22 13:56:13 +03:00
Aleksey Kladov
2b427fa3dd
Update docs/user/manual.adoc
Co-authored-by: bjorn3 <bjorn3@users.noreply.github.com>
2021-03-22 13:55:16 +03:00
Aleksey Kladov
63e083122c Document our security stance
changelog: feature
2021-03-22 13:53:00 +03:00
Aleksey Kladov
670964d802
Update docs/user/manual.adoc 2021-03-18 18:57:44 +03:00
Mickael Istria
c0425cbdbd Update info about Eclipse Corrosion 2021-03-18 16:22:54 +01:00
Aleksey Kladov
469b739c28 Enable proc-macros by default 2021-03-15 18:19:08 +03:00
Lukas Wirth
ebf4448f78 Fix remaining references to cargo xtask codegen 2021-03-12 15:10:33 +01:00
Aleksey Kladov
37b7b56821 Make code less surprising
Theres no reason to have literal `\n\n` in the source code
2021-03-09 14:47:42 +03:00
Joshua Nelson
c7b0914b3f Add more documentation for rustc_private 2021-03-08 16:56:42 -05:00
bors[bot]
d57c9f7980
Merge #7891
7891: Improve handling of rustc_private r=matklad a=DJMcNab

This PR changes how `rust-analyzer` handles `rustc_private`. In particular, packages now must opt-in to using `rustc_private` in `Cargo.toml`, by adding:
```toml
[package.metadata.rust-analyzer]
rustc_private=true
```

This means that depending on crates which also use `rustc_private` will be significantly improved, since their dependencies on the `rustc_private` crates will be resolved properly.

A similar approach could be used in #6714 to allow annotating that your package uses the `test` crate, although I have not yet handled that in this PR.

Additionally, we now only index the crates which are transitive dependencies of `rustc_driver` in the `rustcSource` directory. This should not cause any change in behaviour when using `rustcSource: "discover"`, as the source used then will only be a partial clone. However, if `rustcSource` pointing at a local checkout of rustc, this should significantly improve the memory usage and lower indexing time. This is because we avoids indexing all crates in `src/tools/`, which includes `rust-analyzer` itself.

Furthermore, we also prefer named dependencies over dependencies from `rustcSource`. This ensures that feature resolution for crates which are depended on by both `rustc` and your crate uses the correct set for analysing your crate.

See also [introductory zulip stream](https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Fixed.20crate.20graphs.20and.20optional.20builtin.20crates/near/229086673)

I have tested this in [priroda](https://github.com/oli-obk/priroda/), and it provides a significant improvement to the development experience (once I give `miri` the required data in `Cargo.toml`)

Todo:
- [ ] Documentation

This is ready to review, and I will add documentation if this would be accepted (or if I get time to do so anyway)

Co-authored-by: Daniel McNab <36049421+DJMcNab@users.noreply.github.com>
2021-03-08 16:51:20 +00:00
Daniel McNab
20007fd3a8 Document rustc_private in metadata 2021-03-08 16:47:40 +00:00
Daniel McNab
bbecea03fd Revert "Support disabling rustc build scripts"
This reverts commit ddce6bb282.
2021-03-08 16:37:52 +00:00
Aleksey Kladov
c7b5d6be4c Make code completion "just work" in more cases 2021-03-08 14:57:56 +03:00
Daniel McNab
ddce6bb282 Support disabling rustc build scripts 2021-03-08 09:05:19 +00:00
bors[bot]
d54e1157b6
Merge #7889
7889: Make group imports configurable r=lnicola a=asv1



Co-authored-by: asv <asv7c2@gmail.com>
2021-03-07 08:24:02 +00:00
asv
96fc01a30b Make group imports configurable 2021-03-07 10:15:17 +02:00
Florian Diebold
d6094c70fb Add a line about code action commands to the CoC section of the docs 2021-03-06 11:35:04 +01:00
Aleksey Kladov
3d80e0a154 Migrate to user-centric config name for cargo check stuff 2021-03-04 15:38:53 +03:00
boxdot
9b78a6f6d2
Fix typo. 2021-02-24 11:56:48 +01:00
Benjamin Bouvier
4a6e602c94 Allow automatically detect the rustc-src directory (fixes #3517).
If the configured rustcSource is set to "discover", try to automatically
detect a source from the sysroot rustc directory.
2021-02-13 18:20:46 +01:00
Aleksey Kladov
ad7b0f670a Add emacs guide 2021-02-08 19:08:02 +03:00
bors[bot]
433ad23988
Merge #7592
7592: [Doc] Note about Eclipse IDE support r=lnicola a=mickaelistria



Co-authored-by: Mickael Istria <mistria@redhat.com>
2021-02-08 09:16:01 +00:00
Mickael Istria
7e0854ec57 [Doc] Note about Eclipse IDE support 2021-02-08 09:52:46 +01:00
Ilya Bobyr
9ffe4ca26c Vim docs: vim-lsp with initial configuration.
`vim-lsp` is another popular LSP client for Vim.  And, as there is no
`rust-analyzer` specific UI, it is non-trivial to figure out how the
initial configuration is performed.
2021-02-07 20:24:56 -08:00
Ilya Bobyr
6781692732 Explain how initial configuration is sent over LSP. 2021-02-07 20:24:56 -08:00
Laurențiu Nicola
84c324b3dd Improve nvim-lsp setup instructions 2021-02-01 20:20:15 +02:00
Aleksey Kladov
2870e70163 Add config option to ignore directories 2021-01-26 16:45:54 +03:00
Aleksey Kladov
c04b561e7e Remove the need to manually sync config in package.json 2021-01-26 16:22:24 +03:00
vsrs
3618c4e0d3 Add References code lens.
For Struct, Enum, Union and Trait symbols.
2021-01-23 16:56:20 +03:00
bors[bot]
b821264f86
Merge #7195
7195: Update remaining serverPath references r=lnicola a=lnicola

Fixes https://github.com/rust-analyzer/rust-analyzer/pull/7156#issuecomment-755487667

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-01-07 15:30:23 +00:00
Laurențiu Nicola
56497ce925 Update remaining serverPath references 2021-01-07 17:06:11 +02:00
Aleksey Kladov
037caec62c Use american spelling for config
As per

171c3c08fe/docs/dev/style.md (variable-naming)

Also implement config aliasing, for pain-free settings migrations in the future
2021-01-07 15:07:19 +03:00
Aleksey Kladov
f7a15b5cd1 More maintainable config
Rather than eagerly converting JSON, we losslessly keep it as is, and
change the shape of user-submitted data at the last moment.

This also allows us to remove a bunch of wrong Defaults
2021-01-06 15:39:28 +03:00
Aleksey Kladov
d7741d1610 Allow #anchor linking of config options 2021-01-05 13:09:06 +03:00
bors[bot]
5b86ff3e91
Merge #7113
7113: Manual updates r=matklad a=tekul

Add some details on how to build the manual and some clarification on how to deal with "proc macro2 warnings.

For context, this arose from [this question](https://users.rust-lang.org/t/how-to-disable-rust-analyzer-proc-macro-warnings-in-neovim/53150) on users.rust-lang.org.

Co-authored-by: Luke Taylor <tekul.hs@gmail.com>
2021-01-03 18:22:07 +00:00
Mara Bos
4833972067 Add support for Rust 2021. 2021-01-01 17:22:23 +01:00
Luke Taylor
6168a6f1ca Expand contributing "tip" in manual.adoc
- Add link to asciidoc website
- Explain how to create the generated adoc files from the source code
- How to run asciidoctor to generate the manual
2020-12-31 22:23:06 +00:00
Heyward Fann
b1ec22c879
Update manual.adoc 2020-12-24 11:38:01 +08:00
Aleksey Kladov
7c07bb6381 Document, how to view config in effect 2020-12-23 10:47:05 +03:00
Rüdiger Herrmann
9f070531a6 Clean up descriptions for settings
Use two consecutive newlines (`\n\n`) to actually continue text on a
new line.

Use proper markup to reference related settings.

Consistently format references to files, editor commands, command line
arguments, files, etc. as `code`.

Fix typos, add missing full-stops, add missing default values.
2020-12-22 14:51:17 +01:00
Laurențiu Nicola
6fbe22bfbb Split lines between sentences 2020-12-20 19:31:08 +02:00
Laurențiu Nicola
0ecb224d75 Document the version requirements for building from source 2020-12-20 17:10:54 +02:00
Aleksey Kladov
804ae284b9 Link config source 2020-12-14 15:06:24 +03:00
Christian Authmann
78d43eb1e8 Docs: Explain manual installation in VS Code 2020-12-13 15:21:11 +01:00
Aleksey Kladov
e179ed6f53 Use natural trait ordering in derive completion
derive(Clone, Copy) reads better than derive(Copy, Clone).

However, we preserve the reverse ordering in the lookup text for
sorting purposes. That way, it's convenient to type just `Ord` to
derive everything.
2020-12-11 15:45:53 +03:00
Laurențiu Nicola
3ecdb778c2 Improve docs for building from source 2020-12-10 19:31:46 +02:00
Josh Stone
bb412f314d
Fix a typo in manual.adoc 2020-12-09 11:25:05 -08:00
Aleksey Kladov
0890512e1c Include config into the manual 2020-12-09 15:31:10 +03:00
Jonas Schievink
d171838d63 More accurately place proc-macro diagnostic 2020-11-27 16:29:40 +01:00
Jonas Schievink
0432aa0ed7 Publish diagnostics for macro expansion errors 2020-11-27 13:50:22 +01:00
Dave Lage
e6419350de
docs: Update Neovim nvim-lspconfig repository link 2020-10-29 11:08:12 -04:00
Jonas Schievink
5350c15e27 Fix name of InactiveCode diagnostic 2020-10-23 19:31:11 +02:00
Jonas Schievink
93dc6f511b Diagnose #[cfg]s in bodies 2020-10-23 19:27:04 +02:00
Florian Diebold
b59a0dbf6a Add generated diagnostic docs to the manual 2020-10-22 19:42:01 +02:00
Benjamin Coenen
aa031e91f4 add completions for clippy lint in attributes
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-10-20 21:29:31 +02:00
Aleksey Kladov
f753c3ecd2 Support Display name in project.json 2020-10-20 17:13:15 +02:00
Aleksey Kladov
a261c7c539 Document logging of project model 2020-10-19 16:04:22 +02:00
Laurențiu Nicola
b19013feaa Update GNOME Builder docs 2020-10-15 20:00:09 +03:00
Adrian Stanciu
f7641b2e35
Update manual.adoc 2020-10-07 00:44:32 +03:00
Aleksey Kladov
af8063fe37 Extend **Status** command to also show dep info for the file
This should help with troubleshooting wrong project configuration
2020-09-29 22:13:23 +02:00
Masaki Hara
5cca4c9214
VS Code + WSL: describe binary location
It looks like VS Code server chooses a different location for `globalStorage`.
2020-09-21 23:07:54 +09:00
Jonas Schievink
888cb378b9 docs: suggest disabling the official extension 2020-09-18 18:26:58 +02:00
bors[bot]
d58a3a277a
Merge #5885
5885: Make inlay hints colors more configurable r=matklad a=Veetaha

**[BREAKING CHANGE]**

Tackles https://github.com/rust-analyzer/rust-analyzer/issues/5337#issuecomment-680018601 and generally related to #5337.

Added `foreground/background` color configurations with optional more specific overrides `foreground.(type|parameter|chaining)Hints`.

One problem I see is that the config keys are long and don't fit into the on-hover hints in the `settings.json` file entirely...

<details>
<summary>Demo</summary>

![demo](https://user-images.githubusercontent.com/36276403/91238334-77fc3b00-e745-11ea-836b-2822015ece98.gif)

</details>

Co-authored-by: Veetaha <veetaha2@gmail.com>
2020-08-26 13:07:06 +00:00
Aleksey Kladov
a53c6f6fee Allow redirecting logs to a specific file
There's a surprising lack of crates which are like env_logger, but
also allow writing to a file. Let's write our own then!
2020-08-26 13:20:46 +02:00
Veetaha
5b9a882edc Make inlay hints colors more configurable 2020-08-26 02:53:42 +03:00
Aleksey Kladov
189521a4db Add sysroot shortcut to rust-project.json 2020-08-25 19:41:56 +02:00
Aleksey Kladov
3a72afed8c Improve logging 2020-08-25 11:43:21 +02:00