Commit Graph

10102 Commits

Author SHA1 Message Date
bors[bot]
3232fd5179
Merge #4220 #4240
4220: Introduce LowerCtx r=matklad a=edwin0cheng

This PR introduces `LowerCtx` for path lowering. 

After this PR, there are only 2 places remains for using deprecated `Path::from_ast`, which is related to `AstTransform` I am not familiar. I would like to change these in another PR by others ;)

related disscusiion:  https://rust-lang.zulipchat.com/#narrow/stream/185405-t-compiler.2Fwg-rls-2.2E0/topic/Path.3A.3Afrom_src

And also fixed part of https://github.com/rust-analyzer/rust-analyzer/issues/4176#issuecomment-620672930

4240: Bump deps r=matklad a=lnicola



Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-05-01 20:16:25 +00:00
bors[bot]
d79a699f8e
Merge #4236
4236: Document Gnome Builder support r=matklad a=lnicola

Closes #3758.

CC @gwutz

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-05-01 20:09:12 +00:00
bors[bot]
8d02b24b25
Merge #4244
4244: Show unsafe trait in hover r=matklad a=DianaNites

Following on #2450 and #4210, for traits.
`unsafe` is the only qualifier they can have, though.

Co-authored-by: Diana <5275194+DianaNites@users.noreply.github.com>
2020-05-01 19:45:48 +00:00
bors[bot]
21588e15df
Merge #4246
4246: Validate uses of self and super r=matklad a=djrenren

This change follows on the validation of the `crate` keyword in paths. It verifies the following things:

`super`:
 - May only be preceded by other `super` segments
 - If in a `UseItem` then all semantically preceding paths also consist only of `super`

`self`
 - May only be the start of a path


Just a note, a couple times while working on this I found myself really wanting a Visitor of some sort so that I could traverse descendants while skipping sub-trees that are unimportant. Iterators don't really work for this, so as you can see I reached for recursion. Considering paths are generally small a fancy debounced visitor probably isn't important but figured I'd say something in case we had something like this lying around and I wasn't using it.

Co-authored-by: John Renner <john@jrenner.net>
2020-05-01 19:24:25 +00:00
bors[bot]
302777f004
Merge #4248
4248: Fix Typos on guide.md r=matklad a=lonesometraveler



Co-authored-by: KENTARO OKUDA <lonesometraveler@mac.com>
2020-05-01 19:04:56 +00:00
bors[bot]
26079c7f2c
Merge #4167
4167: Filter out code actions if unsupported by the client and advertise our capabilities r=matklad a=kjeremy

This PR does three things:
1. If the client does not support `CodeActionKind` this will filter the results and only send `Command[]` back.
2. Correctly advertises to the client that the server supports `CodeActionKind`. This may cause clients to not request code actions if they are checking for the provider to be `true` (or implement LSP < 3.8) in the caps but I will fix that in a followup PR.
3. Marks most CodeActions as <strike>"refactor" so that they show up in the menu in vscode.</strike>`""`.

Part of #144
#4147 
#2833  

Co-authored-by: kjeremy <kjeremy@gmail.com>
2020-05-01 18:57:55 +00:00
kjeremy
99826dab15 Address comments 2020-05-01 14:12:31 -04:00
KENTARO OKUDA
f5d20b6525 Fix Typos on guide.md 2020-05-01 14:00:06 -04:00
kjeremy
ee1628dba0 Mark most assists as the base "refactor" type
Most of them area. We will separate them out later but this gets them to
show up in the "refactor" menu of vscode.
2020-05-01 13:44:32 -04:00
kjeremy
e75565c73f Advertise support for all the builtin CodeActionKinds
Even thought we don't return all of these we eventually will so might as
well advertise now.
2020-05-01 13:44:32 -04:00
kjeremy
e3ee61f5e8 Filter out CodeActions if a server only support commands. 2020-05-01 13:44:32 -04:00
bors[bot]
4d33cdcfb2
Merge #4242
4242: Fix Typos r=jonas-schievink a=lonesometraveler



