Commit graph

18231 commits

Author SHA1 Message Date
Lukas Wirth f6cb42fdb8 Restrict completions inside visibility modifiers 2021-07-20 18:37:52 +02:00
bors[bot] ea105f9396
Merge #9619
9619: Support GATs for associated type arg parsing r=Veykril a=Veykril

Fixes #9602

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-18 09:10:56 +00:00
Lukas Wirth e7aa37c20a Support GATs for associated type arg parsing 2021-07-18 11:08:43 +02:00
bors[bot] 024bda665a
Merge #9624
9624: minor: Fix `AbsPath::ends_with` r=lnicola a=lnicola

bors r+

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-07-18 07:26:05 +00:00
Laurențiu Nicola a9df3f858a Fix AbsPath::ends_with 2021-07-18 10:25:14 +03:00
bors[bot] 8da560264e
Merge #9623
9623: internal: make it clearer where IO happens r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-07-17 21:16:43 +00:00
Aleksey Kladov 8f3335f5fb internal: make it clearer where IO happens 2021-07-17 23:56:50 +03:00
bors[bot] 398ae3e67f
Merge #9622
9622: feat: improve parser error recovery for function parameters r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-07-17 19:41:42 +00:00
Aleksey Kladov 15f11dce4a feat: improve parser error recovery for function parameters 2021-07-17 22:41:04 +03:00
bors[bot] 610ecc9a7e
Merge #9620
9620: internal: don't depend on cwd r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-07-17 15:14:02 +00:00
Aleksey Kladov 8d8c26e6f5 internal: a bit more of cwd safety for flycheck 2021-07-17 18:13:35 +03:00
bors[bot] 0fb1c27b13
Merge #9621
9621: Remove outdated "(not yet released)" hint r=lnicola a=cakebaker

