Commit graph

15380 commits

Author SHA1 Message Date
Raymond Luo
96ff235770 condense matches on autolink 2022-06-22 22:07:26 -04:00
Raymond Luo
b7e3f525bd handle autolink as edge case 2022-06-20 23:15:27 -04:00
Raymond Luo
c6f776c5f9 determine doc link type from start instead of text or code 2022-06-20 21:10:45 -04:00
bors
6fc5c3cd21 Auto merge of #12604 - Veykril:completions, r=Veykril
internal: Simplify some completions
2022-06-20 19:56:05 +00:00
Lukas Wirth
7a0774defa internal: Simplify some completions 2022-06-20 21:55:33 +02:00
bors
312ac83caf Auto merge of #12599 - flodiebold:no-test-deps, r=flodiebold
fix: Only apply `cfg(test)` for local crates

Don't analyze dependencies with `test`; this should fix various cases where crates use `cfg(not(test))` and so we didn't find things.

"Local" here currently means anything that's not from the registry, so anything inside the workspace, but also path dependencies. So this isn't perfect, and users might still need to use `rust-analyzer.cargo.unsetTest` for these in some cases.
2022-06-20 18:42:48 +00:00
Florian Diebold
07d78b67cb Fix test 2022-06-20 20:34:08 +02:00
Lukas Wirth
8b078986dc Reimplement auto-ref completions for fields 2022-06-20 20:22:51 +02:00
Florian Diebold
05ca0a2377 Refactor a bit 2022-06-20 20:21:30 +02:00
Lukas Wirth
46d22719fc Remove pattern rendering hack 2022-06-20 20:16:40 +02:00
Florian Diebold
98a58114a4 Only apply cfg(test) for local crates
Don't analyze dependencies with `test`; this should fix various cases
where crates use `cfg(not(test))` and so we didn't find things.

"Local" here currently means anything that's not from the registry, so
anything inside the workspace, but also path dependencies. So this isn't
perfect, and users might still need to use
`rust-analyzer.cargo.unsetTest` for these in some cases.
2022-06-20 20:10:25 +02:00
Lukas Wirth
06ee4d6222 fix: Fix auto-ref completions inserting into wrong locations 2022-06-20 18:59:57 +02:00
Lukas Wirth
1f028403cd fix: Don't trigger pattern completions when typing a wildcard pattern 2022-06-20 18:03:09 +02:00
Lukas Wirth
6e9c963348 internal: Lift out IdentContext from CompletionContext 2022-06-20 17:41:04 +02:00
Lukas Wirth
bcf10cde13 internal: Remove previous_token field from CompletionContext 2022-06-20 15:07:48 +02:00
Lukas Wirth
90483321ee Remove some usages of Completions::add_resolution 2022-06-20 14:47:30 +02:00
Lukas Wirth
7685245282 Even more completion context filtering 2022-06-20 14:23:46 +02:00
Lukas Wirth
ce5859e387 Lift out PathKind variant fields into structs 2022-06-20 13:29:13 +02:00
Lukas Wirth
5c69df93df Split remaining completion calls on the context kinds 2022-06-20 13:17:30 +02:00
iDawer
4ff9bedbed Display witnesses of non-exhaustive match
Reporting format follows rustc and shows at most three witnesses.
2022-06-20 15:48:09 +05:00
Lukas Wirth
013c6a3f75 fix: attribute macros not being properly diagnosed 2022-06-19 00:37:37 +02:00
bors
817f46bc6c Auto merge of #12580 - Veykril:completion, r=Veykril
internal: Move more things out of `CompletionContext::function_def` into more specific parts
2022-06-18 09:21:13 +00:00
Lukas Wirth
f271b18129 Consider walking up macro expansions when searching for surrounding entities in completion analysis 2022-06-18 11:19:36 +02:00
Lukas Wirth
c1446a2743 Move CompletionContext::impl_def into corresponding entities 2022-06-18 10:45:53 +02:00
Lukas Wirth
83e8f3ac30 Move CompletionContext::incomplete_let into PathKind::Expr 2022-06-18 10:19:04 +02:00
bors
7a87f810ca Auto merge of #12576 - harpsword:fold_range_non_block_match_arm, r=Veykril
feat: add fold range for multi line match arm list

