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
soruh
f52f5fed11
replace TODO with FIXME
2022-06-15 03:16:59 +02:00
soruh
dd0981e3bc
fix CI
2022-06-15 03:07:42 +02:00
soruh
6a28cccaee
remove dbg
2022-06-15 03:00:43 +02:00
soruh
8cac16b62e
cleanup
2022-06-15 02:59:32 +02:00
soruh
8e3bbaa57b
instanciate_empty_structs
2022-06-15 02:41:28 +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
bjorn3
c6827e2f47
Rustfmt
2022-06-08 14:22:17 +00:00
bjorn3
a07b3103b1
Add proc macro ABI for rustc 1.63
2022-06-08 13:41:10 +00:00
yue4u
55bc693356
fix: show non-std enum in a fresh use tree completion
2022-06-08 20:55:16 +09:00
KOLANICH
b3d2012659
Remove the unneeded destructuring assignment in run
in project-model/src/build_scripts.rs
2022-06-06 14:02:34 +03:00
Lukas Wirth
0be31d945e
fix: Fix trait impl completions using wrong insert position
2022-06-05 20:29:36 +02:00
yue4u
11693dad88
fix: avoid adding enum parens in use
2022-06-06 01:34:01 +09:00
bors
6d3396a492
Auto merge of #12466 - lnicola:worker-thread-stack, r=lnicola
...
Increase worker thread stack and name them
CC #11370
2022-06-05 07:59:42 +00:00
Lukas Wirth
d38b7b88c6
minor: Don't log cancelled diagnostics
2022-06-05 01:38:46 +02:00
Lukas Wirth
fbffe73612
fix: Fix match to if let assist for wildcard pats
2022-06-05 01:02:24 +02:00
Laurențiu Nicola
0b9cd8a468
Increase worker thread stack and name them
2022-06-04 20:48:51 +03:00
Lukas Wirth
62fede212a
Only record build script outputs when the output has been changed
2022-06-04 15:04:56 +02:00
harpsword
061c5ef075
feat: fix inline variable produce mismatched type
...
wrap reference for RefExpr initializer
2022-06-04 17:07:28 +08:00
bors
312913a640
Auto merge of #12461 - Veykril:completions, r=Veykril
...
Move trait_impl completion analysis into CompletionContext
2022-06-03 18:49:37 +00:00
Lukas Wirth
a2a74bf278
Remove some of the unnecessary helpfer functions from CompletionContext
2022-06-03 20:49:25 +02:00
Lukas Wirth
a0c1816e3a
Simplify
2022-06-03 19:55:30 +02:00
Lukas Wirth
98c0578f15
Move trait_impl completion analysis into CompletionContext
2022-06-03 19:49:02 +02:00
bors
d06d0f8774
Auto merge of #12459 - Veykril:completions, r=Veykril
...
internal: Clean up keyword completion handling
https://github.com/rust-lang/rust-analyzer/issues/12144
2022-06-03 15:20:30 +00:00
bors
d0a7ad4a7f
Auto merge of #12457 - Veykril:logging, r=Veykril
...
internal: Don't log default build script outputs
2022-06-03 15:11:02 +00:00
bors
43d9c3f649
Auto merge of #12460 - Veykril:move-guard, r=Veykril
...
minor: Reduce move-guard trigger range
2022-06-03 15:00:26 +00:00
Lukas Wirth
b34e27d25e
minor: Reduce move-guard trigger range
2022-06-03 17:00:03 +02:00
Lukas Wirth
d0e3114441
internal: Don't log default build script outputs
2022-06-03 16:46:16 +02:00
Lukas Wirth
2a60b8452e
Deduplicate
2022-06-03 16:33:37 +02:00
Lukas Wirth
522f66545f
Remove prev-sibling completion machinery
2022-06-03 16:25:37 +02:00
Lukas Wirth
6550a241fb
More precise where keyword completions
2022-06-03 16:11:26 +02:00
Lukas Wirth
c522669f00
Remove dead code
2022-06-03 15:46:17 +02:00
Lukas Wirth
c5dcc77b40
Fix visibility mods not being completed for field defs
2022-06-03 15:42:28 +02:00
Lukas Wirth
519ac81b57
internal: Move most remaining keyword completions to item list completions
2022-06-03 15:15:21 +02:00
bors
58b6d46d5a
Auto merge of #12333 - nolanderc:order-import-assist, r=Veykril
...
Order auto-imports by relevance
Fixes #10337 .
Basically we sort the imports according to how "far away" the imported item is from where we want to import it to. This change makes it so that imports from the current crate are sorted before any third-party crates. Additionally, we make an exception for builtin crates (`std`, `core`, etc.) so that they are sorted before any third-party crates.
There are probably other heuristics that should be added to improve the experience (such as preferring imports that are common elsewhere in the same crate, and ranking crates depending on the dependency graph). However, I think this is a first good step.
PS. This is my first time contributing here, so please be gentle if I have missed something obvious :-)
2022-06-03 07:49:59 +00:00
bors
ea15e1000f
Auto merge of #12452 - iDawer:assist.merge_selected_imports, r=Veykril
...
feature: `Merge imports` assist can merge multiple selected imports.
The selected imports have to have a common prefix in paths.
Select imports or use trees to merge:
```rust
$0use std::fmt::Display;
use std::fmt::Debug;
use std::fmt::Write;$0
```
Apply `Merge imports`:
```rust
use std::fmt::{Display, Debug, Write};
```
Closes #12426
2022-06-03 07:40:34 +00:00
bors
29fae10345
Auto merge of #12451 - TimNN:double-dollar, r=Veykril
...
feat: Support `$$` in macros.
The implementation mirrors what `rustc` currently does [1]. Part of #11952 .
\[1]: 0595ea1d12/compiler/rustc_expand/src/mbe/quoted.rs (L230-L241)
2022-06-03 07:23:48 +00:00
Laurențiu Nicola
7066b8e0ca
Shorten main thread name
2022-06-03 07:27:48 +03:00
bitgaoshu
1a97ab34db
fix : #12441 False-positive type-mismatch error with generic future
2022-06-03 10:47:41 +08:00
Tim Neumann
40bfb29e50
feat: Support $$
in macros.
...
The implementation mirrors what `rustc` currently does [1]. Part of #11952 .
[1]: 0595ea1d12/compiler/rustc_expand/src/mbe/quoted.rs (L230-L241)
2022-06-02 21:48:28 +02:00
iDawer
ea8899a445
Allow merging of multiple selected imports.
...
The selected imports have to have a common prefix in paths.
Before
```rust
$0use std::fmt::Display;
use std::fmt::Debug;$0
```
After
```rust
use std::fmt::{Display, Debug};
```
2022-06-02 23:15:55 +05:00
Lukas Wirth
a2a3ea86ea
Bring the version command output in line with other rust tools
2022-06-02 18:36:02 +02:00
XFFXFF
df67bbdcb3
fix: parsing of ?
opt-out trait bounds
...
thanks to Veykril
2022-06-02 21:30:18 +08:00
bors
2f0814ea35
Auto merge of #12347 - feniljain:fix_extract_module, r=Veykril
...
fix(extract_module) resolving import panics and improve import resolution
- Should solve #11766
- While adding a test case for this issue, I observed another issue:
For this test case:
```rust
mod x {
pub struct Foo;
pub struct Bar;
}
use x::{Bar, Foo};
$0type A = (Foo, Bar);$0
```
extract module should yield this:
```rust
mod x {
pub struct Foo;
pub struct Bar;
}
use x::{};
mod modname {
use super:❌ :Bar;
use super:❌ :Foo;
pub(crate) type A = (Foo, Bar);
}
```
instead it gave:
```rust
mod x {
pub struct Foo;
pub struct Bar;
}
use x::{};
mod modname {
use x::Bar;
use x::Foo;
pub(crate) type A = (Foo, Bar);
}
```
So fixed this problem with second commit
2022-06-02 12:37:17 +00:00
bors
6f7c5589ab
Auto merge of #12443 - Veykril:fmtfix, r=Veykril
...
minor: Fix rustfmt failing on main_loop.rs
2022-06-01 19:23:22 +00:00
Lukas Wirth
343562c54d
minor: Fix rustfmt failing on main_loop.rs
2022-06-01 21:20:54 +02:00
Maan2003
bad931116e
fix(diagnostic): Don't remove diagnostic with empty message
...
Use " " as message if it is empty
2022-06-01 18:38:53 +05:30
bors
4f5c7aafff
Auto merge of #12431 - Veykril:request-retry, r=Veykril
...
fix: Fix completions disappearing when typing two keys in quick succession
With this PR we now retry requests if they get cancelled due to document changes.
This fixes the completions problem we have where completions seem to randomly disappear, see https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Frust-analyzer/topic/Completions.20not.20always.20appearing
Fixes https://github.com/rust-lang/rust-analyzer/issues/10187
Fixes https://github.com/rust-lang/rust-analyzer/issues/7560
Fixes https://github.com/rust-lang/rust-analyzer/issues/12153
2022-06-01 10:18:50 +00:00
Lukas Wirth
d88ae66ed9
Sync handlers cannot be cancelled
2022-06-01 12:18:15 +02:00
Lukas Wirth
e2da967578
fix: Fix completions disappearing when typing two keys in quick succession
2022-06-01 00:20:47 +02:00
bors
e25cbf8584
Auto merge of #12430 - Veykril:completions, r=Veykril
...
minor: Remove unused code
2022-05-31 18:22:41 +00:00
Lukas Wirth
1234d8647f
minor: Remove unused code
2022-05-31 20:21:50 +02:00
Ryo Yoshida
b7a4175cbb
Implement type inference for assignee expressions
2022-06-01 01:28:12 +09:00
Ryo Yoshida
62d6b5a594
Generalize some inference functions for patterns
2022-06-01 01:22:11 +09:00
Ryo Yoshida
c1c867506b
Add Expr::Underscore
2022-06-01 01:21:57 +09:00
bors
c2099fe941
Auto merge of #12336 - bitgaoshu:mismatch, r=flodiebold
...
fix : #12267 type-mismatch when using equals w/ a trait bound
2022-05-31 09:48:54 +00:00
feniljain
25f3e7a33c
fix: float display impl
2022-05-31 10:13:03 +05:30
feniljain
8a1ef52f5c
fix(extract_module): Remove redundancy causing else, and also add import fix loop for names
2022-05-31 09:51:42 +05:30
bors
a5d7ab54f9
Auto merge of #12418 - Veykril:completions, r=Veykril
...
internal: More precise completion filtering with existing item qualifiers
Now we are approaching the more complex cases for filtering completions
2022-05-30 14:05:37 +00:00
Lukas Wirth
0327df224b
More precise completion filtering
2022-05-30 16:01:17 +02:00
Lukas Wirth
ea594c4c44
Use char for trigger character
2022-05-30 14:17:58 +02:00
Lukas Wirth
aced76d0ff
Add implicit static lifetime hints
2022-05-30 13:59:58 +02:00
bors
9ceaff91d3
Auto merge of #12406 - harpsword:fix-add-inlayHints-closures-without-block, r=Veykril
...
fix: add an option to show inlay hint for return type of closures wit…
fix #12321
2022-05-30 11:36:55 +00:00
bors
bd0c2344f2
Auto merge of #12387 - 00nktk:fix-mod-rename, r=Veykril
...
fix(ide-db): correct single-file module rename
Fixes a bug where rust-analyzer would emit `WorkspaceEdit`s with paths to dirs instead of files for the following project layout.
lib.rs
```rust
mod foo;
```
foo.rs
```rust
mod bar {
struct Bar;
}
```
Also fixes emitted paths for modules with mod.rs.
The bug resulted in panic in helix editor when attempting to rename a module.
2022-05-30 11:29:55 +00:00
bors
e4ead8a7c6
Auto merge of #12412 - yue4u:fix/visibility-completion, r=Veykril
...
fix: Retrigger visibility completion after parentheses
close #12390
This PR add `(` to trigger_characters as discussed in original issue.
Some questions:
1. Is lsp's `ctx.trigger_character` from `params.context` is the same as `ctx.original_token` inside actually completions?
1. If not what's the difference?
2. if they are the same, it's unnecessary to pass it down from handler at all.
3. if they are the same, maybe we could parse it from fixture directly instead of using the `check_with_trigger_character` I added.
2. Some completion fixtures written as `($0)` ( https://github.com/rust-lang/rust-analyzer/blob/master/crates/ide-completion/src/tests/fn_param.rs#L105 as an example), If I understand correctly they are not invoked outside tests at all?
1. using `ctx.original_token` directly would break these tests as well as parsing trigger_character from fixture for now.
2. I think it make sense to allow `(` triggering these cases?
3. I hope this line up with #12144
2022-05-30 11:22:10 +00:00
yue4u
1b5f0462ed
fix: visibility completion
2022-05-30 00:06:48 +09:00
Ryo Yoshida
be2fa2b31b
fix overflow during tuple struct type inference
2022-05-29 16:22:33 +09:00
harpsword
55509548e8
fix: add an option to show inlay hint for return type of closures without block
2022-05-28 22:12:30 +08:00
Nikita Podoliako
d98c04aac1
fix(ide-db): correct single-file module rename
2022-05-28 15:07:22 +03:00
Christofer Nolander
8e5b318d99
Cleanup auto-import ordering
...
Addresses issues raised by @Veykril in #12333
2022-05-28 11:32:07 +02:00
bors
6c9fc4fec2
Auto merge of #12402 - Veykril:feat-docs, r=Veykril
...
minor: Freshen up goto feature docs
Fixes https://github.com/rust-lang/rust-analyzer/issues/2541
2022-05-27 13:47:56 +00:00
Lukas Wirth
86576072ab
minor: Freshen up goto feature docs
2022-05-27 15:47:31 +02:00
bors
bd06902f90
Auto merge of #12395 - feniljain:fix_bugs, r=Veykril
...
fix: f32 and f64 representation during lowering
should fix #12380
2022-05-27 12:44:08 +00:00
bors
145bad473d
Auto merge of #12341 - vemoo:exclude_dirs, r=Veykril
...
make `files.excludeDirs` work
There's a small issue because if all projects are excluded, this: 01d412f4d7/crates/rust-analyzer/src/main_loop.rs (L114)
will be shown.
I thought about not showing it if `files.excludeDirs` is set, but that is not necessarily correct.
Fixes #7755
2022-05-27 12:35:48 +00:00
feniljain
1f4870ff1c
fix: f32 and f64 representation during lowering
2022-05-26 20:03:05 +05:30
bors
37c7f3c4cf
Auto merge of #12393 - Veykril:hir-def, r=Veykril
...
internal: Remove `Interned` usage from nameres collector
2022-05-26 11:01:08 +00:00
Lukas Wirth
7913ae69b9
internal: Remove Interned
usage from nameres collector
2022-05-26 12:59:57 +02:00
Amos Wenger
c06c4f9682
Make test pass
2022-05-25 18:31:08 +02:00
Amos Wenger
05563805b1
Add test for #12372 (generate enum variant in different file)
2022-05-25 18:18:08 +02:00
Amos Wenger
89e27ed0b9
Generate variant: insert code in file with enum definition
...
Closes #12372
2022-05-25 16:43:15 +02:00
Lukas Wirth
5410ace1fe
fix: Clear native diagnostics for files when they are deleted
2022-05-25 15:47:41 +02:00
Lukas Wirth
f02c915eb5
internal: Make autoclosing angle brackets configurable, disabled by default
2022-05-25 12:42:07 +02:00
bors
d7c147406e
Auto merge of #12377 - Veykril:logs, r=Veykril
...
minor: log build script invocations
2022-05-24 21:10:32 +00:00
Lukas Wirth
7274a48657
minor: log build script invocations
2022-05-24 22:56:49 +02:00
Lukas Wirth
86d1d9067e
fix: Insert whitespace into trait-impl completions when coming from macros
2022-05-24 22:56:33 +02:00
Lukas Wirth
6f006b7524
Simplify
2022-05-24 21:58:47 +02:00
Lukas Wirth
6a8b8a6039
internal: Refactor our record pat/expr handling in completion context
2022-05-24 13:24:36 +02:00
Lukas Wirth
697ade6f8d
internal: Simplify DotAccess representation in completions
2022-05-24 11:54:50 +02:00
andylizi
e34ae760f0
add test for macro expand formatting
2022-05-24 12:45:58 +08:00
andylizi
ebf8b1a96e
ide: insert whitespaces surrounding _
in macro expansion
2022-05-24 07:54:43 +08:00
bors
402dba8d04
Auto merge of #12360 - Veykril:completion, r=Veykril
...
fix: Fix completions not working after attributes
Closes https://github.com/rust-lang/rust-analyzer/issues/12259
2022-05-23 15:24:10 +00:00
Lukas Wirth
2aa22730f1
fix: Fix completions not working after attributes
2022-05-23 17:22:48 +02:00
Lukas Wirth
9f6d99c6bd
minor: Simplify syntax-highlighting macro checks
2022-05-23 17:03:19 +02:00
bors
db9930b986
Auto merge of #12357 - Veykril:find-ref-macro, r=Veykril
...
fix: When reference searching macro inputs, don't search everything that was downmapped
Fixes https://github.com/rust-lang/rust-analyzer/issues/11668
2022-05-23 14:12:35 +00:00
Lukas Wirth
377c9247e6
fix: When hovering macro inputs, don't show everything that was downmapped
2022-05-23 16:11:36 +02:00
Lukas Wirth
ad537be194
fix: When reference searching macro inputs, don't search everything that was downmapped
2022-05-23 16:09:56 +02:00
bors
238253c22d
Auto merge of #12355 - ruabmbua:fix-inference-pattern-wildcards, r=flodiebold
...
Fix inference when pattern matching a tuple field with a wildcard
This should fix the following issue: https://github.com/rust-lang/rust-analyzer/issues/12331
* Replaced the `err_ty` in `infer_pat()` with a new type variable.
* Had to change the iterator code a bit, to get around multiple mutable borrows of `self` in `infer_pat()`.
Also added a test
* Also added a test
2022-05-23 10:38:19 +00:00
Roland Ruckerbauer
86bb27f1a4
Fix inference when pattern matching a tuple field with a wildcard.
2022-05-23 12:24:54 +02:00
DQ
f3a5475082
Keep the other is
in reload.rs
docs
2022-05-23 10:29:03 +02:00
DQ
914ff6a395
Fix typo in new reload.rs
docs
...
Just skimmed today's changelog and came across the repetition
2022-05-23 09:35:32 +02:00
Brennan Vincent
364dd5ff89
Fix build on OpenBSD (and probably other BSDs too)
...
notify-5.0.0-pre.14 does not build on these systems; this was fixed in
41a74f0e98
, which landed in pre.15.
2022-05-22 17:04:57 -04:00
bors
4b0f9c588d
Auto merge of #12334 - fasterthanlime:gh-11635, r=Veykril
...
Generate enum variant assist
So, this is kind of a weird PR!
I'm a complete newcomer to the `rust-analyzer` codebase, and so I browsed the "good first issue" tag, and found #11635 . Then I found two separate folks had taken stabs at it, most recently `@maartenflippo` — and there had been a review 3 days ago, but no activity in a little while, and the PR needed to be rebased since the crates were renamed from `snake_case` to `kebab-case`.
So to get acquainted with the codebase I typed this PR by hand, looking at the diff in #11995 , and I also added a doc-test (that passes).
I haven't taken into account the comments `@Veykril` left in #11995 , but I don't want to steal any of `@maartenflippo's` thunder! Closing this PR is perfectly fine. Or Maarten could use it as a "restart point"? Or I could finish it up, whichever feels best to everyone.
I think what remains to be done in this PR, at least, is:
* [x] Only disable the "generate function" assist if the name is `PascalCase`
* [x] Only enable the "generate variant" assistant if the name is `PascalCase`
* [x] Simplify with `adt.source()` as mentioned here: https://github.com/rust-lang/rust-analyzer/pull/11995#discussion_r875134175
* [ ] Add more tests for edge cases? Are there cases where simply adding one more indent level than the enum's indent level is not good enough? Some nested trickery I'm not thinking of right now?
Anyway. This PR can go in any direction. You can tell me "no, tackle your own issue!" And I'll go do that and still be happy I got to take a look at rust-analyzer some by doing this. Or you can tell me "okay, now _you_ finish it", and I guess I'll try and finish it :)
Closes #11635
2022-05-22 17:01:26 +00:00
Amos Wenger
ae2c0db67f
Pull text creation into the closure
2022-05-22 18:38:14 +02:00
Amos Wenger
796c4d8a10
Better lowercase/uppercase checks
2022-05-22 18:31:12 +02:00
bors
65a213c9fa
Auto merge of #12281 - lnicola:increase-overflow-depth, r=lnicola
...
Increase defalt chalk overflow depth to match max solver size
TBC:
- #12279 : ok above 480
- ~~#12182~~
- ~~#12095~~
- #11902 : ok above 350
- ~~#11668~~
- #11370 : ok above 450
- #9754 : probably ok above 250 (!), and the code in cause and branch are gone
Closes #12279
Closes #11902
Closes #11370
Closes #9754
2022-05-22 15:14:26 +00:00
Laurențiu Nicola
8b56d42db9
Increase defalt chalk overflow depth to match max solver size
2022-05-22 18:10:38 +03:00
feniljain
89f449b75d
fix(extract_module): import resolution for items of submodules
2022-05-22 17:11:15 +05:30
bors
038a71a201
Auto merge of #12345 - bvanjoi:escape_format_spcifier, r=Veykril
...
feat: escape format specifier(close : #12258 )
solve https://github.com/rust-lang/rust-analyzer/issues/12258
2022-05-22 10:41:31 +00:00
bors
3535a052ce
Auto merge of #12346 - rainy-me:fix/builtin-type-docs-links, r=Veykril
...
fix: special case base url of `BuiltinType` to core
fix #12250
2022-05-22 10:33:43 +00:00
rainy-me
3a380d4b3a
fix: special case base url of BuiltinType
to core
2022-05-22 18:50:40 +09:00
Felicián Németh
f7c963c0f2
onTypeFormatting: don't insert > if another > is there
2022-05-22 10:40:53 +02:00
Felicián Németh
3bb02f2329
feat: Add on-typing handler for left angle
...
Only advertise this feature in the server capabilities when the client
supports SnippetTextEdit.
Close #11398 .
Co-authored-by: unexge <unexge@gmail.com>
2022-05-22 10:40:37 +02:00
Felicián Németh
636d4880c4
internal: Allow OnTypeFormatting to send SnippetTextEdit
...
But continue to send TextEdit only.
2022-05-22 10:39:18 +02:00
bvanjoi
f6b8525b1d
feat: escape format specifier( close : #12258 )
2022-05-22 15:32:24 +08:00
Bernardo Uriarte
1ee8fefcff
take into account excludeDirs when computing linked_projects
2022-05-21 16:18:55 +02:00
Bernardo Uriarte
7009e5ab35
add failing test
2022-05-21 16:11:51 +02:00
feniljain
ddd59b9a9a
fix(extract_module): nearby imports deletion causing panic
2022-05-21 19:13:49 +05:30
bors
01d412f4d7
Auto merge of #12339 - matklad:dead, r=matklad
...
dead code
2022-05-21 12:40:29 +00:00
Aleksey Kladov
7734a8b72f
dead code
2022-05-21 13:39:59 +01:00
Aleksey Kladov
cbdab0e647
internal: document overall approach to reload
2022-05-21 13:11:05 +01:00
bitgaoshu
7c5e97221f
mismatch
2022-05-21 17:26:03 +08:00
Christofer Nolander
068b138c87
Remove unecessary unwrap
2022-05-21 10:25:12 +02:00
Amos Wenger
707a5683b1
Still suggest generating enum methods if the name ref starts with a lowercase letter
2022-05-21 01:43:05 +02:00
Amos Wenger
0ed85beb15
Don't suggest enum variant if name_ref start with ASCII lowercase letter
2022-05-21 01:36:26 +02:00
Amos Wenger
7d716cbeb9
Simplify with adt.source()
2022-05-21 01:32:25 +02:00
Amos Wenger
2347da8c8d
Generate enum variant assist
...
This also disables "generate function" when what we clearly want is to
generate an enum variant.
Co-authored-by: Maarten Flippo <maartenflippo@outlook.com>
2022-05-21 01:18:35 +02:00
Christofer Nolander
aef16300f7
Order auto-imports by relevance
...
This first attempt prefers items that are closer to the module they are
imported in.
2022-05-21 00:07:06 +02:00
Jonas Schievink
33939a3db1
Don't swallow build script errors
2022-05-20 17:28:39 +02:00
bors
2a978e1404
Auto merge of #12328 - Veykril:simplify, r=Veykril
...
minor: Simplify
2022-05-20 15:03:59 +00:00
Lukas Wirth
88e297e47d
minor: Simplify
2022-05-20 16:52:10 +02:00
Jonas Schievink
60a2ab4c67
Rename Expr::Lambda
to Expr::Closure
2022-05-20 15:40:32 +02:00
Jonas Schievink
3e356c1fd3
Clear cargo check
diagnostics when flycheck is turned off
2022-05-20 15:07:55 +02:00
bors
7f226fc912
Auto merge of #12324 - jonas-schievink:rm-attribute, r=jonas-schievink
...
feat: Revert the "Add attribute" assist
Reverts https://github.com/rust-lang/rust-analyzer/pull/12296 , as the added indirection and "assist noise" (the assist has to trigger inside the body of an item to match what the "Add `#[derive]`" does) makes this not really pull its weight over just using attribute completions.
Keeps the changes to "Add getter". `#[must_use]` can be applied using the attribute completions.
2022-05-20 12:57:08 +00:00
Jonas Schievink
e52d463524
Revert the "Add attribute" assist
2022-05-20 14:39:22 +02:00
bors
41388bf81a
Auto merge of #12263 - andylizi:hide-type-hint-closure, r=Veykril
...
feat: hide type inlay hints for initializations of closures
![hide_closure_initialization](https://user-images.githubusercontent.com/12008103/168470158-6cb77b18-068e-4431-a8b5-e2b22d50d263.gif )
This PR adds an option to hide the inlay hints for `let IDENT_PAT = CLOSURE_EXPR;`, which is a somewhat common coding pattern. Currently the inlay hints for the assigned variable and the closure expression itself are both displayed, making it rather repetitive.
In order to be consistent with closure return type hints, only closures with block bodies will be hid by this option.
Personally I'd feel comfortable making it always enabled (or at least when closure return type hints are enabled), but considering the precedent set in #10761 , I introduced an off-by-default option for this.
changelog feature: option to hide type inlay hints for initializations of closures
2022-05-20 12:35:36 +00:00
bors
f5229cebb2
Auto merge of #12301 - harpsword:fix_for_crlf_cargo_range_map, r=jonas-schievink
...
fix: calculate correct postion for Dos line ending in mapping rustc range to ls…
fix #12293
2022-05-20 12:15:22 +00:00
andylizi
2b1c1a934c
feat: hide type inlay hints for initializations of closures
2022-05-20 17:42:56 +08:00
NotWearingPants
641b78a162
hide closure ret hints if ret type is specified
...
fixes #12319
2022-05-20 02:35:37 +03:00
Jonas Schievink
52ff863abc
Teach Callable
about closures properly
2022-05-19 18:53:08 +02:00
bors
eba26af9f1
Auto merge of #12314 - jonas-schievink:proc-macro-load, r=jonas-schievink
...
minor: simplify
2022-05-19 14:50:08 +00:00
bors
46b5483055
Auto merge of #12313 - equinox:typo-fix, r=lnicola
...
Removed duplicate 'to' in `cachePriming.numThreads` option description
One 'to' too many!
2022-05-19 14:22:09 +00:00
Equinox
7197042ac4
remove duplicate 'to' in cachePriming.numThreads
option description
2022-05-20 02:05:48 +12:00
bors
57861bd99e
Auto merge of #12311 - Veykril:inlay-hints-tips, r=Veykril
...
internal: Improve inlay hint tooltips
2022-05-19 13:45:05 +00:00
Lukas Wirth
9ebb55d354
Hide more unnecessary parameter hints for constructors
2022-05-19 15:44:52 +02:00
Jonas Schievink
b2779111b4
simplify
2022-05-19 15:29:35 +02:00
Lukas Wirth
5fe28441b8
Update test fixtures
2022-05-19 15:20:45 +02:00
Lukas Wirth
b08bbd7be0
Enable hovering function parameter inlay hints
2022-05-19 14:32:40 +02:00
Lukas Wirth
74230e26ff
internal: Improve inlay hint tooltips
2022-05-19 13:38:37 +02:00
bors
4f7d1a9d69
Auto merge of #12309 - Veykril:completion, r=Veykril
...
fix: Fix incorrect expected type in completions for trailing match arms
Fixes https://github.com/rust-lang/rust-analyzer/issues/12264
2022-05-19 10:34:36 +00:00
Lukas Wirth
018975b041
fix: Fix incorrect expected type in completions for match arms
2022-05-19 12:33:25 +02:00
Jonas Schievink
5279cdbefb
Include self type in generated getter/setter docs
2022-05-18 19:22:04 +02:00
Jonas Schievink
93b62dbe85
Improve docs generation assist
2022-05-18 18:05:21 +02:00
harpsword
dfae0a12ef
fix: calculate right range for Dos line ending in mapping rustc range to lsp range
2022-05-18 21:08:18 +08:00
bors
187bd7d48a
Auto merge of #12130 - weirane:let-else-let-match, r=weirane
...
Turn let-else statements into let and match
Fixes #11906 .
2022-05-17 19:01:18 +00:00
weirane
4a0821f332
Simplify const reference check
...
Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2022-05-17 11:43:53 -07:00
Jonas Schievink
cb135ae71b
Add a "Add attribute" assist
2022-05-17 20:28:25 +02:00
Lukas Wirth
58a241134c
Update test output
2022-05-17 14:58:26 +02:00
Lukas Wirth
21f37a6d9e
Allow inlay hint tooltips to trigger hovers
2022-05-17 14:46:43 +02:00