Commit Graph

8435 Commits

Author SHA1 Message Date
Veetaha
895327522b docs: add documentation for vscode nightlies 2020-03-14 03:16:50 +02:00
Veetaha
5e32a67c83 vscode-postrefactor: more logging and better error handling 2020-03-14 03:01:14 +02:00
Veetaha
d7b46e0527 vscode-postrefactor: enforcing more reentrancy 2020-03-14 02:01:46 +02:00
Veetaha
7f02d4657b vscode-postrefactor: minor config refactorings 2020-03-14 02:01:46 +02:00
Veetaha
607d017229 vscode-postrefactor: unhandled promise rejections shall not pass 2 2020-03-14 02:01:46 +02:00
Veetaha
c2b0fffe3d vscode-postrefactor: add achtung comment 2020-03-14 02:01:46 +02:00
Veetaha
abee777b6e vscode-postrefactor: remove remainders of debug logging 2020-03-14 02:01:46 +02:00
Veetaha
028a4aa99f vscode-postrefactor: unhandled promise rejections shall not pass 2020-03-14 02:01:46 +02:00
Veetaha
b0bf495262 vscode-postrefactor: compare dates by value, not by reference 2020-03-14 02:01:46 +02:00
Veetaha
c3ee8b10b8 vscode-postrefactor: eliminate my-mistake floating promise @matklad 2020-03-14 02:01:46 +02:00
Veetaha
bc87d6de86 vscode-postrefactor: global storages 2020-03-14 02:01:46 +02:00
Veetaha
77a206e0b2 vscode: put comma back 2020-03-14 02:01:46 +02:00
Veetaha
4d17152b31 vscode: make bailing out on custom serverPath more evident 2020-03-14 02:01:46 +02:00
Veetaha
7e6b1a60c3 vscode: npm run fix 2020-03-14 02:01:46 +02:00
Veetaha
1e73811fbe vscode: amend server installation logic to account for nightlies 2020-03-14 02:01:46 +02:00
Veetaha
601fc9d1ab vscode: add nightly extension installation logic 2020-03-14 02:01:46 +02:00
Veetaha
6d2d753677 vscode: prepare config for nightlies 2020-03-14 02:01:46 +02:00
Veetaha
bc98c02dd0 vscode: prepare package.json for nightlies 2020-03-14 02:01:46 +02:00
Veetaha
0f826aec82 vscode: get release date from release info 2020-03-14 02:01:46 +02:00
Veetaha
98b2a942d1 vscode-prerefactor: add some utility functions 2020-03-14 02:01:46 +02:00
Veetaha
8203828bb0 vscode-prerefactor: merge two files into downloads.ts 2020-03-14 02:01:46 +02:00
bors[bot]
fab40db8bd
Merge #3566
3566: Fix docs r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-12 17:11:25 +00:00
Aleksey Kladov
ddfac09363 Fix docs 2020-03-12 18:04:11 +01:00
Aleksey Kladov
b3fa7312a7 Simpler deserialization 2020-03-12 18:01:36 +01:00
Aleksey Kladov
fd3ece2b73 Make naming more uniform 2020-03-12 17:38:48 +01:00
bors[bot]
d98a5fab46
Merge #3543
3543: Parameter inlay hint separate from variable type inlay? #2876 r=matklad a=slyngbaek

Add setting to allow enabling either type inlay hints or parameter
inlay hints or both. Group the the max inlay hint length option
into the object.

- Add a new type for the inlayHint options.
- Add tests to ensure the inlays don't happen on the server side

Co-authored-by: Steffen Lyngbaek <steffenlyngbaek@gmail.com>
2020-03-12 16:02:55 +00:00
Steffen Lyngbaek
a153b90875 Make maxLength nullable again 2020-03-12 08:43:07 -07:00
bors[bot]
944bd2cbc3
Merge #3559
3559: Implement builtin assert! macro r=matklad a=edwin0cheng

This PR add a dummy implementation for `assert!` macro, which mainly make `hover` and `goto-def` works on arguments inside it.

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-03-12 15:38:04 +00:00
bors[bot]
b08f26c0f8
Merge #3556
3556: settings: rust-analyzer.cargo-watch.enable: clarify that the setting … r=matklad a=matthiaskrgr

…enables the cargo-watch command and not "cargo check"

Co-authored-by: Matthias Krüger <matthias.krueger@famsik.de>
2020-03-12 14:53:31 +00:00
bors[bot]
7bbdca6182
Merge #3564
3564: Better handling of a few kinds of cargo/clippy diagnostics r=matklad a=kiljacken

This was initially supposed to just be a fix for #3433, but I caught a few things that ended up being useful as well.

This PR primarily makes us handle multi-edit fix suggestions properly. Instead of just applying the first fix we apply all the parts of the fix in a single action.

