Jonas Schievink
bdba35cc93
fix: multi-token mapping aware find references
2021-09-01 19:19:16 +02: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
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
Aleksey Kladov
8f3335f5fb
internal: make it clearer where IO happens
2021-07-17 23:56:50 +03: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
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
Jonas Schievink
5f13fb9db9
Add "View Crate Graph (Full)"
2021-07-02 00:10:33 +02:00
bors[bot]
264716e827
Merge #9375
...
9375: feat: Highlight exit and yield points r=Veykril a=Veykril
![Code_YBHOCF3DbU](https://user-images.githubusercontent.com/3757771/123128986-e1270a80-d44b-11eb-9854-065459a2dd50.png )
![Code_YyMhqES0LX](https://user-images.githubusercontent.com/3757771/123128988-e1bfa100-d44b-11eb-9c81-6a6031aad740.png )
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
9a53f1033e
Implement yield point highlighting
2021-06-23 16:16:32 +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
f615efdfc3
Factor out pick_best_token
ide pattern into ide_db
2021-06-22 17:50:15 +02:00
Lukas Wirth
65d683df36
Collapse documentation and markdown config settings into an enum
2021-06-21 21:57:01 +02:00
Lukas Wirth
99c95b8fa1
Split hover actions config into its own config struct
2021-06-21 21:47:54 +02:00
Jamie Cunliffe
ae823aa23f
Move features into potential_cfg_options
2021-06-21 17:54:05 +01:00
Jamie Cunliffe
284483b347
Improve completion of cfg attributes
...
The completion of cfg will look at the enabled cfg keys when
performing completion.
It will also look crate features when completing a feature cfg
option. A fixed list of known values for some cfg options are
provided.
For unknown keys it will look at the enabled values for that cfg key,
which means that completion will only show enabled options for those.
2021-06-21 17:47:00 +01: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
Laurențiu Nicola
e58f63dc63
Show diagnostic fixes before assists
2021-06-15 20:55:27 +03:00
Aleksey Kladov
da534bdd07
internal: flatten module hierarchy
...
It seems that any crate can be made better by flattening the modules
down to a single layer?
2021-06-14 19:14:34 +03:00
Aleksey Kladov
2e8dab631b
internal: prepare to move assist definitions
2021-06-14 17:45:17 +03:00
Aleksey Kladov
1d2772c2c7
internal: move diagnostics to a new crate
2021-06-14 17:45:17 +03:00
Lukas Wirth
a93d166f0f
Make documentation on hover configurable
2021-06-14 15:25:10 +02:00
Maan2003
c9b4ac5be4
clippy::redudant_borrow
2021-06-13 09:24:16 +05:30
Jonas Schievink
33debc4065
Update salsa
2021-05-27 15:05:41 +02:00
Jonas Schievink
271ec6b990
Add a "Debug ItemTree" LSP request
2021-05-21 23:59:52 +02:00
rainy-me
e0b01f34bb
Add pub mod option for UnlinkedFile
2021-05-18 08:11:07 +09:00
Jonas Schievink
23cd6d0d56
Move dot
invocation to rust-analyzer crate
2021-05-12 00:14:59 +02:00
Jonas Schievink
a85a2c4d15
Allow viewing the crate graph in a webview
2021-05-11 16:15:31 +02:00
Kirill Bulatov
28293d370f
Add docs and use better naming
2021-05-03 18:16:35 +03:00
Kirill Bulatov
1679a376f3
Resolve single assist only
2021-05-03 18:03:28 +03:00
Kirill Bulatov
e5cdcb8b12
Add a way to resolve certain assists
2021-05-03 17:14:49 +03:00
Lukas Wirth
c447a795ab
Prevent being able to rename items that are not part of the workspace
2021-04-18 12:44:00 +02:00
bors[bot]
03e0bf7f55
Merge #8354
...
8354: Distinguishing between different operators in semantic highlighting r=matklad a=chetankhilosiya
Co-authored-by: Chetan Khilosiya <chetan.khilosiya@gmail.com>
2021-04-13 11:46:23 +00:00
Aleksey Kladov
06a633ff42
feat: improve performance by delaying computation of fixes for diagnostics
2021-04-13 12:09:04 +03:00
Aleksey Kladov
04b5fcfdb2
Ensure that listing&resolving code actions use the same set of actions
2021-04-13 11:27:00 +03:00
Aleksey Kladov
426d098bd6
internal: prepare for lazy diagnostics
2021-04-12 17:58:01 +03:00
Chetan Khilosiya
1735b3ef6a
8279: Added initial implementation for
...
Operator semantic highlighting.
2021-04-08 22:58:26 +05:30
ivan770
7d60458495
Item up and down movers
2021-03-18 11:22:27 +02:00
Aleksey Kladov
5dcdf2ceee
Move code to the appropriate layer
...
StructureNodeKind is a type which is specific to a particular feature,
file_structure. It shouldn't be in the "code shared by all ide features"
part.
2021-03-15 12:55:27 +03:00
bors[bot]
7accf6bc37
Merge #7799
...
7799: Related tests r=matklad a=vsrs
![tests](https://user-images.githubusercontent.com/62505555/109397453-a9013680-7947-11eb-8b11-ac03079f7645.gif )
This adds an ability to look for tests for the item under the cursor: function, constant, data type, etc
The LSP part is bound to change. But the feature itself already works and I'm looking for a feedback :)
Co-authored-by: vsrs <vit@conrlab.com>
2021-03-13 13:50:35 +00:00
Josh Mcguigan
9ee3914c61
remove unused CompletionScore enum
2021-03-12 06:16:04 -08:00
Josh Mcguigan
3679821eea
add completion relevance score
2021-03-12 06:16:01 -08:00
Josh Mcguigan
09307be75b
add apply ssr assist
2021-03-10 06:02:15 -08:00
Kirill Bulatov
33c83e72b9
Work towards better import labels
2021-03-08 23:59:20 +02:00
vsrs
5d23d8bc29
Add runnables::related_tests
2021-02-27 18:00:17 +03:00
Chetan Khilosiya
eb6cfa7f15
7526: Renamed create ssr to ide_ssr.
2021-02-23 00:59:16 +05:30
Chetan Khilosiya
e4756cb4f6
7526: Rename crate assists to ide_assists.
2021-02-23 00:59:16 +05:30
Aleksey Kladov
3db64a400c
rename completion -> ide_completion
...
We don't have completion-related PRs in flight, so lets do it
2021-02-17 17:53:31 +03:00
Aleksey Kladov
95209aa3f8
Make utf8 default, implement utf16 in terms of it
2021-02-16 19:17:32 +03:00
Aleksey Kladov
2cb4ac9eb4
Prepare for utf-8 offsets
2021-02-16 19:17:32 +03:00
ivan770
185da286d2
Moved CodeLens to ide crate
2021-02-13 13:07:47 +02:00
Lukas Wirth
c5be0b2589
Use NameLike in FileReference directly as its not exported from ide anymore
2021-02-12 18:58:29 +01:00
Lukas Wirth
d644728d82
Refactor reference searching to work with the ast
2021-02-12 18:58:28 +01:00
Lukas Wirth
563a175fdb
Move SymbolKind to ide_db
2021-01-20 15:25:34 +01:00
Lukas Wirth
e31420fbe2
Remove obsolete RangeInfo usage in references
2021-01-18 21:10:01 +01:00
bors[bot]
342bf41022
Merge #7297 #7338
...
7297: Propose trait associated items and autoimport traits on completion r=matklad a=SomeoneToIgnore
![trait_imports](https://user-images.githubusercontent.com/2690773/104819998-6faeb480-583a-11eb-8b45-b7351b51b90e.gif )
Closes #7248
7338: Parse `impl const Trait` r=Veykril a=Veykril
Closes #7313
bors r+
Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-01-18 19:40:11 +00:00
Lukas Wirth
21a6384ce6
Remove obsolete RangeInfo usage in rename
2021-01-18 20:28:20 +01:00
Aleksey Kladov
738cf7d495
Minor
2021-01-18 16:09:44 +03:00
Kirill Bulatov
db335a1bbf
Add flyimport completion for trait assoc items
2021-01-16 20:44:12 +02:00
Kirill Bulatov
6742f38e49
Share import_assets and related entities
2021-01-16 19:33:36 +02:00
Lukas Wirth
d5095329a1
Phase out SourceFileEdits in favour of a plain HashMap
2021-01-14 22:43:36 +01:00
Lukas Wirth
f51457a643
Group file source edits by FileId
2021-01-14 18:35:22 +01:00
Lukas Wirth
fbdb32adfc
Group references by FileId
2021-01-12 01:03:04 +01:00
Lukas Wirth
78fe6133c4
Split punctuation semantic highlighting up into more tags
2021-01-10 13:33:03 +01:00
Aleksey Kladov
3dfa2768ac
Shorten names
2021-01-09 14:48:15 +03:00
Aleksey Kladov
64a6ee4535
Shorten frequent names
2021-01-09 14:44:01 +03:00
Aleksey Kladov
f8a0561178
Align config's API with usage
...
The config now is mostly immutable, optimize for that.
2021-01-06 21:22:24 +03:00
Aleksey Kladov
6e87828756
YAGNI active_resolve_capabilities
...
This leaks a lot of LSP details into ide layer, which we want to avoid:
c9cec381bc/docs/dev (lsp-independence)
Additionally, all what this infra does is providing a toggle for
auto-import completion, but we already have one!
2021-01-06 20:23:53 +03:00
bors[bot]
1cc73d60bb
Merge #7068
...
7068: Add VSCode command to view the hir of a function body r=theotherphil a=theotherphil
Will fix https://github.com/rust-analyzer/rust-analyzer/issues/7061 . Very rough initial version just to work out where I needed to wire everything up.
@matklad would you be happy merging a hir visualiser of some kind? If so, do you have any thoughts on what you'd like it show, and how?
I've spent very little time on this thus far, so I'm fine with throwing away the contents of this PR, but I want to avoid taking the time to make this more polished/interactive/useful only to discover that no-one else has any interest in this functionality.
![image](https://user-images.githubusercontent.com/1974256/103236081-bb58f700-493b-11eb-9d12-55ae1b870f8f.png )
Co-authored-by: Phil Ellison <phil.j.ellison@gmail.com>
2021-01-03 09:03:15 +00:00
Laurențiu Nicola
42c24ff25f
Avoid a couple of allocations
2020-12-29 14:35:49 +02:00
Phil Ellison
077592a12f
Initial implementation of view-hir command
2020-12-28 18:29:58 +00:00
Aleksey Kladov
2f22675537
Simplify assists resolution API
...
Assist vs UnresolvedAssist split doesn't really pull its weight. This
is especially bad if we want to include `Assist` as a field of
diagnostics, where we'd have to make the thing generic.
2020-12-26 14:11:42 +03:00
Aleksey Kladov
33384d289e
pit-of-success API for unresolved code actions
2020-12-24 15:32:29 +03:00
Jeremy Kolb
4f989cfa08
Implement workspace/willRenameFiles for single-level file moves
...
Renames modules during file rename if they're in the same directory.
2020-12-23 07:47:31 -05:00
Aleksey Kladov
55ba353b39
Don't expose SyntaxKind from IDE API
...
SyntaxKind is somewhat of an internal type, but IDE is using it to
basically specify an icon. Let's have a dedicated entity for this
instead.
2020-12-18 19:28:48 +03:00
Aleksey Kladov
2465fa02b7
Cleaup imports
...
ide should re-export everything it needs.
2020-12-18 18:02:11 +03:00
Lukas Wirth
55faa2daa3
Lifetime reference search
2020-12-16 22:21:01 +01:00
Kirill Bulatov
19cfa5802e
Simplify
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
47464e556c
Properly fill client completion resolve capabilities data
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
f4ae3650d8
Extract the import code into the shared module
2020-11-27 18:28:41 +02:00
Aleksey Kladov
ba8d6d1e4e
Remove more unreachable pubs
2020-11-02 16:58:33 +01:00
Igor Aleksanov
19cce08662
Re-export base_db from ide_db
2020-10-24 11:39:57 +03:00
Igor Aleksanov
b6ea56ea09
Make call_info a part of ide_db
2020-10-24 11:07:10 +03:00
Igor Aleksanov
9e7c952bbd
Extract call_info and completion into separate crates
2020-10-18 13:09:00 +03:00
Jonas Schievink
cde7392ec8
Improve prime_caches and display its progress
2020-10-12 13:35:01 +02:00
bors[bot]
518f6d7724
Merge #5917
...
5917: Add a command to open docs for the symbol under the cursor r=matklad a=zacps
#### Todo
- [ ] Decide if there should be a default keybind or context menu entry
- [x] Figure out how to get the documentation path for methods and other non-top-level defs
- [x] Design the protocol extension. In future we'll probably want parameters for local/remote documentation URLs, so that should maybe be done in this PR?
- [x] Code organisation
- [x] Tests
Co-authored-by: Zac Pullar-Strecker <zacmps@gmail.com>
2020-10-12 07:38:24 +00:00
Rüdiger Herrmann
e90931a204
Show reason for failed rename refactoring
...
Return an error with a meaningful message for requests to
`textDocument/rename` if the operation cannot be performed.
Pass errors raised by rename handling code to the LSP runtime.
As a consequence, the VS Code client shows and logs the request
as if a server-side programming error occured.
Resolves https://github.com/rust-analyzer/rust-analyzer/issues/3981
2020-10-10 13:46:10 +02:00
Zac Pullar-Strecker
974518fde7
Code reorganisation and field support
2020-10-08 15:04:20 +13:00
Zac Pullar-Strecker
a14194b428
Changes from review
2020-10-08 15:01:30 +13:00
Zac Pullar-Strecker
8c32bdea36
Rename ide::link_rewrite -> ide::doc_links & tidy imports
2020-10-08 15:01:30 +13:00