Aleksey Kladov
ecd1c11f9e
cleanup: match over unwrap
2020-12-08 16:17:46 +03:00
Kirill Bulatov
cbd3717f2c
Better config name
2020-12-08 14:27:18 +02:00
Kirill Bulatov
3183ff3a7b
Disable the completion for no corresponding client resolve capabilities
2020-12-08 01:07:20 +02:00
Kirill Bulatov
19cfa5802e
Simplify
2020-12-07 23:41:08 +02:00
Kirill Bulatov
6badf705b3
Check lsp completions' edits for disjointness
2020-12-07 23:41:08 +02:00
Kirill Bulatov
077c1c3c1f
Less panic, more tests
2020-12-07 23:41:08 +02:00
Kirill Bulatov
deda74edd8
Use stateless completion resolve
2020-12-07 23:41:08 +02:00
Kirill Bulatov
93bc009a59
Remove the state
2020-12-07 23:41:08 +02:00
Kirill Bulatov
74c3bbacc9
Make completion resolve async
2020-12-07 23:41:08 +02:00
Kirill Bulatov
f6d2540df0
Simplify import edit calculation
2020-12-07 23:41:08 +02:00
Kirill Bulatov
68a747efe0
Remove redundant code
2020-12-07 23:41:08 +02:00
Kirill Bulatov
50e06ee95a
Refactor the code
2020-12-07 23:41:08 +02:00
Kirill Bulatov
d9bd1f171d
Add eager resolve capability
2020-12-07 23:41:08 +02:00
Kirill Bulatov
2a7be4afb0
Better support client completion resolve caps
2020-12-07 23:41:08 +02:00
Kirill Bulatov
47464e556c
Properly fill client completion resolve capabilities data
2020-12-07 23:41:08 +02:00
Kirill Bulatov
9a4daffe16
Resolve import inserts better
2020-12-07 23:41:08 +02:00
Kirill Bulatov
a539267c3b
Remove unnecessary leftovers
2020-12-07 23:41:08 +02:00
Kirill Bulatov
6d2d279389
Working resolve completion imports prototype
2020-12-07 23:41:08 +02:00
Kirill Bulatov
48acd7d455
Draft the new lsp handler
2020-12-07 23:41:08 +02:00
Jonas Schievink
2b2318e695
Remove dummy ProcMacroClient in favor of Option
2020-12-07 17:16:50 +01:00
Jonas Schievink
45b8b3d57f
Apply suggestions from code review
...
Co-authored-by: Laurențiu Nicola <lnicola@users.noreply.github.com >
2020-12-06 14:23:55 +01:00
Jonas Schievink
2a6c246184
Update expect tests
2020-12-06 01:39:52 +01:00
Jonas Schievink
9d96a6d7af
Emit additional diagnostics for hints/help/etc
2020-12-06 01:24:37 +01:00
bors[bot]
2756abb167
Merge #6721
...
6721: Use METHOD semantic token type r=kjeremy a=lnicola
Closes #6685
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro >
2020-12-04 18:46:44 +00:00
Jonas Schievink
e45ab7e0ec
Fix diagnostics subcommand, look at all modules
2020-12-04 19:37:37 +01:00
Laurențiu Nicola
72f013b3b9
Use METHOD semantic token type
2020-12-04 18:27:10 +02:00
Jonas Schievink
6da651f5da
Don't prime caches when just opening a file
2020-12-02 20:18:28 +01:00
kjeremy
e4ffd70c91
Fix OptionalVersionedTextDocumentIdentifier type
...
Fixes #6654
2020-12-01 08:33:21 -05:00
Florian Diebold
21d256de72
Align default importMergeBehaviour with VSCode
2020-11-29 16:43:46 +01:00
bors[bot]
b7ece77af4
Merge #6650
...
6650: Make completion and assists module independent r=matklad a=SomeoneToIgnore
A follow-up of https://github.com/rust-analyzer/rust-analyzer/pull/6553#discussion_r524402907
Move the common code for both assists and completion modules into a separate crate.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com >
2020-11-28 14:33:57 +00:00
Kirill Bulatov
3f612d37c6
Move the helpers into ide_db
2020-11-28 16:30:39 +02:00
Jonas Schievink
f52abbe62d
Coalesce flycheck events
2020-11-27 22:52:22 +01:00
Jonas Schievink
e49ba0d1df
Downgrade "failed to load" error to warning
2020-11-27 18:35:22 +01:00
Kirill Bulatov
f4ae3650d8
Extract the import code into the shared module
2020-11-27 18:28:41 +02:00
Laurențiu Nicola
a5477d7f29
Remove unused import
2020-11-26 19:25:59 +02:00
Jonas Schievink
9ed883f373
Publish diagnostics on file open
...
Diagnostics are sometimes only showing up when typing.
This should fix that.
2020-11-26 13:33:47 +01:00
Kirill Bulatov
4c95c6e25d
Gate autoimports begind experimental completions flag
2020-11-25 00:30:28 +02:00
kjeremy
e981485b76
New lsp-types to fix versioning
...
Fixes #6603
2020-11-24 08:52:24 -05:00
Matt Jibson
117c793e80
Don't assume DidChangeTextDocument paths exist
...
Fixes #5933
2020-11-23 16:35:34 -07:00
Lukas Wirth
91a1a83601
Fill code_description for rust_analyzer diagnostics
2020-11-18 08:54:52 +01:00
Lukas Wirth
56a0021e61
update diagnostics test_data with code_description changes
2020-11-18 08:50:27 +01:00
Lukas Wirth
863fdcfa24
Link clippy lint codes in diagnostics
2020-11-18 08:50:27 +01:00
Lukas Wirth
132063ad96
Link rustc error codes in diagnostics
2020-11-18 08:50:27 +01:00
bors[bot]
156f7d6963
Merge #6553
...
6553: Auto imports in completion r=matklad a=SomeoneToIgnore