fix: #11893
2022-06-18 08:10:31 +00:00
harpsword
3a78cc5e67 feat: add fold range for multi line match arm list 2022-06-18 16:05:56 +08:00
Lukas Wirth
7369e5120d Move CompletionContext::function_def into PathKind::Expr 2022-06-18 09:54:03 +02:00
Lukas Wirth
309ecdd71c internal: NameRefKind classification is not optional 2022-06-18 08:58:47 +02:00
Lukas Wirth
0665428b4e minor: Simplify 2022-06-18 01:15:08 +02:00
Lukas Wirth
173bb10a76 internal: Split flyimport into its 3 applicable contexts 2022-06-18 00:47:28 +02:00
Lukas Wirth
00fdb4a3d8 Only run completion functions if their corresponding context is active 2022-06-17 23:36:39 +02:00
Lukas Wirth
d97a8ee865 Remove superfluous early returns 2022-06-17 17:49:25 +02:00
Lukas Wirth
85b68b1f7d Inline PathQualifierCtx 2022-06-17 17:27:12 +02:00
Lukas Wirth
d6f161ffa9 internal: Collapse lift is_infer_qualifier into Qualified variant 2022-06-17 17:15:29 +02:00
Lukas Wirth
2f2ea77d88 Move existing_derives into PathKind::Derive 2022-06-17 16:56:21 +02:00
Lukas Wirth
531060f103 internal: Collapse completion ctx path qualifier and is_absolute_path into enum 2022-06-17 16:36:22 +02:00
Lukas Wirth
85363d18e8 Simplify 2022-06-17 16:22:51 +02:00
Lukas Wirth
f35a9a1dcc Split out tests 2022-06-17 15:19:09 +02:00
Lukas Wirth
a2537e591a Split completion context module into definitions and analysis parts 2022-06-17 15:16:20 +02:00
Lukas Wirth
f201a40492 Remove ImmediateLocation in favor of PathKind::Type 2022-06-17 15:09:48 +02:00
Lukas Wirth
6b246292ca Move more ImmediateLocation::TypeAnnotation into PathKind::Type 2022-06-17 11:31:36 +02:00
Lukas Wirth
6e07b17f69 Introduce NameRefKind for completions 2022-06-17 10:45:19 +02:00
Lukas Wirth
59799312e2 Send a DidCancel event when restarting flychecks 2022-06-16 15:25:50 +02:00
bors
7322a982f9 Auto merge of #12554 - XFFXFF:fix_11959, r=Veykril
fix: local items should not be completed in parent signature

fixes #11959

> We get a Bar completion for the following snippet which is wrong as the item is not visible in that position.
> ``` rust
> fn foo() -> $0 {
>    struct Bar;
> }
> ```

I investigated the problem and found that the scope of the cursor offset, also `CompletionContext.scope` is the body of the function
2022-06-16 12:48:33 +00:00
XFFXFF
6df969f5f4 the offset used for the completion cursor should always be relative to the original file and not to the marco file 2022-06-16 20:34:37 +08:00
bors
7ade4d49fc Auto merge of #12517 - xuhongxu96:master, r=Veykril
fix methods in pub trait generated by macro cannot be completed

Fix #12483

