Laurențiu Nicola
620411df80
Mark chaining hints as types, since that's what they are
2022-03-16 07:46:09 +02:00
Lukas Wirth
21af9ba4f0
minor: Pad type inlay hints if no colons are requested
2022-03-12 14:08:39 +01:00
Lukas Wirth
119ba82e4b
minor: add missing definitions of lsp_ext::InlayHintLabel
2022-03-12 01:08:33 +01:00
Lukas Wirth
62265ee9cb
fix: Allow configuration of colons in inlay-hints
2022-03-11 21:15:36 +01:00
Laurențiu Nicola
4a6ee4517a
Add back colons around inlay hints
2022-03-08 12:01:02 +02:00
Laurențiu Nicola
8e3057d0a7
Improve inlay hint padding
2022-03-07 19:18:36 +02:00
bors[bot]
49646b71d4
Merge #11445
...
11445: Upstream inlay hints r=lnicola a=lnicola
Closes https://github.com/rust-analyzer/rust-analyzer/issues/2797
Closes https://github.com/rust-analyzer/rust-analyzer/issues/3394 (since now resolve the hints for the range given only, not for the whole document. We don't actually resolve anything due to [hard requirement](https://github.com/rust-analyzer/rust-analyzer/pull/11445#issuecomment-1035227434 ) on label being immutable. Any further heavy actions could go to the `resolve` method that's now available via the official Code API for hints)
Based on `@SomeoneToIgnore's` branch, with a couple of updates:
- I squashed, more or less successfully, the commits on that branch
- downloading the `.d.ts` no longer works, but you can get it manually from https://raw.githubusercontent.com/microsoft/vscode/release/1.64/src/vscode-dts/vscode.proposed.inlayHints.d.ts
- you might need to pass `--enable-proposed-api matklad.rust-analyzer`
- if I'm reading the definition right, `InlayHintKind` needs to be serialized as a number, not string
- this doesn't work anyway -- the client-side gets the hints, but they don't display
Co-authored-by: Kirill Bulatov <mail4score@gmail.com >
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro >
2022-03-07 16:49:12 +00:00
Laurențiu Nicola
26d2e88b04
Fix parameter hint position
2022-03-07 15:24:54 +02:00
Lukas Wirth
5c0aee013e
Fix highlighting of Self
2022-03-05 23:34:37 +01:00
Kirill Bulatov
5de5e450cb
Remove debugging leftovers
2022-03-04 08:08:59 +02:00
Kirill Bulatov
9c0c199e96
Clean up the redundant hints code and config
2022-03-04 07:45:51 +02:00
Laurențiu Nicola
0b69717ab6
Fixes
2022-03-04 07:45:51 +02:00
Laurențiu Nicola
5a49dbd2e0
Update inlay hints for upstream
2022-03-04 07:45:51 +02:00
Kirill Bulatov
55371be807
Add experimental VSCode api
2022-03-04 07:45:51 +02:00
Lukas Wirth
3a525c831f
internal: Handle macro calls better in highlighting
2022-01-02 19:10:10 +01:00
Lukas Wirth
e4f2d0e3a8
Introduce SymbolKind::Derive
2021-12-04 18:18:09 +01:00
Lukas Wirth
642c1eb720
Introduce SymbolKind::Attribute
2021-12-04 18:01:22 +01:00
Lukas Wirth
d174158abc
Rename things: Tool -> ToolModule
2021-12-03 17:15:19 +01:00
Lukas Wirth
d1677f3286
Remove syntax highlighting hack for builtin attrs
2021-12-03 16:54:34 +01:00
vsrs
2f862cd6fe
Fix Plaintext textDocument/hover
2021-10-29 18:23:47 +03:00
Lukas Wirth
3018ffd85e
Refactor ide handling for paths in derive inputs
2021-10-28 16:47:19 +02:00
Lukas Wirth
0468b11de7
Remove CompletionKind in favor of CompletionItemKind
2021-10-27 17:23:43 +02:00
Laurențiu Nicola
edb03ad6f1
Pull in new lsp-types for VS compat
2021-10-18 12:03:49 +03:00
Alex Muscar
41856e2682
fix: make signature info response conform to spec
...
This addreses
https://github.com/rust-analyzer/rust-analyzer/issues/10464 .
This patch picks up `lsp-types` 0.90.1, which serialises the
`SignatureInformation` and `ParameterInformation` with the right casing.
It also adds `activeSignature` field as part of the top-level signature
response. It keeps `activeParameter` at the top-level for backwards
compatibility.
2021-10-11 20:42:16 +01:00
Lukas Wirth
454ecd167c
Make multiple import edits work for completions
2021-10-04 21:44:33 +02:00
Aleksey Kladov
46eb03d99a
internal: use naming that matches intended use-case
2021-10-02 12:18:18 +03:00
lhvy
dbb02370a4
Add semantic token modifier for crate root
2021-10-01 20:52:13 +10:00
lhvy
f713cfb818
Remove unneeded semantic token definition
2021-10-01 01:55:29 +10:00
lhvy
2b3baa8503
Give defaultLibrary semantic token modifier to items from standard library
2021-10-01 01:19:24 +10:00
Aleksey Kladov
2d2c4e7c22
internal: deduplicate
2021-09-04 16:56:23 +03:00
Jake Heinz
2baef17bb1
semantic highlighting: add reference hlmod
2021-07-31 04:42:47 +00: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
Aleksey Kladov
8d8c26e6f5
internal: a bit more of cwd safety for flycheck
2021-07-17 18:13:35 +03:00
Aleksey Kladov
a04775060c
simplify
2021-07-11 13:49:38 +03:00
Aleksey Kladov
ddce16a126
drop unused field
2021-07-11 13:48:26 +03:00
Aleksey Kladov
beb81a40eb
simplify
2021-07-11 13:45:58 +03:00
Aleksey Kladov
fa6f78c95b
better name
2021-07-11 13:43:43 +03:00
Aleksey Kladov
0dc186f612
Let the client care about presentation
2021-07-11 13:42:19 +03:00
Aleksey Kladov
148e11aa9e
prepare to move run/debug splitting to handlers
2021-07-11 13:34:22 +03:00
bors[bot]
325140a165
Merge #9449
...
9449: feat: Emit test names in `Run test` runnables if they come from a macro expansion r=matklad a=Veykril
Fixes #8964
Before:

After:

Basically when a macro emits more than one test we name the test functions/modules name in the runnable instead to not emit a bunch of equally named `Run Test` annotations which don't really tell much.
Note that the `Run fibonacci_test Tests` line is below the attributes due to the fact that the function name span is being reused for the generated module in rstest's expansion.
Co-authored-by: Lukas Wirth <lukastw97@gmail.com >
2021-07-11 09:37:33 +00:00
Lukas Wirth
f1b3446844
Emit test name in Run test runnables if it comes from a macro expansion
2021-07-09 14:35:42 +02:00
Aleksey Kladov
fbb9d69758
feat: always prefer postfix snippets if there's exact textual match
...
Note that, while we don't currently have a fuzzy-matching score, it
makes sense to special-case postfix templates -- it's very annoying when
`.not()` gets sorted before `.not`. We might want to move this infra to
fuzzy matching, once we have that!
2021-07-04 16:50:02 +03:00
Aleksey Kladov
6e9780c005
internal: make CompletionItem and SourceChange consistent
...
Before this PR, SourceChange used a bool and CompletionItem used an enum
to signify if edit is a snippet. It makes sense to use the same pattern
in both cases. `bool` feels simpler, as there's only one consumer of
this API, and all producers are encapsulated anyway (we check the
capability at the production site).
2021-07-04 15:44:03 +03:00
Aleksey Kladov
f34762abb7
internal: better factoring for to_proto::completion
...
One source completion can produce up to two lsp completions.
Additionally, `preselct` and `sort_text` are global properties of the
whole set of completions, so the right granularity here is to convert
many completions.
As a side-benefit, we no loger allocate intermediate vec.
2021-07-04 14:08:33 +03:00
Aleksey Kladov
3be9ebe2c3
minor: style
2021-07-04 12:48:29 +03:00
Lukas Wirth
9a1b9b3c78
Resolve attribute paths in attribute highlighting
2021-06-28 21:53:17 +02:00
Aramis Razzaghipour
3e7472f76c
Add public semantic token modifier for public items
2021-06-23 09:40:04 +10:00
Lukas Wirth
2ee090faaf
Allow to disable import insertion on single path glob imports
2021-06-18 23:11:56 +02:00
Maan2003
c9b4ac5be4
clippy::redudant_borrow
2021-06-13 09:24:16 +05:30
bors[bot]
e6ec860363
Merge #9039
...
9039: feat: Complete fields and methods with `self.` prefixed when inside methods r=matklad a=Veykril

Closes #7173
Co-authored-by: Lukas Wirth <lukastw97@gmail.com >
2021-05-31 13:21:31 +00:00