Closes https://github.com/rust-analyzer/rust-analyzer/issues/1062 but does not handle the completion order, since it's a separate task for https://github.com/rust-analyzer/rust-analyzer/issues/4922 , https://github.com/rust-analyzer/rust-analyzer/issues/4922 and maybe something else.
2 quirks in the current implementation:
* traits are not auto imported during method completion
If I understand the current situation right, we cannot search for traits by a **part** of a method name, we need a full name with correct case to get a trait for it.
* VSCode (?) autocompletion is not as rigid as in Intellij Rust as you can notice on the animation.
Intellij is able to refresh the completions on every new symbol added, yet VS Code does not query the completions on every symbol for me.
With a few debug prints placed in RA, I've observed the following behaviour: after the first set of completion suggestions is received, next symbol input does not trigger a server request, if the completions contain this symbol.
When more symbols added, the existing completion suggestions are filtered out until none are left and only then, on the next symbol it queries for completions.
It seems like the only alternative to get an updated set of results is to manually retrigger it with Esc and Ctrl + Space.
Despite the eerie latter bullet, the completion seems to work pretty fine and fast nontheless, but if you have any ideas on how to make it more smooth, I'll gladly try it out.
Co-authored-by: Kirill Bulatov <mail4score@gmail.com >
2020-11-17 17:50:08 +00:00
bors[bot]
f4b4f17662
Merge #6582
...
6582: Fill the diagnostic code field in publish_diagnostics r=kjeremy a=Veykril
Fixes #6580
Before:

After:

Co-authored-by: Lukas Wirth <lukastw97@gmail.com >
2020-11-17 15:47:36 +00:00
Lukas Wirth
c868f0255f
Fill the diagnostic code field in publish_diagnostics
2020-11-17 16:23:53 +01:00
Aleksey Kladov
0d19ee1d70
Simplify
2020-11-17 15:25:57 +01:00
Kirill Bulatov
16f0b2fdde
Actually enable eager completion
2020-11-17 13:19:56 +02:00
kjeremy
233fdb12ce
Latest LSP 3.16 protocol
...
Pulls in https://github.com/gluon-lang/lsp-types/pull/186
2020-11-16 15:10:13 -05:00
Kirill Bulatov
d776c67226
Properly fill the completion settings
2020-11-16 21:19:06 +02:00