Check if the container is trait and inherit the visibility to associate items during collection.
2022-06-16 09:14:09 +00:00
XFFXFF
fbf8e12234 the scope of the return type is not the body of the function 2022-06-16 16:24:18 +08:00
Hongxu Xu
534d71a852 disable private editable in TEST_CONFIG by default
adjust test_visibility_filter test case
2022-06-16 08:52:57 +08:00
Jeremy Banks
c32f133236 fix: inserted imports must come after a shebang if present 2022-06-15 19:42:43 +00:00
Jeremy Banks
f32ad8362f add failing test: inserts_after_shebang 2022-06-15 19:42:43 +00:00
Lukas Wirth
bc1aa93e7e Polish 2022-06-15 18:35:48 +02:00
Lukas Wirth
1dd2c50298 Update test outputs 2022-06-15 18:07:37 +02:00
Lukas Wirth
0e41d15b82 Use the correct crates proc-macro loading error message 2022-06-15 18:06:33 +02:00
Lukas Wirth
1d34cdcac0 Diagnose unresolved attribute proc-macros 2022-06-15 17:34:13 +02:00
Lukas Wirth
7d51fc4640 Show proc-macro loading errors in unresolved-proc-macro diagnostics 2022-06-15 17:34:01 +02:00
bors
15c63c4119 Auto merge of #12541 - Veykril:vs-reload, r=Veykril
fix: Clear proc-macro changed flag when reloading workspace
2022-06-15 12:29:34 +00:00
Lukas Wirth
664a751f2b fix: Clear proc-macro changed flag when reloading workspace 2022-06-15 14:29:13 +02:00
Hongxu Xu
549c810436 revert hir-def lib.rs 2022-06-15 07:48:34 +08:00
Hongxu Xu
8805a768d4 check if the container is trait and inherit the visibility 2022-06-15 07:47:06 +08:00
Hongxu Xu
070456838d remove inherit_visibility test case in item_tree 2022-06-14 23:24:48 +08:00
Hongxu Xu
ded412d56b implement inherited_visibility in collector 2022-06-14 23:23:15 +08:00
Hongxu Xu
3f60e71a12 remove inherited_visibility in lower.rs 2022-06-14 21:44:07 +08:00
Hongxu Xu
d7eebd9706 add test cases to complete fn generated by macro in pub trait 2022-06-14 21:41:09 +08:00
Lukas Wirth
325ceaef19 fix: Check for the correct proc-macro settings in missing proc-macro diagnostics 2022-06-14 11:00:06 +02:00
Lukas Wirth
6438ef9aa3 internal: Bring back JodChild into flychecking for cancellation 2022-06-13 13:51:10 +02:00
bors
7db73875ac Auto merge of #12519 - Veykril:hover-assoc, r=Veykril
feat: On assoc item name hover, render trait decl docs
2022-06-13 09:58:04 +00:00
Lukas Wirth
9b9c13fc40 feat: On assoc item name hover, render trait decl docs 2022-06-13 11:57:33 +02:00
bors
366bd7242e Auto merge of #12515 - Veykril:rustc-proc-macros, r=Veykril
fix: Pass the build data to rustc_private crates

With this all proc-macros should resolve in rustc now when setting up the build script running command properly.
2022-06-12 17:35:55 +00:00
Lukas Wirth
10e9f47dce fix: Pass the build data to rustc_private crates 2022-06-12 19:29:45 +02:00
Lukas Wirth
0e4eb647f6 More precise proc-macro errors 2022-06-12 18:44:46 +02:00
bors
4f2a67b26f Auto merge of #12513 - Veykril:ty-utils, r=Veykril
internal: Simplify `hir_ty::utils`
2022-06-12 14:08:08 +00:00
Lukas Wirth
9153f17382 internal: Simplify hir_ty::utils 2022-06-12 16:07:08 +02:00
bors
d513f657a3 Auto merge of #12509 - Veykril:ty-utils, r=Veykril
internal: Remove `Generics::type_iter` in favor of `Generics::iter`
2022-06-12 12:40:57 +00:00
Lukas Wirth
7a0ab1358c internal: Remove Generics::type_iter in favor of Generics::iter 2022-06-12 14:40:37 +02:00
bors
eacade27ce Auto merge of #12455 - bitgaoshu:fix_12441, r=flodiebold
fix: #12441 False-positive type-mismatch error with generic future

I think the reason is same with #11815.
add ```Sized``` bound for ```AsyncBlockTypeImplTrait```.
2022-06-12 09:01:00 +00:00
bors
604b1c8409 Auto merge of #12508 - Veykril:req-retry, r=Veykril
fix: Don't respond to cancelled requests when retrying them

