Aleksey Kladov
4194e5c88c
Optimize inlay hints
2020-01-15 16:52:28 +01:00
Aleksey Kladov
11d6b9dadd
Only new-style classification
2020-01-15 16:52:28 +01:00
Aleksey Kladov
35bfeaf4af
Add a test
2020-01-15 16:52:28 +01:00
Aleksey Kladov
c640c2ea11
Make syntax highlighting linear
2020-01-15 16:52:28 +01:00
Aleksey Kladov
ccfe53376a
Introduce SourceBinder
2020-01-15 16:52:28 +01:00
bors[bot]
876f92d547
Merge #2843
...
2843: Add inlay parameter name hints for call expr r=matklad a=imtsuki
This patch adds Intellij-like parameter name hints for literal values in function calls.
<img width="624" alt="Screenshot" src="https://user-images.githubusercontent.com/8423594/72366533-68d7f800-3735-11ea-9279-cf193ca8ca2f.png ">
Signed-off-by: imtsuki <me@qjx.app>
Co-authored-by: imtsuki <me@qjx.app>
2020-01-15 10:24:51 +00:00
imtsuki
d854ad8f27
FnSignature: use unwrap_or_default for parameter_name_list
...
Signed-off-by: imtsuki <me@qjx.app>
2020-01-15 09:30:19 +08:00
imtsuki
d78a3cb638
Update test snapshot
...
Signed-off-by: imtsuki <me@qjx.app>
2020-01-15 01:32:03 +08:00
imtsuki
c390e92fdd
Add inlay parameter name hints for function calls
...
Signed-off-by: imtsuki <me@qjx.app>
2020-01-15 01:18:52 +08:00
Aleksey Kladov
a38540771f
Move Type API to type
2020-01-14 14:42:52 +01:00
Aleksey Kladov
52e7f67128
Move impls_future to Type, where it belongs
2020-01-14 11:29:43 +01:00
Aleksey Kladov
0358f5fdeb
Use lang-items to resolve future trait
2020-01-14 11:29:43 +01:00
kjeremy
c5c5f4260b
Readability
2020-01-13 11:38:53 -05:00
kjeremy
a82c679c97
Some clippy lints
2020-01-13 11:27:06 -05:00
memoryruins
5575588387
Add macro_rules item snippet
2020-01-12 18:47:15 -05:00
Roland Ruckerbauer
20b8d283ae
Remove hir usage from macro_rules! detection in structure_node()
2020-01-12 17:34:57 +01:00
Roland Ruckerbauer
15c5426b54
Use hir .path() and .name() to differentiate
...
macro call and macro definition
2020-01-12 17:34:57 +01:00
Roland Ruckerbauer
c6655c67d2
Added test for file_structure unidentified macro definition
2020-01-12 17:34:57 +01:00
Roland Ruckerbauer
db151763d4
Fix file_structure() to recognize macro_rules!
...
where first token != "macro_rules"
2020-01-12 17:34:57 +01:00
Edwin Cheng
0593da9a36
Fix format
2020-01-12 20:25:58 +08:00
Edwin Cheng
384e1ced88
Use prev_token and next_token
2020-01-12 20:25:58 +08:00
Edwin Cheng
b7ab079211
Use indices first and last instead of min-max
2020-01-12 20:25:58 +08:00
Edwin Cheng
caed836e41
Use first and last token only
2020-01-12 20:25:58 +08:00
Edwin Cheng
b30e6a7b56
Handle extend selection in recursive macro
2020-01-12 20:25:58 +08:00
Edwin Cheng
07f4171b18
Minor fix
2020-01-12 20:25:58 +08:00
Edwin Cheng
4c4416543a
Fix formatting
2020-01-12 20:25:58 +08:00
Edwin Cheng
83b2d78bbb
Supporting extend selection inside macro calls
2020-01-12 20:25:58 +08:00
Edwin Cheng
db5f73d261
Add test
2020-01-12 19:24:34 +08:00
Edwin Cheng
d7be1a4372
Use attr location for builtin macro goto-imp
2020-01-12 18:08:53 +08:00
Florian Diebold
15fc643e05
Fix ordering problem between qualifying paths and substituting params
2020-01-11 23:33:04 +01:00
kjeremy
32540abcb3
Add AccessMode to decls
2020-01-10 15:14:19 -05:00
kjeremy
49fd6a5228
Split Declaration out into it's own type
2020-01-10 15:14:19 -05:00
kjeremy
cc96ddfe69
Simplify and update tests to account for access
2020-01-10 15:14:19 -05:00
Jeremy Kolb
6c89d86ade
Tweaks
2020-01-10 15:14:19 -05:00
Jeremy Kolb
d993f329a0
Basic DocumentHighlightKind support for assignments
2020-01-10 15:14:19 -05:00
Edwin Cheng
19094abd41
Proper handling local in hover
2020-01-11 01:51:08 +08:00
Aleksey Kladov
cf5bdf464c
Merge pull request #2732 from detrumi/cargo-toml-not-found-message-toggle
...
Flag to hide cargo.toml not found error
2020-01-09 15:16:39 +01:00
bors[bot]
3263c70766
Merge #2772
...
2772: Actually test references r=kjeremy a=kjeremy
This will be a little more work when `ReferenceSearchResults` change but I think it's easier to maintain in the end. It also follows a similar pattern to navigation targets and call hierarchy.
Co-authored-by: kjeremy <kjeremy@gmail.com>
Co-authored-by: Jeremy Kolb <kjeremy@gmail.com>
2020-01-09 12:26:59 +00:00
Jeremy Kolb
6fc80efe77
visibility tweak
2020-01-09 07:26:04 -05:00
kjeremy
9791b9c36a
Actually test references
2020-01-08 16:35:58 -05:00
Michal Terepeta
d761435ba0
Remove the Default impl for SourceRoot
...
Let's be always explicit whether we create a library (i.e., an immutable
dependency) or a local `SourceRoot`, since it can have a large impact on
the validation performance in salsa. (we found it the hard way recently,
where the `Default` instance made it quite tricky to spot a bug)
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
2020-01-08 19:42:27 +01:00
kjeremy
c7b2bc1363
Move private API down
2020-01-08 11:33:04 -05:00
Jeremy Kolb
1b19a8aa5e
Implement proposed CallHierarchy feature
...
See: https://github.com/microsoft/vscode-languageserver-node/blob/master/protocol/src/protocol.callHierarchy.proposed.ts
2020-01-08 10:15:49 -05:00
Mikhail Modin
fb25c91979
Adds a way to limits reference search by StructLiteral
2020-01-08 15:21:54 +01:00
Aleksey Kladov
5d8f2bd822
Merge pull request #2762 from edwin0cheng/fix-2759
...
Reject tuple index for missing fields assist
2020-01-08 12:49:54 +01:00
Edwin Cheng
a4c9babedb
Proper emit diagnostic without fix
2020-01-08 02:18:43 +08:00
Edwin Cheng
e55e6da13a
Reject tuple index for missing fields assist
2020-01-08 02:08:17 +08:00
Edwin Cheng
1fdee24608
Use src node for analyze source
2020-01-08 00:23:53 +08:00
Michal Terepeta
be967b94e1
Fix a problem with Durability
of libraries
...
When processing a change with added libraries, we used
`Default::default` for `SourceRoot` which sets `is_library` to false.
Since we use `is_library` to decide whether to use low or high
durability, I believe that this caused us to mark many library
dependencies as having low durability and thus increased the size of the
graph that salsa needed to verify on every change.
Based on my initial tests this speeds up the `CrateDefMapQuery` on
rust-analyzer from about ~64ms to ~14ms and reduces the number of
validations for the query from over 60k to about 7k.
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
2020-01-06 22:21:56 +01:00
Michal Terepeta
d6c2a59538
Split infer
query into two for better profiling
...
This is the same change as we did with `crate_def_map` and it does seem
that we mostly spend time in salsa, without recomputing much on
rust-analyzer side.
Example output:
```
233ms - handle_inlay_hints
163ms - get_inlay_hints
163ms - SourceAnalyzer::new
67ms - def_with_body_from_child_node
67ms - analyze_container
67ms - analyze_container
67ms - Module::from_definition
67ms - Module::from_file
67ms - crate_def_map
0ms - parse_macro_query (6 calls)
0ms - raw_items_query (1 calls)
66ms - ???
0ms - crate_def_map (1 calls)
0ms - crate_def_map (1 calls)
96ms - infer
2ms - trait_solve_query (2 calls)
94ms - ???
0ms - body_with_source_map_query (1 calls)
0ms - crate_def_map (1 calls)
[...]
```
Signed-off-by: Michal Terepeta <michal.terepeta@gmail.com>
2020-01-03 19:58:11 +01:00