Co-authored-by: KENTARO OKUDA <lonesometraveler@mac.com>
2020-05-01 17:02:36 +00:00
bors[bot]
0b59be5747
Merge #4247
4247: Fix pub(self) visibility? r=matklad a=DianaNites

Clippy complained about it and it seems wrong, copy paste error?

Co-authored-by: Diana <5275194+DianaNites@users.noreply.github.com>
2020-05-01 16:19:14 +00:00
Diana
375dd18dc0 Fix pub(self) visibility?
Clippy complained about it and it seems wrong
2020-05-01 12:09:47 -04:00
John Renner
3bb46042fb Validate uses of self and super 2020-05-01 08:59:24 -07:00
Diana
ebff5762e9 Test for unsafe trait 2020-05-01 11:49:51 -04:00
Diana
6833183ab4 Unsafe traits 2020-05-01 11:49:41 -04:00
Benjamin Coenen
df7899e47a Add unwrap block assist #4156
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-01 16:41:29 +02:00
Benjamin Coenen
dc34162450 Merge branch 'master' of github.com:rust-analyzer/rust-analyzer 2020-05-01 16:26:30 +02:00
Benjamin Coenen
19e28888aa wip
Signed-off-by: Benjamin Coenen <5719034+bnjjj@users.noreply.github.com>
2020-05-01 16:26:22 +02:00
KENTARO OKUDA
eafb2107dd Fix Typos 2020-05-01 09:43:08 -04:00
Edwin Cheng
7bbdeb43a4 Make AttrQuery copyable 2020-05-01 20:58:24 +08:00
Laurențiu Nicola
1e20467c3a Bump deps 2020-05-01 15:29:03 +03:00
Edwin Cheng
44f5e2048c Remove lower_path from AssistCtx to Semantic 2020-05-01 20:05:12 +08:00
Edwin Cheng
bdcf6f5658 Introduce LowerCtx for path lowering 2020-05-01 20:01:17 +08:00
Edwin Cheng
1635d22a35 Add test 2020-05-01 20:01:17 +08:00
Laurențiu Nicola
c185e482e9 Document Gnome Builder support 2020-05-01 11:20:58 +03:00
Edwin Cheng
e4267967a8 Support local_inner_macros 2020-05-01 11:23:03 +08:00
bors[bot]
a5f2b16366
Merge #4233
4233: Remove dead TryBlock expressio r=matklad a=matklad

bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-04-30 20:59:15 +00:00
Aleksey Kladov
14126349be Kill more zombies 2020-04-30 22:58:26 +02:00
Aleksey Kladov
1865dedadf Introduce BlockModifier 2020-04-30 22:58:26 +02:00
bors[bot]
c96b2180c1
Merge #4228
4228: Fix typo in language server binary docs r=matklad a=ayazhafiz



Co-authored-by: hafiz <20735482+ayazhafiz@users.noreply.github.com>
2020-04-30 20:45:19 +00:00
Aleksey Kladov
292ba6a1f8 Remove dead code, which elaborately pretends to be alive 2020-04-30 22:41:14 +02:00
bors[bot]
65e40f6eb5
Merge #4232
4232: Update Roslyn link in syntax.md r=matklad a=osa1

Eric Lippert has a new blog that he keeps updating, update the link to that

Co-authored-by: Ömer Sinan Ağacan <omeragacan@gmail.com>
2020-04-30 20:37:40 +00:00
bors[bot]
6d49c7dfa3
Merge #4231
4231: Fix a bunch of false-positives in join-lines r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-04-30 20:27:07 +00:00
Ömer Sinan Ağacan
742055e29f
Update Roslyn link in syntax.md
Eric Lippert has a new blog that he keeps updating, update the link to that
2020-04-30 23:27:06 +03:00
Aleksey Kladov
15cfa9a808 Fix a bunch of false-positives in join-lines 2020-04-30 22:08:50 +02:00
bors[bot]
23c889694e
Merge #4153
4153: Add support for incremental text synchronization r=matklad a=lnicola

