Florian Diebold
07d78b67cb
Fix test
2022-06-20 20:34:08 +02:00
Florian Diebold
05ca0a2377
Refactor a bit
2022-06-20 20:21:30 +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
bors
427061da19
Auto merge of #12581 - lnicola:changelog-number, r=lnicola
...
internal: Handle fractional release numbers in changelog naming
2022-06-19 16:00:33 +00:00
bors
eb9b360752
Auto merge of #12584 - Veykril:attr-diag, r=Veykril
...
fix: attribute macros not being properly diagnosed
Closes https://github.com/rust-lang/rust-analyzer/issues/12582
2022-06-18 22:38:04 +00:00
Lukas Wirth
013c6a3f75
fix: attribute macros not being properly diagnosed
2022-06-19 00:37:37 +02:00
Laurențiu Nicola
e48ed5316f
internal: Handle fractional release numbers in changelog naming
2022-06-18 17:00:28 +03: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
bors
b1f9efa65c
Auto merge of #12577 - Veykril:completion, r=Veykril
...
internal: NameRefKind classification is not optional
2022-06-18 06:59:12 +00:00
Lukas Wirth
309ecdd71c
internal: NameRefKind classification is not optional
2022-06-18 08:58:47 +02:00
bors
12dd81092e
Auto merge of #12574 - Veykril:completion, r=Veykril
...
minor: Simplify
2022-06-17 23:15:37 +00:00
Lukas Wirth
0665428b4e
minor: Simplify
2022-06-18 01:15:08 +02:00
bors
69f30964ea
Auto merge of #12573 - Veykril:completion, r=Veykril
...
internal: Split flyimport into its 3 applicable contexts
2022-06-17 22:48:14 +00:00
Lukas Wirth
173bb10a76
internal: Split flyimport into its 3 applicable contexts
2022-06-18 00:47:28 +02:00
bors
09ac44c078
Auto merge of #12570 - Veykril:completion, r=Veykril
...
Only run completion functions if their corresponding context is active
2022-06-17 22:26:50 +00: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
bors
e7a0088b2f
Auto merge of #12565 - Veykril:completion, r=Veykril
...
internal: More completion refactors
2022-06-17 15:32:32 +00: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
bors
bea4ba08e0
Auto merge of #12564 - Veykril:completion, r=Veykril
...
internal: Collapse completion ctx path `qualifier` and `is_absolute_path` into enum
2022-06-17 14:38:44 +00:00
Lukas Wirth
531060f103
internal: Collapse completion ctx path qualifier and is_absolute_path into enum
2022-06-17 16:36:22 +02:00
bors
9c0b7277a6
Auto merge of #12563 - Veykril:completion, r=Veykril
...
internal: Simplify
2022-06-17 14:28:52 +00:00
Lukas Wirth
85363d18e8
Simplify
2022-06-17 16:22:51 +02:00
bors
a69b17be2e
Auto merge of #12562 - Veykril:completion, r=Veykril
...
Split completion context module into definitions and analysis parts
2022-06-17 13:19:45 +00: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
bors
6269137760
Auto merge of #12560 - Veykril:completion, r=Veykril
...
internal: More completions refactoring
This gets rid of the remaining `ImmediateLocation` bits
2022-06-17 13:10:05 +00: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
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
bors
519d7484f3
Auto merge of #12545 - jeremyBanks:shebangs, r=Veykril
...
fix: inserted imports must come after a shebang if present
The current `insert_use` logic adds the first `use` item near the beginning of the file, only skipping past comments and whitespace. However, it does not skip leading [shebang lines](https://en.wikipedia.org/wiki/Shebang_\(Unix\) ). This can produce a syntax error, as shebangs are only accepted (ignored) on the first line of the file.
### Before Insertion (valid syntax)
```rust
#!/usr/bin/env rust
fn main() {}
```
### After Insertion (invalid syntax)
```rust
use foo::bar::Baz;
#!/usr/bin/env rust
fn main() {}
```
Rust analyzer's grammar is already shebang-aware, so this PR just adds that to the array of SyntaxKinds that are skipped past when looking for an insertion location, and adds a corresponding test case.
2022-06-15 20:01:37 +00: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
bors
d39d520a21
Auto merge of #12544 - Veykril:proc-error, r=Veykril
...
Show proc-macro loading errors in unresolved-proc-macro diagnostics
This should help out people to potentially figure out the problem without having to check the logs
2022-06-15 16:21:21 +00: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