Côme ALLART
220137f1cf
fix: disable assist for documented functions
2021-12-07 18:02:18 +01:00
Jonas Schievink
b365b6119c
Treat extern blocks as item containers
2021-12-07 17:31:26 +01:00
bors[bot]
b7afb6fc6c
Merge #10958
...
10958: internal: add "Shuffle Crate Graph" command r=jonas-schievink a=jonas-schievink
May be useful for debugging issues like https://github.com/rust-analyzer/rust-analyzer/issues/10084
bors r+
Co-authored-by: Jonas Schievink <jonas.schievink@ferrous-systems.com>
2021-12-07 15:44:05 +00:00
Jonas Schievink
deb5c1426d
internal: add "Shuffle Crate Graph" command
2021-12-07 16:37:19 +01:00
bors[bot]
bf484d9d99
Merge #10957
...
10957: fix: Fix some TryToNav impls not upmapping ranges out of macros r=Veykril a=Veykril
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-07 14:51:07 +00:00
Lukas Wirth
f781e599cc
Adjust incorrect runnable tests
2021-12-07 15:42:54 +01:00
Lukas Wirth
e09d410dcd
Simplify
2021-12-07 15:06:56 +01:00
Lukas Wirth
b66f181bc0
Fix some TryToNav impls not upmapping ranges out of macros
2021-12-07 15:02:22 +01:00
Laurențiu Nicola
9a624abc84
Bump deps
2021-12-07 13:15:14 +02:00
Côme ALLART
3a82548c5e
fix: reduce assist scope: pub fn's in pub modules
2021-12-06 23:33:24 +01:00
Laurențiu Nicola
3678cbd12e
Bump tracing
2021-12-06 20:54:45 +02:00
Côme ALLART
d55d3b63cb
fix: format assist doc for sourcegen_assists_docs
2021-12-06 19:04:44 +01:00
Côme ALLART
998b91af9c
feat: assist to generate documentation templates
2021-12-06 18:32:25 +01:00
Laurențiu Nicola
f5db6e0e95
Bump parser step limit a little
2021-12-06 11:47:36 +02:00
bors[bot]
7d6fcbc0be
Merge #10944
...
10944: internal: Prefer resolution of inert attributes r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10942
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-05 15:28:28 +00:00
Lukas Wirth
89e1d19ec5
internal: Prefer resolution of inert attributes
2021-12-05 16:28:08 +01:00
bors[bot]
6f84bbfa1e
Merge #10943
...
10943: feat: Enable completions for attributes r=Veykril a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-05 15:14:10 +00:00
Lukas Wirth
1f254dd855
feat: Enable flyimport completions for attributes
2021-12-05 15:57:28 +01:00
Aleksey Kladov
4f3fc6fa1a
try to optimize things unsuccessfully
...
Baseline
```
Database loaded: 598.40ms, 304minstr, 118mb (metadata 390.57ms, 21minstr, 841kb; build 111.31ms, 8764kinstr, -214kb)
crates: 39, mods: 824, decls: 18647, fns: 13910
Item Collection: 9.70s, 75ginstr, 377mb
exprs: 382426, ??ty: 387 (0%), ?ty: 285 (0%), !ty: 145
Inference: 43.16s, 342ginstr, 641mb
Total: 52.86s, 417ginstr, 1018mb
```
Eager
```
Database loaded: 625.86ms, 304minstr, 118mb (metadata 414.52ms, 21minstr, 841kb; build 113.81ms, 8764kinstr, -230kb)
crates: 39, mods: 824, decls: 18647, fns: 13910
Item Collection: 10.09s, 75ginstr, 389mb
exprs: 382426, ??ty: 387 (0%), ?ty: 285 (0%), !ty: 145
Inference: 43.27s, 341ginstr, 644mb
Total: 53.37s, 417ginstr, 1034mb
```
Lazy
```
Database loaded: 626.34ms, 304minstr, 118mb (metadata 416.26ms, 21minstr, 841kb; build 113.67ms, 8750kinstr, -209kb)
crates: 39, mods: 824, decls: 18647, fns: 13910
Item Collection: 10.16s, 75ginstr, 389mb
exprs: 382426, ??ty: 387 (0%), ?ty: 285 (0%), !ty: 145
Inference: 44.51s, 342ginstr, 644mb
Total: 54.67s, 417ginstr, 1034mb
```
2021-12-05 15:32:39 +03:00
Aleksey Kladov
c603b9043f
feat: make hightlighting linear
...
In https://youtu.be/qvIZZf5dmTE , we've noticed that AstIdMap does a
linear lookup when going from SyntaxNode to Id. This leads to
accidentally quadratic overall performance. Replace linear lookup with a
O(1) hashmap lookup.
Future work: don't duplicate `SyntaxNodePtr` in `AstIdMap` and switch to
"call site dependency injection" style storage (eg, store a
`HashSet<ErasedFileAstId>`).
See the explanation of the work here on YouTube
https://youtu.be/wvEgymUm7cY :-)
2021-12-05 15:32:39 +03:00
Laurențiu Nicola
bff377c712
Clean up some unused cross-crate dependencies
2021-12-05 13:54:49 +02:00
bors[bot]
1cf1359c55
Merge #10937
...
10937: fix: Add highlighting hack back for unresolved attributes r=Veykril a=Veykril
cc https://github.com/rust-analyzer/rust-analyzer/issues/10935
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-05 11:02:55 +00:00
Lukas Wirth
9b4ca77572
fix: Add highlighting hack back for unresolved attributes
2021-12-05 11:59:07 +01:00
bors[bot]
8a084e6aca
Merge #10902
...
10902: Handle multiple cargo check quick fix spans r=Veykril a=brandondong
Resolves https://github.com/rust-analyzer/rust-analyzer/issues/10705 .
**Cause:**
- For a cargo check diagnostic with multiple spans, only a single quick fix action would be created at the location of `spans[0]`. Additionally, the hover window details would only show the location of `spans[0]` next to the message.
**Fix:**
- Allow cargo check quick fix actions to be triggerable from multiple selection ranges. Specifically, if the selection intersects with any of the replacement spans, the quick fix action is shown.
- No change in behavior for the hover window details. It's pretty minor and I think showing multiple locations next to the message may be more confusing anyways.
Co-authored-by: Brandon <brandondong604@hotmail.com>
2021-12-05 10:52:54 +00:00
Brandon
fa2818551e
Update expected test results
2021-12-04 21:42:13 -08:00
Brandon
0d1910c6fb
Handle multiple cargo check quick fix spans
2021-12-04 21:41:56 -08:00
Brandon
de05c3d406
Refactor away unnecessary Vec
2021-12-04 19:59:05 -08:00
bors[bot]
6434ada19e
Merge #10930
...
10930: fix: Fix self keyword not being tagged as such in highlighting properly r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/10575
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-04 18:08:11 +00:00
Lukas Wirth
b35a50cb10
fix: Fix self keyword not being tagged as such in highlighting properly
2021-12-04 19:07:18 +01:00
bors[bot]
372a7cf981
Merge #10929
...
10929: internal: Split up macro/attribute semantic tokens a bit more r=Veykril a=Veykril
Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9172
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-04 17:33:16 +00:00
Lukas Wirth
3472105ad9
Update semantic token docs
2021-12-04 18:23:25 +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
Laurențiu Nicola
b7368d34a6
Bump pulldown-cmark-to-cmark
2021-12-04 15:21:04 +02:00
Laurențiu Nicola
076f2247f2
Bump miow
2021-12-04 15:17:30 +02:00
Laurențiu Nicola
f2a1082c84
Bump countme
2021-12-04 15:14:31 +02:00
Laurențiu Nicola
26aba38168
Bump chalk
2021-12-04 15:08:43 +02:00
Laurențiu Nicola
89a1256f9a
Bump most deps
2021-12-04 15:08:37 +02:00
bors[bot]
5c00c3e8d4
Merge #10921
...
10921: minor: Update list of safe intrinsics r=Veykril a=Veykril
Closes https://github.com/rust-analyzer/rust-analyzer/issues/4798
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-03 23:52:28 +00:00
Lukas Wirth
144200c821
minor: Update list of safe intrinsics
2021-12-04 00:51:50 +01:00
bors[bot]
ea199dcbec
Merge #10920
...
10920: minor: Shorten spans of mismatched_arg_count diag r=Veykril a=Veykril
Fixes #5289
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-03 23:27:50 +00:00
Lukas Wirth
045014c17e
minor: Shorten spans of mismatched_arg_count diag
2021-12-04 00:27:29 +01:00
bors[bot]
bf76226148
Merge #10916
...
10916: feat: ide: Convert while let to loop r=Veykril a=rainy-me
close #10901
Co-authored-by: rainy-me <github@yue.coffee>
2021-12-03 20:21:55 +00:00
rainy-me
79b4e67b4f
fix: defer condition construction
2021-12-04 04:50:06 +09:00
bors[bot]
3f3289df2a
Merge #10915
...
10915: feat: Resolve builtin-attr and tools in ide layer r=Veykril a=Veykril
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-12-03 19:28:36 +00:00
Lukas Wirth
8da850b6d5
Improve hover message for inert attributes
2021-12-03 20:28:15 +01:00
rainy-me
fb90bf9cad
feat: handle while let to loop
2021-12-04 03:19:19 +09:00
Lukas Wirth
d174158abc
Rename things: Tool -> ToolModule
2021-12-03 17:15:19 +01:00
Lukas Wirth
70b8331fd5
Basic hover for builtin-attr and tool modules
2021-12-03 17:10:56 +01:00
Lukas Wirth
db559e5049
Simplify
2021-12-03 17:07:06 +01:00
Lukas Wirth
d1677f3286
Remove syntax highlighting hack for builtin attrs
2021-12-03 16:54:34 +01:00
Lukas Wirth
e58af219a4
feat: Resolve builtin-attr and tools in ide layer
2021-12-03 16:32:17 +01:00
Skyler Rain Ross
5b59a5eca8
refactor(assist/add_return_type): avoid threading needs_whitespace
2021-12-02 10:46:07 -08:00
Skyler Rain Ross
e031267602
fix: add return type works when there's missing whitespace
2021-12-02 09:28:18 -08:00
bors[bot]
b68cd6eda2
Merge #10891
...
10891: fix: emit trait names in moniker identifier r=Veykril a=tjdevries
Hi,
Not sure if this is the best fix for the problem, but I noticed that functions that part of a trait are not namespaced with the trait name, so this could lead to problems if you had a function and a trait-function both defined in the same module.
Thanks!
TJ
Co-authored-by: TJ DeVries <devries.timothyj@gmail.com>
2021-12-02 11:21:59 +00:00
TJ DeVries
6870bfd099
fixup: include more information for impls
2021-12-02 00:04:03 -05:00
TJ DeVries
d50f18fb65
fixup: properly handle all associated items
2021-12-01 11:43:52 -05:00
Jake Heinz
30b0464ed8
add a fixme:
2021-12-01 12:26:27 +00:00
Jake Heinz
ba92bb1ed9
simplify
2021-12-01 12:25:08 +00:00
Jake Heinz
d2480ecb9f
ide: hack to make self not unresolved reference in async trait wrapped impl's
2021-12-01 12:17:20 +00:00
Jake Heinz
b357569d0f
add test
2021-12-01 10:28:18 +00:00
Jake Heinz
fec2d39f3c
simplify??
2021-12-01 09:23:42 +00:00
Jake Heinz
a1b2d25810
hir: resolve assoc trait type
2021-12-01 08:44:30 +00:00
TJ DeVries
09c7e22ec2
fix: emit trait names in moniker identifier
2021-11-30 11:16:11 -05:00
bors[bot]
2d0db312b5
Merge #10872
...
10872: ide_db: build symbol index from crate def map r=Veykril a=jhgg
fixes #4842 , #10764
Is this looking correct? 👀
- [x] build the symbol index based upon the CrateDefMap for the given crate in `crate_symbols`
- [x] make it multi threaded again, and figure out how to cache each moduleid's symbol index in salsa.
- [x] NavigationTarget for names in macros is wrong, need to figure out how to compute a text range in the original file id?
- [x] cleanup some duped code
- [x] collect macros from `ItemScope.declared_macros()` into symbol index.
- [x] store declared macros in `ItemScope` so we can figure out where macros were defined for the index.
- [x] do something about `SymbolIndex::for_files` - ideally it should use the new module symbol index stuff.
- [x] delete `source_file_to_file_symbols` & co...
- [x] figure out what to do about `library_symbols`
- [x] maybe... speed up the new `library_symbols` - the new impl is probably much slower, and definitely much less parallel. **deciding to do nothing here, we can optimize later if necerssary.**
- [x] fix failing test: `navigation_target::tests::test_nav_for_symbol` - notably the crate def map doesn't seem to find declarations inside function.
- [x] now a bunch of other tests are failing around auto_import & qualify_path handlers. :(
- [x] need to assoc items in traits and impls
Co-authored-by: Jake Heinz <jh@discordapp.com>
2021-11-30 14:07:39 +00:00
Jake Heinz
f4bf750016
simpler way of grabbing module / trait name
2021-11-30 08:24:07 +00:00
Jake Heinz
b0c7ff39b8
remove one need for semantics
2021-11-30 04:50:09 +00:00
Jake Heinz
54fc98920b
consts with inners??
2021-11-30 03:21:17 +00:00
Jake Heinz
492b169224
pr feedbacks
2021-11-30 03:09:38 +00:00
bors[bot]
393cbd0982
Merge #10841
...
10841: Emit moniker in lsif r=Veykril a=HKalbasi
fix #10559
Co-authored-by: hkalbasi <hamidrezakalbasi@protonmail.com>
Co-authored-by: HKalbasi <45197576+HKalbasi@users.noreply.github.com>
2021-11-29 11:13:39 +00:00
Jake Heinz
0abf236445
test the one thing this pr was trying to accomplish lol...
2021-11-29 10:43:51 +00:00
Jake Heinz
f0bfe310a2
add a test
2021-11-29 10:36:22 +00:00
Jake Heinz
97105e1288
some more cleanups
2021-11-29 09:52:03 +00:00
Jake Heinz
1280887561
do something with library_symbols
2021-11-29 09:36:00 +00:00
hkalbasi
1409781c45
fix tests
2021-11-29 11:25:53 +03:30
hkalbasi
df261c10b9
remove duplicate data from CrateOrigin
2021-11-29 11:10:39 +03:30
Jake Heinz
176f4da77a
simplify work
2021-11-29 07:17:18 +00:00
Jake Heinz
6e89fb6f73
🧹
2021-11-29 05:42:46 +00:00
Jake Heinz
6cf9969546
collect macro_rules! macros into macro declarations
2021-11-29 05:28:22 +00:00
Jake Heinz
1ed5699355
collect macros
2021-11-29 05:22:30 +00:00
Jake Heinz
d69e0dab56
cleanup the whole thing...
2021-11-29 03:54:52 +00:00
Jake Heinz
aecb9a378c
traverse even more...
2021-11-29 02:07:16 +00:00
Jake Heinz
9387e2d919
populate container name when traversing down blocks
2021-11-29 01:32:47 +00:00
Jake Heinz
8fa1d9bb47
collect blocks from unnamed consts too
2021-11-29 01:11:31 +00:00
Jake Heinz
8850ea0b4f
collect defs from body blocks
2021-11-29 01:09:39 +00:00
Jake Heinz
8307d38dc1
cleanups
2021-11-28 00:42:42 +00:00
bors[bot]
d9b2291f54
Merge #10876
...
10876: fix: Show parameter hints unconditionally for logical not expressions r=Veykril a=Veykril
Closes https://github.com/rust-analyzer/rust-analyzer/issues/8491
bors r+
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-11-27 18:14:59 +00:00
Lukas Wirth
76022bfd60
fix: Show parameter hints unconditionally for logical not expressions
2021-11-27 19:14:36 +01:00
Lukas Wirth
3fcbcf4a0e
Don't discard flycheck error messages
2021-11-27 18:57:51 +01:00
Aleksey Kladov
ba414bc2ae
minor: correct profiling name
2021-11-27 19:11:39 +03:00
Aleksey Kladov
a1aa8212ef
minor: if-let-else to shorter match
2021-11-27 18:18:00 +03:00
Jake Heinz
e033d8c2a2
make navigation target go to original file location
2021-11-27 13:48:50 +00:00
Jake Heinz
a7370c5725
remove file symbols
2021-11-27 13:00:02 +00:00
Jake Heinz
377162c0f8
container name?
2021-11-27 12:27:43 +00:00
Jake Heinz
a1030b07ab
use Semantics::parse_or_expand in another place
2021-11-27 11:55:03 +00:00
Jake Heinz
a69af9daa3
sema parse_or_expand
2021-11-27 11:49:51 +00:00
Jake Heinz
0447be7589
wip
2021-11-27 11:25:05 +00:00
Jake Heinz
dca8f612d0
ide: fix expansion for 'as _'
2021-11-27 02:22:21 +00:00
Jonas Schievink
c291e5e284
Use the right ItemTree
when re-resolving attr
2021-11-26 03:57:25 +01:00
Jonas Schievink
3bb6f506ee
Build per-block ItemTree
s
2021-11-26 00:17:20 +01:00