Second up, this PR handles diagnostics with multiple primary spans, f.x. the unused import diagnostic from rustc:
![image](https://user-images.githubusercontent.com/209321/76531793-03269480-6476-11ea-9180-41c0ea705553.png)

The LSP doesn't handle this too well, as it only support a single complete range for each diagnostic, so we get duplicate messages in the problem panel of VSCode:
![image](https://user-images.githubusercontent.com/209321/76531901-29e4cb00-6476-11ea-9746-cd57f8974b85.png)

However, I feel like the improved visual aspect in-editor outweighs the duplication in the problem panel. I'm open to not including the second commit if anybody really doesn't like the idea of duplicate diagnostics in the problem pane.

Fixes #3433
Fixes #3257

Co-authored-by: Emil Lauridsen <mine809@gmail.com>
2020-03-12 14:46:42 +00:00
Aleksey Kladov
afd64ef4f7
Merge pull request #3562 from FireofGods/display_for_node
Add `std::fmt::Display` as a supertrait for `AstNode`
2020-03-12 15:40:53 +01:00
Emil Lauridsen
98e8ad5e60 Handle diagnostics with multiple primary spans 2020-03-12 15:24:20 +01:00
Emil Lauridsen
637c795b3c Correctly handle multi-line fixes from cargo/clippy 2020-03-12 15:01:53 +01:00
Steffen Lyngbaek
58248e24cd Switch from Vec<InlayKind> to object with props
- Instead of a single object type, use several individual nested types
  to allow toggling from the settings GUI
- Remove unused struct definitions
- Install and test that the toggles work
2020-03-11 20:14:39 -07:00
Fireassember
31eec5e80c implementing Display for enums too. 2020-03-11 22:54:24 +02:00
Edwin Cheng
8f7703b006 Update comment
Co-Authored-By: bjorn3 <bjorn3@users.noreply.github.com>
2020-03-12 02:00:56 +08:00
Edwin Cheng
8c159b54e9 Add test on hover 2020-03-11 23:14:15 +08:00
Edwin Cheng
759bcea96d Implement dummy assert macro 2020-03-11 23:08:12 +08:00
bors[bot]
05b4fc6d79
Merge #3558
3558: Fix parsing of stement-ish binary expressions r=matklad a=matklad

closes #3512



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-11 13:29:36 +00:00
Aleksey Kladov
4a745cc8cf Fix parsing of stement-ish binary expressions
closes #3512
2020-03-11 14:28:18 +01:00
bors[bot]
bddf6b5266
Merge #3557
3557: Continue multiline non-doc comment blocks r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-11 11:58:55 +00:00
Aleksey Kladov
85c30b1915 Continue multiline non-doc comment blocks 2020-03-11 12:58:16 +01:00
Aleksey Kladov
90fe534f03 Split on enter tests 2020-03-11 12:58:16 +01:00
Aleksey Kladov
52da9e90a6 Move on enter to a separate module 2020-03-11 12:58:16 +01:00
Matthias Krüger
d48bae6ebb settings: rust-analyzer.cargo-watch.enable: clarify that the setting enables the cargo-watch command and not "cargo check" 2020-03-11 12:32:24 +01:00
bors[bot]
c48dcf7411
Merge #3549
3549: Implement env! macro r=matklad a=edwin0cheng

This PR implements `env!` macro by adding following things:

1. Added `additional_outdirs` settings in vscode. (naming to be bikeshed)
2. Added `ExternSourceId` which is a wrapping for SourceRootId but only used in extern sources. It is because `OUT_DIR` is not belonged to any crate and we have to access it behind an `AstDatabase`.
3. This PR does not implement the `OUT_DIR` parsing from `cargo check`. I don't have general design about this,  @kiljacken could we reuse some cargo watch code for that ?

~~Block on [#3536]~~

PS: After this PR , we (kind of) completed the `include!(concat!(env!('OUT_DIR'),  "foo.rs")` macro call combo. [Exodia Obliterate!](https://www.youtube.com/watch?v=RfqNH3FoGi0)

Co-authored-by: Edwin Cheng <edwin0cheng@gmail.com>
2020-03-11 10:51:07 +00:00
bors[bot]
7b323b45a1
Merge #3555
3555: Introduce completion test utils r=matklad a=matklad



bors r+
🤖

Co-authored-by: Aleksey Kladov <aleksey.kladov@gmail.com>
2020-03-11 10:10:49 +00:00
Aleksey Kladov
dad8f1e064 Introduce completion test utils 2020-03-11 11:09:57 +01:00
Aleksey Kladov
9b0b59c5d2 Add a test for disabled argument snippets 2020-03-11 10:39:39 +01:00
bors[bot]
bf77850c81
Merge #3542
3542: Renames work on struct field shorthands r=matklad a=m-n

When renaming either a local or a struct field, struct field shorthands are now renamed correctly.

Happy to refactor this if it doesn't fit the design of the code. Thanks for adding the suggestion of where to start on the issue.

I wasn't sure if I should also look at the behavior of renaming when placing the cursor at the field shorthand; the following describes the behavior with this patch:

```rust
#[test]
fn test_rename_field_shorthand_for_unspecified() {
    // when renaming a shorthand, should we have a way to specify
    // between renaming the field and the local?
    //
    // If not is this the correct default?
    test_rename(
        r#"
struct Foo {
    i: i32,
}
 impl Foo {
    fn new(i: i32) -> Self {
        Self { i<|> }
    }
}
"#,
        "j",
        r#"
struct Foo {
    i: i32,
}
 impl Foo {
    fn new(j: i32) -> Self {
        Self { i: j }
    }
}
"#,
    );
}
```
Resolves #3431

Co-authored-by: Matt Niemeir <matt.niemeir@gmail.com>
2020-03-11 09:22:09 +00:00