aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | | | Merge #4246bors[bot]2020-05-019-75/+178
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | | Validate uses of self and superJohn Renner2020-05-019-75/+178
| | | | | |
* | | | | | Merge #4248bors[bot]2020-05-011-4/+4
|\ \ \ \ \ \ | | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4248: Fix Typos on guide.md r=matklad a=lonesometraveler Co-authored-by: KENTARO OKUDA <[email protected]>
| * | | | | Fix Typos on guide.mdKENTARO OKUDA2020-05-011-4/+4
| | | | | |
* | | | | | Merge #4167bors[bot]2020-05-014-18/+51
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | | Address commentskjeremy2020-05-012-2/+4
| | | | | |
| * | | | | Mark most assists as the base "refactor" typekjeremy2020-05-011-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Most of them area. We will separate them out later but this gets them to show up in the "refactor" menu of vscode.
| * | | | | Advertise support for all the builtin CodeActionKindskjeremy2020-05-011-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Even thought we don't return all of these we eventually will so might as well advertise now.
| * | | | | Filter out CodeActions if a server only support commands.kjeremy2020-05-013-1/+27
|/ / / / /
* | | | | Merge #4242bors[bot]2020-05-011-2/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4242: Fix Typos r=jonas-schievink a=lonesometraveler Co-authored-by: KENTARO OKUDA <[email protected]>
| * | | | | Fix TyposKENTARO OKUDA2020-05-011-2/+2
| | |/ / / | |/| | |
* | | | | Merge #4247bors[bot]2020-05-011-1/+1
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4247: Fix pub(self) visibility? r=matklad a=DianaNites Clippy complained about it and it seems wrong, copy paste error? Co-authored-by: Diana <[email protected]>
| * | | | Fix pub(self) visibility?Diana2020-05-011-1/+1
|/ / / / | | | | | | | | | | | | Clippy complained about it and it seems wrong
* | | | Merge #4233bors[bot]2020-04-309-63/+30
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4233: Remove dead TryBlock expressio r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Kill more zombiesAleksey Kladov2020-04-302-9/+0
| | | | |
| * | | | Introduce BlockModifierAleksey Kladov2020-04-302-2/+19
| | | | |
| * | | | Remove dead code, which elaborately pretends to be aliveAleksey Kladov2020-04-306-52/+11
| | | | |
* | | | | Merge #4228bors[bot]2020-04-301-3/+3
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4228: Fix typo in language server binary docs r=matklad a=ayazhafiz Co-authored-by: hafiz <[email protected]>
| * | | | | Update readme.adochafiz2020-04-301-2/+2
| | | | | |
| * | | | | Fix typo in language server binary docshafiz2020-04-301-1/+1
| | | | | |
* | | | | | Merge #4232bors[bot]2020-04-301-1/+1
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | | Update Roslyn link in syntax.mdÖmer Sinan Ağacan2020-04-301-1/+1
| | | | | | | | | | | | | | | | | | Eric Lippert has a new blog that he keeps updating, update the link to that
* | | | | | Merge #4231bors[bot]2020-04-305-14/+83
|\ \ \ \ \ \ | |/ / / / / |/| | / / / | | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4231: Fix a bunch of false-positives in join-lines r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Fix a bunch of false-positives in join-linesAleksey Kladov2020-04-305-14/+83
|/ / / /
* | | | Merge #4153bors[bot]2020-04-304-13/+125
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | Add support for incremental text synchronizationLaurențiu Nicola2020-04-304-13/+125
| | | | |
* | | | | Merge #4227bors[bot]2020-04-306-81/+116
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | Report invalid, nested, multi-segment crate-pathsJohn Renner2020-04-306-81/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Specifically, things like: use foo::{crate::bar}; Are now being caught, when before we only caught: use foo::{crate};
* | | | | Merge #4225bors[bot]2020-04-303-0/+39
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4225: Special-case try macro_rules r=matklad a=edwin0cheng Similar to #4221, but for `macro_rules! try {}` Co-authored-by: Edwin Cheng <[email protected]>
| * | | | | Special-case try macro_rulesEdwin Cheng2020-04-303-0/+39
| |/ / / /
* | | | | Merge #4222bors[bot]2020-04-304-13/+194
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 <[email protected]>
| * | | | fixed lint warningvsrs2020-04-301-1/+1
| | | | |
| * | | | Removed unnecessary extraArgs for cargo invocationvsrs2020-04-302-6/+3
| | | | |
| * | | | Fixed tsfmt and eslint errors.vsrs2020-04-302-19/+19
| | | | |
| * | | | pass Cargo errors to the Debug output channelvsrs2020-04-303-7/+19
| | | | |
| * | | | MS C++ tools on linuxvsrs2020-04-291-1/+2
| | | | |
| * | | | better configuration enum itemsvsrs2020-04-293-13/+16
| | | | |
| * | | | Configuration settings and source maps supportvsrs2020-04-294-10/+52
| | | | |
| * | | | ms-vscode.cpptools debugger support, initial version.vsrs2020-04-282-12/+138
| | | | |
* | | | | Merge #4223bors[bot]2020-04-302-92/+79
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4223: Allow to set env vars and pipe stdin via not_bash r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | Allow to set env vars and pipe stdin via not_bashAleksey Kladov2020-04-302-92/+79
| | | | | |
* | | | | | Merge #4221bors[bot]2020-04-303-0/+52
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4221: Special-case try macro to better support 2015 edition r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | Special-case try macro to better support 2015 editionAleksey Kladov2020-04-303-0/+52
|/ / / / /
* | | | | Merge #4219bors[bot]2020-04-301-33/+67
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4219: Avoid `rustup` invocation for non-rustup rust installation r=matklad a=oxalica Fix #4218 and #3243. Co-authored-by: oxalica <[email protected]>
| * | | | | Avoid `rustup` invocation for non-rustup rust installationoxalica2020-04-301-33/+67
| | |/ / / | |/| | |
* | | | | Merge #4210bors[bot]2020-04-302-0/+65
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4210: Include function qualifiers in signature r=matklad a=oxalica Fixes #2450 It seems there's no test for `ra_ide/display/{short_label,function_signature}`. I'm not sure how to setup it. Manually tested: <img width="428" alt="Screenshot_20200430_004434" src="https://user-images.githubusercontent.com/14816024/80622769-d6f1c200-8a7b-11ea-91f3-e94bfb2703c5.png"> Co-authored-by: oxalica <[email protected]>
| * | | | | Add tests of showing function qualifiersoxalica2020-04-301-0/+25
| | | | | |
| * | | | | Include function qualifiers in signatureoxalica2020-04-291-0/+40
| |/ / / /
* | | | | Merge #4178bors[bot]2020-04-305-1/+121
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4178: Validate the location of `crate` in paths r=matklad a=djrenren **This solution does not fully handle `use` statements. See below** This pull requests implements simple validation of usages of the `crate` keyword in `Path`s. Specifically it validates that: - If a `PathSegment` is starts with the `crate` keyword, it is also the first segment of the `Path` - All other usages of `crate` in `Path`s are considered errors. This aligns with `rustc`'s rules. Unlike rustc this implementation does not issue a special error message in the case of `::crate` but it does catch the error. Furthermore, this change does not cover all error cases. Specifically the following is not caught: ```rust use foo::{crate} ``` This is because this check is context sensitive. From an AST perspective, `crate` is the root of the `Path`. Only by inspecting the full `UseItem` do we see that it is not in fact the root. This problem becomes worse because `UseTree`s are allowed to be arbitrarily nested: ```rust use {crate, {{crate, foo::{crate}}} ``` So this is a hard problem to solve without essentially a breadth-first search. In a traditional compiler, I'd say this error is most easily found during the AST -> HIR conversion pass but within rust-analyzer I'm not sure where it belongs. Under the implementation in this PR, such errors are ignored so we're *more correct* just not *entirely correct*. Co-authored-by: John Renner <[email protected]>
| * | | | | Validate the location of `crate` in pathsJohn Renner2020-04-295-1/+121
| | |/ / / | |/| | |