Fixes #3762.

This still needs a `ra_vfs` PR, but I want to know I'm on the right track. I tested the change and it didn't crash horribly, but YMMV.

Co-authored-by: Laurențiu Nicola <lnicola@dend.ro>
2020-04-30 19:00:30 +00:00
bors[bot]
745bd45ddb
Merge #4227
4227: Report invalid, nested, multi-segment crate-paths r=matklad a=djrenren

There was a bug in the previous path-validating code that didn't detect multi-segment paths that started with `crate`.

```rust
// Successfully reported
use foo::{crate};

// BUG: was not being reported
use foo::{crate::bar};
```

This was due to my confusion about path-associativity. That is, the path with no qualifier is the innermost path, not the outermost. I've updated the code with a lot of comments to explain what's going on. 

This bug was discovered when I found an erroneous `ok` test which I reported here: 
https://github.com/rust-analyzer/rust-analyzer/issues/4226

This test now fails and has been modified, hopefully in the spirit of the original test, to be correct.  Sorry about submitting the bug in the first place!

Co-authored-by: John Renner <john@jrenner.net>
2020-04-30 18:37:35 +00:00
hafiz
d185cbd99e
Update readme.adoc 2020-04-30 11:29:21 -07:00
Laurențiu Nicola
1a2d4e2921 Add support for incremental text synchronization 2020-04-30 21:26:57 +03:00
hafiz
a00647cefe
Fix typo in language server binary docs 2020-04-30 11:21:16 -07:00
John Renner
513a3615f6 Report invalid, nested, multi-segment crate-paths
Specifically, things like:

use foo::{crate::bar};

Are now being caught, when before we only caught:

use foo::{crate};
2020-04-30 11:16:09 -07:00
bors[bot]
861652ffa6
Merge #4225
4225: Special-case try macro_rules r=matklad a=edwin0cheng

Similar to #4221, but for `macro_rules! try {}`

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-04-30 17:11:18 +00:00
bors[bot]
972afffded
Merge #4222
4222: Introduce C/C++ for Visual Studio Code extension as an alternative debug engine for Debug Code lens. r=matklad a=vsrs

At the moment Debug Code Lens can use only one debug engine: lldb via [CodeLLDB](https://marketplace.visualstudio.com/items?itemName=vadimcn.vscode-lldb) extension.

This PR adds support of the debug engine from the [MS C++ tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) extension, as well as the configuration option. If both extensions are installed, `CodeLLDB` will be used by default.

Another new option `rust-analyzer.debug.sourceFileMap` allows, for example, to step into Rust std library during debugging. Works only with `MS C++ tools`.

On Windows: 
```json
"rust-analyzer.debug.sourceFileMap": {
    "/rustc/4fb7144ed159f94491249e86d5bbd033b5d60550": "${env:USERPROFILE}/.rustup/toolchains/stable-x86_64-pc-windows-msvc/lib/rustlib/src/rust"
}
```
On Linux:
```json
"rust-analyzer.debug.sourceFileMap": {
    "/rustc/4fb7144ed159f94491249e86d5bbd033b5d60550": "~/.rustup/toolchains/stable-x86_64-unknown-linux-gnu/lib/rustlib/src/rust"
}
```

Co-authored-by: vsrs <vit@conrlab.com>
2020-04-30 17:03:26 +00:00
vsrs
06b7175650 fixed lint warning 2020-04-30 18:57:40 +03:00
vsrs
11e9e4b1fb Removed unnecessary extraArgs for cargo invocation 2020-04-30 18:53:34 +03:00
vsrs
10836543d6 Fixed tsfmt and eslint errors. 2020-04-30 18:41:48 +03:00
Edwin Cheng
45c4f620b1 Special-case try macro_rules 2020-04-30 22:07:46 +08:00
bors[bot]
fec1e7c8e1
Merge #4223
4223: Allow to set env vars and pipe stdin via not_bash r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-04-30 13:21:24 +00:00