Eric Sampson
a0bb31587e
Add enum variant references CodeLens.
2021-10-04 02:18:31 -05:00
Aleksey Kladov
12103b16de
internal: untangle usages of ReferenceCategory somewhat
...
Not everything that can be read or write is a reference, let's try to
use more precise types.
2021-10-02 13:02:06 +03:00
Nixon Enraght-Moony
720a3da4ac
Give rustfmt spawn error context.
2021-09-24 17:51:47 +01:00
Dawer
0ff271d38f
fix completion handler trying to seek outside of character boundaries.
...
With this patch, in these examples
```rust
fn main() {
"⊞$0";
}
```
```rust
struct S {
д$0 u8
}
```
entering ':' character in `$0` places shouldn't cause panics.
2021-09-17 23:04:20 +05:00
Aleksey Kladov
2d2c4e7c22
internal: deduplicate
2021-09-04 16:56:23 +03:00
Aleksey Kladov
33199b7e43
fix: don't panic if the client sends invalid request
2021-09-04 12:27:27 +03:00
Jonas Schievink
bdba35cc93
fix: multi-token mapping aware find references
2021-09-01 19:19:16 +02:00
bors[bot]
b3452dd379
Merge #10079
...
10079: internal: make upstream bug less annoying r=matklad a=matklad
bors r+
🤖
Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com >
2021-08-30 07:39:34 +00:00
Aleksey Kladov
3a055a6b1f
internal: make upstream bug less annoying
2021-08-30 10:32:59 +03:00
Dezhi Wu
ba0947dded
switch log crate to tracing
2021-08-30 15:11:42 +08:00
Aleksey Kladov
1660820e51
internal: use idiomatic form of assertions
...
Ideally, we should just return an InvalidParameter dialog here, but that
shows error message to the end user, and we generally avoid that
2021-08-24 14:09:34 +03:00
André Oliveira
11bbaecca0
Formatting issues
2021-08-10 13:43:57 +00:00
André Oliveira
b29508949d
Remove debug logs
2021-08-10 13:43:57 +00:00
André Oliveira
8a563e4a46
Use local node_modules to allow the graph to load offline
...
- Fix some warnings
2021-08-10 13:43:08 +00:00
André Oliveira
f4f68e62c2
Use d3-graphviz for rendering crates graph on the extension side
2021-08-10 13:40:49 +00:00
Aleksey Kladov
ce8400bbfd
internal: drop latest requests tracking
...
From the dawn of time, when dinosaurs roamed the and we didn't have
hierarchical profiling, there was the `latest_requests` infra we used to
track the time of ten last requests.
Today, no one is actually using it and, what's more, it itself became
pretty useless -- LSP grew way more chatty, and 10 requests don't really
paint any kind of picture.
Personally, it's been years since I last looked at latest requests in
the status output.
So, let's remove a tiny bit of state from the big ball of complexity
that is `GlobalState` and `main_loop`!
2021-08-09 18:56:19 +03: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
bors[bot]
068ede0991
Merge #9693
...
9693: feat: Add the Hover Range capability which enables showing the type of an expression r=matklad a=alexfertel
Closes https://github.com/rust-analyzer/rust-analyzer/issues/389
This PR extends the `textDocument/hover` method to allow getting the type of an expression. It looks like this:

Edit: One thing I noticed is that when hovering a selection that includes a macro it doesn't work, so maybe this would need a follow-up issue discussing what problem that may have.
(PS: What a great project! I am learning a lot! 🚀 )
Co-authored-by: Alexander Gonzalez <alexfertel97@gmail.com >
Co-authored-by: Alexander González <alexfertel97@gmail.com >
2021-07-28 11:21:33 +00:00
Aleksey Kladov
ea9f6920fb
minor: simplify
2021-07-28 12:35:21 +03:00
Alexander Gonzalez
04e3869adb
refactor: Reuse the from_proto call in handle_hover
2021-07-27 18:31:21 -04:00
Alexander Gonzalez
41943f2328
refactor: Apply PR suggestions
2021-07-27 18:31:21 -04:00
Alexander Gonzalez
1a0a5da1a4
refactor: Make handle_hover handle ranges too
2021-07-27 18:29:22 -04:00
Alexander Gonzalez
79860808cb
chore: Remove unnecessary log
2021-07-27 18:29:22 -04:00
Alexander Gonzalez
18644720eb
feat: Completed the client side implementation of rust-analyzer/hoverRange
2021-07-27 18:29:22 -04:00
Alexander Gonzalez
8ca3bb8fcd
feat: Add the hover_range capability
2021-07-27 18:29:22 -04:00
Alexander Gonzalez
20c64cc0e6
feat: Extend the server with the hover_range capability
2021-07-27 18:29:22 -04:00
Kevin DeLorey
b75e0e7bb1
Initial commit of highlight related configuration w/ implementation.
2021-07-22 19:35:47 -06:00
Laurențiu Nicola
efcc487dff
Fix a couple of clippy nits
2021-07-22 09:03:54 +03:00
Aleksey Kladov
5c26523e94
drop unused fields
2021-07-11 13:51:52 +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
0db4f3f6a4
internal: ensure consistent passing for config params
...
We pass "context" parametes first, so configs should be on the left.
"Bigger" context wins, so configs goes after db.
2021-07-06 00:00:39 +03:00
Aleksey Kladov
b8a6ea5ab5
feat: make join lines behavior configurable
...
closes #9492
2021-07-05 23:47:20 +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
Jonas Schievink
5f13fb9db9
Add "View Crate Graph (Full)"
2021-07-02 00:10:33 +02:00
bors[bot]
11b9233fc4
Merge #9269
...
9269: Recreate status page r=lnicola a=Milo123459
I'm working on redesigning the status page.
Co-authored-by: Milo <50248166+Milo123459@users.noreply.github.com >
2021-06-29 19:53:19 +00:00
bors[bot]
264716e827
Merge #9375
...
9375: feat: Highlight exit and yield points r=Veykril a=Veykril


Fixes #4691
Fixes #9365
Co-authored-by: Lukas Wirth <lukastw97@gmail.com >
2021-06-24 15:23:25 +00:00
Lukas Wirth
066bc4f3a4
Simplify
2021-06-24 01:32:56 +02:00
Lukas Wirth
37d417868e
move goto_declaration fall back into handlers
2021-06-24 00:26:08 +02:00
Lukas Wirth
14b66bb458
Rename 'document_highlight' to 'highlight_related'
2021-06-23 15:13:48 +02:00
Lukas Wirth
b26a8ecca1
Move document highlighting computation from rust-analyzer to ide
2021-06-23 15:02:49 +02:00
Lukas Wirth
5a74e93c33
Implement goto_declaration support
2021-06-22 20:49:07 +02:00
Lukas Wirth
99c95b8fa1
Split hover actions config into its own config struct
2021-06-21 21:47:54 +02:00
Milo
044e21ae08
remove num_format
2021-06-19 10:14:15 +01:00
Milo
d8209e6378
fmt
2021-06-19 08:12:58 +01:00
Milo
664cc8c754
use num_format
2021-06-19 08:12:46 +01:00
Milo
7aaadf929d
make workspaces look better
2021-06-18 23:20:30 +01:00
Milo
7d502c7f08
Recreate PR.
2021-06-18 19:22:03 +01:00
Lukas Wirth
a93d166f0f
Make documentation on hover configurable
2021-06-14 15:25:10 +02:00