Neovim 0.5 has been released recently (see http://neovim.io/news/2021/07), hence the "(not yet released)" hint is no longer needed.

Co-authored-by: Daniel Hofstetter <daniel.hofstetter@42dh.com>
2021-07-17 15:04:55 +00:00
Daniel Hofstetter 8470c020bc
Remove outdated "(not yet released)" hint
Neovim 0.5 has been released recently (see http://neovim.io/news/2021/07), hence the "(not yet released)" hint is no longer needed.
2021-07-17 16:56:26 +02:00
Aleksey Kladov 8df38aa797 internal: make sure that proc macro machinery doesn't depend on cwd 2021-07-17 17:55:16 +03:00
Aleksey Kladov 9318c643f1 internal: make it easier to isolate IO 2021-07-17 17:55:16 +03:00
bors[bot] a2f83c956e
Merge #9614
9614: Parse input expressions for dbg! invocations in remove_dbg r=Veykril a=Veykril

Instead of inspecting the input tokentree manually, parse the input as `,` delimited expressions instead and act on that. This simplifies the assist quite a bit.

Fixes #8455

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-16 13:48:23 +00:00
Lukas Wirth c5bcd56433 Cleanup tests 2021-07-16 15:47:59 +02:00
Lukas Wirth da00208ab9 Parse input expressions in for dbg! in remove_dbg 2021-07-16 15:20:50 +02:00
bors[bot] ed83b243aa
Merge #9611
9611: minor: Explicitly connect an ambiguous import path case logic with its test r=SomeoneToIgnore a=SomeoneToIgnore

Follows up https://github.com/rust-analyzer/rust-analyzer/pull/8820/

Co-authored-by: Kirill Bulatov <mail4score@gmail.com>
2021-07-15 21:42:47 +00:00
Kirill Bulatov 8a5b24eb7e Explicitly connect an ambiguous import path case logic with the test on it 2021-07-16 00:41:00 +03:00
bors[bot] 2877707677
Merge #9608
9608: minor: Add regression test fo #7222 r=Veykril a=Veykril

Closes #7222
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-15 20:24:22 +00:00
Lukas Wirth efc96b2c60 Add regression test fo #7222 2021-07-15 22:23:34 +02:00
bors[bot] f39a250df6
Merge #9607
9607: minor: Simplify r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-15 19:29:28 +00:00
Lukas Wirth 4450365ec8 Simplify 2021-07-15 21:28:30 +02:00
bors[bot] c18cba78c8
Merge #9605
9605: internal: Folding ranges respect item visibilities r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-15 15:54:55 +00:00
Lukas Wirth ed73460971 Folding ranges respect item visibilities 2021-07-15 17:44:23 +02:00
Lukas Wirth efea07f31c Add nested region folding test 2021-07-15 17:02:45 +02:00
bors[bot] e67cd766f7
Merge #9604
9604: fix: Don't fold consecutive modules with item lists r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-15 14:36:22 +00:00
Lukas Wirth 658514d378 Don't fold consecutive modules with item lists 2021-07-15 16:35:31 +02:00
bors[bot] f0da190f17
Merge #9603
9603: internal: Move attribute completion tests r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-15 14:27:57 +00:00
Lukas Wirth 317b0c2e6d Move attribute completion tests 2021-07-15 16:27:01 +02:00
bors[bot] 190f37afab
Merge #9600
9600: fix: Single-line and nested blocks in the `unwrap_block` assist r=Veykril a=patrick-gu

Fixes #8411

Rework the system for stripping whitespace and braces in the unwrap_block assist to allow correct unwrapping of blocks such as:
```rust
{ $0 0 }
```
into
```rust
0
```

and nested blocks, such as:
```rust
$0{
    {
        3
    }
}
```
into
```rust
{
    3
}
```

This is done by creating the `update_expr_string_with_pat` function (along with `update_expr_string` and `update_expr_string_without_newline`), which strips whitespace and braces in a way that ensures that only whitespace and a maximum of one brace are removed from the start and end of the expression string.

I have also created several tests to ensure that this functionality works correctly.

Co-authored-by: patrick-gu <55641350+patrick-gu@users.noreply.github.com>
2021-07-15 00:45:55 +00:00
bors[bot] 95d85336df
Merge #9595
9595: Show test mod runnable in outline modules r=Veykril a=Veykril

This shows a runnable inside outline test modules at the top of its file:
![image](https://user-images.githubusercontent.com/3757771/125494747-169c9238-3faa-4eed-9700-90bd730b4e3c.png)


Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-15 00:20:44 +00:00
patrick-gu 6c591a9275 fix: Single-line and nested blocks in unwrap_block
Rework the system for stripping whitespace and braces in the
unwrap_block assist to allow correct unwrapping of `{$0 { 0 } }`
2021-07-14 12:02:38 -07:00
bors[bot] ade9115864
Merge #9599
9599: Complete true and false keywords r=Veykril a=fabledpig

Closes #9521.

Co-authored-by: Levente Gyozo Lenart <leviiibog@gmail.com>
2021-07-14 16:29:25 +00:00
Levente Gyozo Lenart a3f0197454 Update tests 2021-07-14 18:20:01 +02:00
Levente Gyozo Lenart a0bc236adf Add true and false as completion suggestions when expecting an expression 2021-07-14 18:19:47 +02:00
Lukas Wirth d837a5d5a7 Show test mod runnable in outline modules 2021-07-14 11:30:51 +02:00
bors[bot] 111d0798d6
Merge #9597
9597: Use Type::walk for goto_type_definition r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-13 23:43:01 +00:00
Lukas Wirth 12fe48c04d Use Type::walk for goto_type_definition 2021-07-14 01:42:30 +02:00
bors[bot] 9bd6836513
Merge #9596
9596: Return type arguments in goto_type_definition result  r=Veykril a=Veykril

Fixes #9586
bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-13 17:25:00 +00:00
Lukas Wirth 796988a269 Return type arguments in goto_type_definition result 2021-07-13 19:24:29 +02:00
bors[bot] d771a6aaaa
Merge #9594
9594: Assign mutable semantic token modifier to assignment operators r=Veykril a=Veykril

Fixes https://github.com/rust-analyzer/rust-analyzer/issues/9578

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-13 16:57:19 +00:00
Lukas Wirth d1256a3709 Assign mutable semantic token modifier to assignment operators 2021-07-13 18:32:02 +02:00
bors[bot] bce653640b
Merge #9592
9592: internal: Split main highlighting function up into a few subfunctions  r=Veykril a=Veykril

bors r+

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
2021-07-13 16:30:52 +00:00
Lukas Wirth b3337c26db Split main highlighting function up into a few subfunctions 2021-07-13 18:29:57 +02:00
bors[bot] 098a8e7b2f
Merge #9588
9588: minor: make sure that project_root works correctly r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2021-07-13 12:02:52 +00:00
Aleksey Kladov cd6df6935f minor: make sure that project_root works correctly 2021-07-13 15:02:29 +03:00
bors[bot] f6896f8356
Merge #9585
9585: Rename the old server before update r=matklad a=lnicola

Kinda' fixes #6602

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2021-07-13 10:43:01 +00:00
bors[bot] 62622c6940
Merge #9550
9550: Proc macro multi abi proof of concept r=matklad a=alexjg

#8925 was irritating me so I thought I would have a bash at fixing it. What I've done here is copy the `crates/proc_macro_srv/src/proc_macro` code (which is copied from `<RUST>/library/proc_macro`) to `crates/proc_macro_srv/src/proc_macro_nightly` and the modified the nightly version to include the changes from https://github.com/rust-analyzer/rust-analyzer/pull/9047 and aeb7b183a2

This gives us the code to support both stable and nightly ABIs. Then we use the `proc_macro_api::version::read_dylib_info` to determine which version of the ABI to load when creating a `ProcMacroLibraryLibLoading` (which is now an enum). 

This seems to work for me.  The code could be cleaned up but I wanted to see if the approach makes sense before I spend more time on it.

I've split the change into two commits, the first is just copying and modifying the `proc_macro` crate, the second contains most of the interesting work around figuring out which ABI to use.

Co-authored-by: Alex Good <alex@memoryandthought.me>
Co-authored-by: alexjg <alex@memoryandthought.me>
2021-07-13 10:35:20 +00:00