Fixes https://github.com/rust-lang/rust-analyzer/issues/12482
2022-06-12 00:56:52 +00:00
Lukas Wirth
ad109f7f0a fix: Don't respond to cancelled requests when retrying them 2022-06-12 02:56:19 +02:00
bors
37b01f9f39 Auto merge of #12504 - rust-lang:Veykril-patch-1, r=Veykril
fix: Fix config patching for callable snippets

Closes https://github.com/rust-lang/rust-analyzer/issues/12498
2022-06-11 11:41:26 +00:00
Lukas Wirth
a7a1a83463
fix: Fix config patching for callable snippets 2022-06-11 13:41:06 +02:00
bors
5b746ec590 Auto merge of #12481 - XFFXFF:add_label_to_loop, r=Veykril
assist: add label to loop

closes: #12392

I changed `'loop` to `'l`, as `cargo check` says `'loop` is an invalid label name.
2022-06-11 11:34:08 +00:00
bors
ba329913fa Auto merge of #12449 - Veykril:version, r=Veykril
Bring the version command output in line with other rust tools

Inspired by how cargo handles it
Fixes https://github.com/rust-lang/rust-analyzer/issues/12280
![image](https://user-images.githubusercontent.com/3757771/171680176-236451ee-2c6c-449f-8aa5-4a047e8cc907.png)
2022-06-10 23:35:38 +00:00
XFFXFF
e29a6780b1 restrict the assist so that it only appears if the cursor is on the loop keyword 2022-06-11 07:11:56 +08:00
XFFXFF
fac4d28012 change 'loop to 'l, as 'loop is not a valid label name 2022-06-11 07:11:56 +08:00
XFFXFF
0121cc1e29 make generated test pass and make tidy happy 2022-06-11 07:11:56 +08:00
XFFXFF
bb62180714 add more tests and some doc 2022-06-11 07:11:56 +08:00
XFFXFF
872536821c Make add_label_to_loop basically work 2022-06-11 07:11:56 +08:00
bors
9ef01d0895 Auto merge of #12490 - yue4u:fix/show-enum-in-fresh-use-tree, r=Veykril
fix: complete non-std enum at the start of `use` completions

close: #12421
2022-06-10 20:33:17 +00:00
bors
7b663a3a4a Auto merge of #12464 - harpsword:fix-inline-variable-mismatched-type, r=Veykril
feat: fix inline variable produce mismatched type

wrap reference for RefExpr initializer to fix #12453
2022-06-10 20:24:06 +00:00
bors
0bbead9fa0 Auto merge of #12473 - yue4u:fix/no-enum-parens-in-use, r=Veykril
fix: avoid adding enum parens in use path

close #12420
2022-06-10 20:03:29 +00:00
bors
e9d3fe0484 Auto merge of #12502 - Veykril:deps, r=Veykril
internal: Bump Dependencies
2022-06-10 19:51:04 +00:00
Lukas Wirth
76ae5434fa internal: Bump Dependencies 2022-06-10 17:30:02 +02:00
bors
f58c26e0ba Auto merge of #12501 - Veykril:dashmap, r=Veykril
internal: Update dashmap and freeze its version
2022-06-10 14:20:46 +00:00
Lukas Wirth
0cf677ab42 internal: Update dashmap and freeze its version 2022-06-10 16:19:52 +02:00
yue4u
2942863709 feat: append :: after 2022-06-09 16:45:46 +09:00
bors
79a4a464b0 Auto merge of #12487 - lukechu10:master, r=lnicola
minor: hide param inlay hint when argument is fn-like macro with similar name

Closes #12486
2022-06-08 14:55:17 +00:00
bors
b967f1797c Auto merge of #12493 - bjorn3:fix_warnings, r=lnicola
Fix a couple of weak warnings found by rust-analyzer itself
2022-06-08 14:46:40 +00:00
Luke Chu
6079eeb1bf Hide param inlay hint when argument is fn-like macro with similar name 2022-06-08 14:37:57 +00:00
bjorn3
c81608c6d2 Fix a couple of weak warnings found by rust-analyzer itself 2022-06-08 14:35:11 +00:00
bjorn3
f9e1ff6846 Add doc comment 2022-06-08 14:31:36 +00:00