feniljain
98125b9f95
fix: make custom expr prefix completions to understand refs
2022-10-30 15:02:17 +05:30
bors
a0ab61fb6c
Auto merge of #13358 - btwotwo:feature/env-vars-autocompletion, r=Veykril
...
feat: Autocomplete Cargo-defined env vars in `env!` and `option_env!` (#12448 )
Closes #12448
Important to know:
- Variables are taken from https://doc.rust-lang.org/cargo/reference/environment-variables.html and hardcoded as a const array.
- For the sake of simplicity I didn't include the autocompletion of `CARGO_BIN_EXE_<name>` and `OUT_DIR` since it would require information about build.rs and binary name. If somebody knows an easy way of obtaining them I can add those vars as well :)
2022-10-11 18:45:31 +00:00
btwotwo
2b2b9f8c73
Formatting
2022-10-11 19:53:22 +02:00
btwotwo
b5e87ac111
Fix formatting for cargo vars list
2022-10-11 19:29:09 +02:00
btwotwo
a807cc3afb
Rename get_outer_macro
to macro_call_for_string_token
2022-10-11 19:28:42 +02:00
btwotwo
3c39668ca4
Remove extra parameter, access Db through semantics
2022-10-11 19:23:41 +02:00
bors
d23537394e
Auto merge of #13386 - Veykril:completions-ref, r=Veykril
...
Refactor completions expansion
Depends on https://github.com/rust-lang/rust-analyzer/pull/13384
Diff is unfortunately massive as I changed the functions in the analysis module from associated ones to standalone (unfortunately without an extra commit)
2022-10-10 14:05:38 +00:00
Lukas Wirth
f3ae5e56fb
Refactor completions expansion
2022-10-10 15:45:24 +02:00
Lukas Wirth
63ed71bd30
Honor cfg attributes on params when lowering their patterns
2022-10-10 09:47:09 +02:00
btwotwo
3732d159b2
Pass context to env vars completion
2022-10-06 21:35:12 +02:00
btwotwo
e2d3c1506f
Restrict auto-completion for only built-in macros
2022-10-06 21:35:01 +02:00
btwotwo
8a92910f97
Formatting
2022-10-06 16:53:17 +02:00
btwotwo
c660a5ce34
Remove unnecessary dereference
2022-10-06 16:42:31 +02:00
btwotwo
55c5014b76
Replace if with option, add detail for each env variable completion
2022-10-06 16:32:21 +02:00
btwotwo
bc7080884c
Add tests for env var completion
2022-10-06 16:32:20 +02:00
btwotwo
ddf68ea7c3
Add const list of cargo-defined env variables with descriptions
2022-10-06 16:32:20 +02:00
btwotwo
07621ce096
Use expanded version of text for env var completion
2022-10-06 16:32:19 +02:00
btwotwo
75f4c54d8c
Add stub for cargo environment variables auto completion
2022-10-06 16:32:19 +02:00
Lukas Wirth
bfd5f00bfc
Fix trait impl item completions using macro file text ranges
2022-10-01 15:34:45 +02:00
Lukas Wirth
ad17ba12d1
Complete variants and assoc items in path pattern through type aliases
2022-09-16 16:11:58 +02:00
bors
125d43cb2c
Auto merge of #13227 - Veykril:core-pref, r=Veykril
...
Restructure `find_path` into a separate functions for modules and non-module items
Follow up to https://github.com/rust-lang/rust-analyzer/pull/13212
Also renames `prefer_core` imports config to `prefer_no_std` and changes the behavior of no_std path searching by preferring `core` paths `over` alloc
This PR turned into a slight rewrite, so it unfortunately does a few more things that I initially planned to (including a bug fix for enum variant paths)
2022-09-13 13:16:57 +00:00
Lukas Wirth
a8ecaa1979
Restructure find_path
into a separate functions for modules and non-module items
...
Also renames `prefer_core` imports config to `prefer_no_std` and changes the behavior of no_std path searching by preferring `core` paths `over` alloc
2022-09-13 15:15:27 +02:00
bors
f64c95600c
Auto merge of #13216 - DesmondWillowbrook:move_format_string_arg, r=DesmondWillowbrook
...
New assist: move_format_string_arg
The name might need some improving.
```rust
fn main() {
print!("{x + 1}");
}
```
to
```rust
fn main() {
print!("{}"$0, x + 1);
}
```
fixes #13180
ref to #5988 for similar work
* extracted `format_like`'s parser to it's own module in `ide-db`
* reworked the parser's API to be more direct
* added assist to extract expressions in format args
2022-09-12 15:50:42 +00:00
bors
352a5b8625
Auto merge of #13212 - Veykril:no-std-config, r=Veykril
...
Add config to unconditionally prefer core imports over std
Fixes https://github.com/rust-lang/rust-analyzer/issues/12979
2022-09-12 11:51:31 +00:00
Kartavya Vashishtha
cc7200891b
new lint: move_format_string_arg
...
The name might need some improving.
extract format_like's parser to it's own module in ide-db
reworked the parser's API to be more direct
added assist to extract expressions in format args
2022-09-10 20:13:46 +05:30
Kartavya Vashishtha
2584d48508
wip
2022-09-10 20:13:46 +05:30
Lukas Wirth
7d19971666
Add config to unconditionally prefer core imports over std
...
Fixes https://github.com/rust-lang/rust-analyzer/issues/12979
2022-09-09 20:04:56 +02:00
Peh
bd3feea8bc
fix: removed swap file
2022-09-08 22:44:10 +01:00
Peh
c7fefd5223
fix: add semicolon completion to mod
2022-09-08 22:37:31 +01:00
austaras
748567cba5
complete full struct in enum varaint
2022-09-05 03:36:14 +08:00
Aleksey Kladov
d7ef3f51ec
fix: correct broken logic for return complition
...
It seems that we've accidentally deleted the tests here couple of years
ago, and then fairly recently made a typo during refactor as well.
Reinstall tests, with coverage marks this time :-)
2022-09-04 18:12:55 +01:00
Lukas Wirth
6c5d15800e
fix: Fix reference autocompletions using incorrect offsets in macro inputs
...
Fixes https://github.com/rust-lang/rust-analyzer/issues/13035
2022-08-23 14:29:59 +02:00
bors
1da9156b0d
Auto merge of #12982 - jridgewell:into_future, r=Veykril
...
Implement IntoFuture type inference
One of my projects is using [IntoFuture](https://doc.rust-lang.org/std/future/trait.IntoFuture.html ) to make our async code a little less verbose. However, rust-analyzer can't infer the output type of an await expression if the value uses `IntoFuture` to convert into another type. So we're getting `{unknown}` types everywhere since switching.
`foo.await` itself [desugars](e4417cf020/compiler/rustc_ast_lowering/src/expr.rs (L644-L658)
) into a `match into_future(foo) {}`, with every `Future` impl getting a [default](e4417cf020/library/core/src/future/into_future.rs (L131-L139)
) `IntoFuture` implementation. I'm not sure if we want to disable the old `future_trait` paths, since this only recently [stabilize](https://github.com/rust-lang/rust/pull/98718 ).
2022-08-18 07:37:47 +00:00
Dezhi Wu
23747419ca
fix: a bunch of typos
...
This PR will fix some typos detected by [typos].
There are also some other typos in the function names, variable names, and file
names, which I leave as they are. I'm more certain that typos in comments
should be fixed.
[typos]: https://github.com/crate-ci/typos
2022-08-17 21:44:58 +08:00
Justin Ridgewell
cebf95718c
Find IntoFuture::IntoFuture's poll method
2022-08-16 17:53:10 -04:00
yue4u
91358bd937
fix: format literal lookup
2022-08-16 01:24:21 +09:00
Ryo Yoshida
018266a7ff
Make ModPath
display escaped path
2022-08-11 03:41:10 +09:00
Ryo Yoshida
8fe73a2240
Make tests pass
2022-08-11 01:16:35 +09:00
Ryo Yoshida
4322cf7f5b
Remove EscapedName
2022-08-11 01:11:18 +09:00
Justin Ridgewell
dc3219bb11
Suggest .await
when type impls IntoFuture
2022-08-09 16:39:14 -04:00
Lukas Wirth
b3ac58dfb8
Add some more cov_mark
s
2022-08-09 18:08:05 +02:00
Lukas Wirth
8c9359b072
Fix pattern field completions not working for unions
2022-08-09 17:53:16 +02:00
Justin Ridgewell
5810c8188a
Implement IntoFuture type inference
2022-08-08 21:05:56 -04:00
cynecx
902fd6ddcd
fix: complete path of existing record expr
2022-07-29 17:24:05 +02:00
Laurențiu Nicola
11ef494b37
Be more explicit when filtering built-in completions
2022-07-28 21:45:47 +03:00
Lukas Wirth
f867ddc621
fix: Order ItemScope::entries results
2022-07-28 19:28:56 +02:00
Lukas Wirth
ce7541260d
fix: Don't complete marker traits in expression position
2022-07-28 17:50:49 +02:00
Lukas Wirth
74abd44a26
fix: Do completions in path qualifier position
2022-07-28 17:09:31 +02:00
Lukas Wirth
7c59d7c75c
fix: Fix pattern completions adding unnecessary braces
2022-07-28 15:47:46 +02:00
Lukas Wirth
e782e59d3d
fix: Calculate completions after type anchors
2022-07-28 10:06:36 +02:00
bors
b4d652aa40
Auto merge of #12830 - hi-rustin:rustin-patch-issue-12717-fix, r=Veykril
...
Find original ast node before compute ref match
ref https://github.com/rust-lang/rust-analyzer/issues/12717
2022-07-27 12:31:26 +00:00
hi-rustin
349dfc7e95
Find original ast node before compute ref match in fn render
...
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-07-27 20:18:00 +08:00
Lukas Wirth
1f8daa180f
fix: Honor ref expressions for compute_ref_match completions
2022-07-27 13:48:26 +02:00
Lukas Wirth
aa1491ecde
Record derive helper attributes, resolve them in IDE layer
2022-07-26 09:26:51 +02:00
Dorian Scheidt
77acb5c162
fix: Autocomplete for struct fields includes receiver
...
fixes #12857
2022-07-24 09:07:43 -05:00
Dorian Scheidt
13c83f90ac
fix: Don't add braces to 'if' completion in match guard position
...
When the cursor is in a match arm, but before the fat arrow (=>) token, don't
add braces when autocompleting "if".
fixes #12823
2022-07-23 12:25:02 -05:00
Amos Wenger
7e285e1ef5
Run cargo fmt
2022-07-20 15:06:15 +02:00
Amos Wenger
816f7fe12a
Run cargo fix --edition-idioms
2022-07-20 15:02:08 +02:00
Amos Wenger
23d25a3094
Enable extra warnings required by rust-lang/rust
2022-07-20 15:00:17 +02:00
bors
f3e9b38e26
Auto merge of #12646 - lowr:fix/11897, r=lowr
...
fix: escape receiver texts in completion
This PR fixes #11897 by escaping '\\' and '$' in the text of the receiver position expression. See [here](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#snippet_syntax ) for the specification of the snippet syntax (especially [this section](https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#grammar ) discusses escaping).
Although not all occurrences of '\\' and '$' have to be replaced, I chose to replace all as that's simpler and easier to understand. There *are* more clever ways to implement it, but I thought they were premature optimization for the time being (maybe I should put FIXME notes?).
2022-07-20 10:51:31 +00:00
Ryo Yoshida
cfc52adc65
Add comments
2022-07-20 19:11:14 +09:00
hi-rustin
15016bc09f
Find original as node before compute ref match
...
Signed-off-by: hi-rustin <rustin.liu@gmail.com>
2022-07-18 23:24:19 +08:00
iDawer
a0fd58bbbe
Check for local IDs belong to same definition
2022-07-17 11:43:08 +05:00
bors
96481b7786
Auto merge of #12773 - Veykril:self-compl, r=Veykril
...
fix: Improve self param completion applicability
Fixes https://github.com/rust-lang/rust-analyzer/issues/9522
2022-07-16 10:28:52 +00:00
Lukas Wirth
b96f8f18b0
fix: Improve self param completion applicability
2022-07-16 12:28:41 +02:00
Lukas Wirth
7ff6c36716
fix: Don't show qualified path completions for private items
2022-07-15 13:30:43 +02:00
bors
5af3ef527c
Auto merge of #12735 - feniljain:fix-completions, r=feniljain
...
fix(completion): `super::` completion at crate root and module depth aware
- should close #12439
- Suggest super according to the depth in tree
2022-07-14 11:53:29 +00:00
feniljain
4cbde4ed8f
fix(completion): super::
completion at crate root and module depth
...
aware
2022-07-14 17:07:43 +05:30
TonalidadeHidrica
e3bde579c4
Fix obsolete completion.snippets
config
2022-07-11 17:00:40 +09:00
TonalidadeHidrica
eaebead296
Fix config keys regarding imports in docs
2022-07-11 15:43:25 +09:00
Jonas Schievink
6c6ae965ba
Update remaining GitHub URLs
2022-07-08 15:44:49 +02:00
Hongxu Xu
3248601a03
fix default type param value position
2022-07-07 07:28:55 +08:00
Hongxu Xu
0360ed53cf
check arg_idx >= n_params only if arg_idx >= n_required_params
2022-07-07 00:54:46 +08:00
Hongxu Xu
75fb3de310
Handle generic args per arg index
...
Add more test cases for generic args
2022-07-07 00:45:22 +08:00
Hongxu Xu
0f2eba54db
Show only assoc type args in the correct arg pos
2022-07-06 22:58:27 +08:00
Hongxu Xu
441e659aa1
Complete associated type only in trait generic arg
...
Fix tidy check does not work for marks in multiline
2022-07-05 21:48:28 +08:00
bors
d101439c77
Auto merge of #12627 - yue4u:fix/struct-variant-patterns, r=Veykril
...
fix: complete enum variants as patterns in pattern path
close #12593
2022-07-02 17:18:24 +00:00
bors
d4b79ad77b
Auto merge of #12678 - Veykril:flyimport, r=Veykril
...
fix: Trigger flyimport completions in item lists again
Fixes https://github.com/rust-lang/rust-analyzer/issues/12656
2022-07-02 14:20:36 +00:00
Lukas Wirth
cd42b20ce3
fix: Trigger flyimport completions in item lists again
2022-07-02 16:20:26 +02:00
yue4u
ea7ea7079c
fix: escape for enum variant
2022-07-02 23:17:29 +09:00
yue4u
622b516c74
fix: variants rendering in pattern path
2022-07-02 20:31:24 +09:00
bors
994f3cf74d
Auto merge of #12636 - xuhongxu96:fix-12148, r=Veykril
...
complete raw identifier with "r#" prefix
Fix #12148
Escape Names and Paths used in `insert_text`/`insert_snippet` while rendering the completion items.
2022-07-01 14:55:51 +00:00
Lukas Wirth
531e152390
fix: Simplify macro statement expansion handling
2022-07-01 14:49:30 +02:00
Ryo Yoshida
80cc0ef1bc
Fix typo
2022-06-27 23:20:26 +09:00
Ryo Yoshida
393a18b8ce
fix: escape receiver texts in format string completion
2022-06-27 23:20:23 +09:00
Ryo Yoshida
491e6eaf9e
fix: escape ${receiver} when completing with custom snippets
2022-06-27 23:20:17 +09:00
bors
9eaf96c9ea
Auto merge of #12643 - Veykril:macro-compl, r=Veykril
...
fix: Fix completions for locals not working properly inside macro calls
2022-06-27 12:40:46 +00:00
Lukas Wirth
bdbffdd463
fix: Fix completions for locals not working properly inside macro calls
2022-06-27 14:39:44 +02:00
bors
4c3954682d
Auto merge of #12635 - antogilbert:tgt_feat, r=Veykril
...
Correct target_feature completion
I changed the `target_feature` to match the description given in #12616 .
2022-06-27 12:28:36 +00:00
Manas
7f1fac7c26
fix: deduplicate cfg completions
...
cfg completions are duplicated if they are set with multiple values.
This patch deduplicates them.
2022-06-27 16:17:06 +05:30
Antonello Palazzi
bef89e95e7
Udate unit tests
2022-06-27 09:04:42 +01:00
Hongxu Xu
f536766efb
complete raw identifier with "r#" prefix
2022-06-26 14:45:30 +08:00
Antonello Palazzi
e4e2a46773
Correct target_feature completion
2022-06-26 00:50:41 +01:00
yue4u
472ae16bfb
fix: completes non exhaustive variant within the defining crate
2022-06-24 00:00:51 +09:00
Lukas Wirth
7a0774defa
internal: Simplify some completions
2022-06-20 21:55:33 +02:00
Lukas Wirth
8b078986dc
Reimplement auto-ref completions for fields
2022-06-20 20:22:51 +02:00
Lukas Wirth
46d22719fc
Remove pattern rendering hack
2022-06-20 20:16:40 +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