aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide
Commit message (Collapse)AuthorAgeFilesLines
* Fix completion and hover for module and function of same nameHasan Ali2020-05-162-1/+46
|
* Prioritize locals with correct typesAleksey Kladov2020-05-142-5/+55
|
* Make some stuff public so that they can be reused by other toolsPavan Kumar Sunkara2020-05-141-6/+2
|
* add more specific match postfix for Result and OptionBenjamin Coenen2020-05-121-15/+43
| | | | Signed-off-by: Benjamin Coenen <[email protected]>
* Merge #4423bors[bot]2020-05-111-0/+26
|\ | | | | | | | | | | | | | | 4423: add tests module snippet r=bnjjj a=bnjjj Request from a friend coming from intellij Rust Co-authored-by: Benjamin Coenen <[email protected]>
| * add tests module snippetBenjamin Coenen2020-05-111-0/+8
| | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * add tests module snippetBenjamin Coenen2020-05-111-0/+18
| | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | Merge #4358bors[bot]2020-05-111-1/+205
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4358: add if let and while let postfix for Option and Result #4348 r=matklad a=bnjjj close #4348 I also added `while let` for iterator or stream it could be useful ![iflet](https://user-images.githubusercontent.com/5719034/81278000-676c6b80-9055-11ea-87ad-6b8476dd983f.gif) Co-authored-by: Benjamin Coenen <[email protected]>
| * | add if let and while let postfix for Option and ResultBenjamin Coenen2020-05-101-38/+44
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | Merge branch 'master' of github.com:rust-analyzer/rust-analyzer into feat_4348Benjamin Coenen2020-05-103-10/+83
| |\ \
| * | | add if let and while let postfix for Option and Result #4348Benjamin Coenen2020-05-071-1/+199
| | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | | Merge #4397bors[bot]2020-05-113-2/+38
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4397: Textmate cooperation r=matklad a=georgewfraser This PR tweaks the fallback TextMate scopes to make them more consistent with the existing grammar and other languages, and edits the builtin TextMate grammar to align with semantic coloring. Before is on the left, after is on the right: <img width="855" alt="Screen Shot 2020-05-10 at 1 45 51 PM" src="https://user-images.githubusercontent.com/1369240/81512320-a8be7e80-92d4-11ea-8940-2c03f6769015.png"> **Use keyword.other for regular keywords instead of keyword**. This is a really peculiar quirk of TextMate conventions, but virtually *all* TextMate grammars use `keyword.other` (colored blue in VSCode Dark+) for regular keywords and `keyword.control` (colored purple in VSCode Dark+) for control keywords. The TextMate scope `keyword` is colored like control keywords, not regular keywords. It may seem strange that the `keyword` scope is not the right fallback for the `keyword` semantic token, but TextMate has a long and weird history. Note how keywords change from purple back to blue (what they were before semantic coloring was added): **(1) Use punctuation.section.embedded for format specifiers**. This aligns with how Typescript colors formatting directives: <img width="238" alt="Screen Shot 2020-05-09 at 10 54 01 AM" src="https://user-images.githubusercontent.com/1369240/81481258-93b5f280-91e3-11ea-99c2-c6d258c5bcad.png"> **(2) Consistently use `entity.name.type.*` scopes for type names**. Avoid using `entity.name.*` which gets colored like a keyword. **(3) Use Property instead of Member for fields**. Property and Member are very similar, but if you look at the TextMate fallback scopes, it's clear that Member is intended for function-like-things (methods?) and Property is intended for variable-like-things. **(4) Color `for` as a regular keyword when it's part of `impl Trait for Struct`**. **(5) Use `variable.other.constant` for constants instead of `entity.name.constant`**. In the latest VSCode insiders, variable.other.constant has a subtly different color that differentiates constants from ordinary variables. It looks close to the green of types but it's not the same---it's a new color recently added to take advantage of semantic coloring. I also made some minor changes that make the TextMate scopes better match the semantic scopes. The effect of this for the user is you observe less of a change when semantic coloring "activates". You can see the changes I made relative to the built-in TextMate grammar here: https://github.com/rust-analyzer/rust-analyzer/pull/4397/files/a91d15c80c337dd1afb0eddd5eb048010d098ac7..97428b6d52d25f810dbd7d7a8d787740c58bfbd2#diff-6966c729b862f79f79bf7258eb3e0885 Co-authored-by: George Fraser <[email protected]>
| * | | Color `for` as a regular keyword when it's part of impl _ for _George Fraser2020-05-103-1/+28
| | | |
| * | | Color `in` as a control keywordGeorge Fraser2020-05-103-1/+10
| | | |
* | | | Merge #4421bors[bot]2020-05-111-0/+25
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4421: Find references to a function outside module r=flodiebold a=montekki Fixes #4188 Yet again, it looks like although the code in https://github.com/rust-analyzer/rust-analyzer/blob/da1f316b0246ce41d7cb8560181e294089f06ef3/crates/ra_ide_db/src/search.rs#L128-L132 may be wrong, it is not hit since the `vis` is `None` at this point. The fix is similar to the #4237 case: just add another special case to `Definition::visibility()`. Co-authored-by: Fedor Sakharov <[email protected]>
| * | | Find references to a function outside moduleFedor Sakharov2020-05-111-0/+25
| | |/ | |/|
| | |
| \ \
*-. \ \ Merge #4394 #4414bors[bot]2020-05-104-6/+35
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4394: Simplify r=matklad a=Veetaha 4414: Highlighting improvements r=matklad a=matthewjasper - `static mut`s are highlighted as `mutable`. - The name of the macro declared by `macro_rules!` is now highlighted. Co-authored-by: veetaha <[email protected]> Co-authored-by: Matthew Jasper <[email protected]>
| | * | | Highlight the name in macro declarationsMatthew Jasper2020-05-103-3/+18
| | | | |
| | * | | Highlight mutable statics as mutableMatthew Jasper2020-05-103-3/+17
| | |/ /
* | / / Simplify proto conversionAleksey Kladov2020-05-101-2/+7
| |/ / |/| | | | | | | | | | | Trait based infra in conv.rs is significantly more complicated than what we actually need here.
* | | Remove dbgEdwin Cheng2020-05-101-1/+0
| | |
* | | Hot fix panic for function_signatureEdwin Cheng2020-05-101-7/+13
|/ /
* | Merge #4346bors[bot]2020-05-071-0/+62
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4346: Fix rename of enum variant visible from module r=matklad a=montekki Probably fixes #4237 It looks like the ref is found correctly in this case but it's visibility is not correctly determined. I took a stab at fixing that by adding an implementation of `HasVisibility` for `EnumVariant` so it works more or less the same way it does for struct fields. In other words, the `search_range` here does not contain the ref since it's not considered visible: https://github.com/rust-analyzer/rust-analyzer/blob/efd8e34c396f1524623a495e47111f1047cf2879/crates/ra_ide_db/src/search.rs#L209-L214 Before that I tried to populate `ItemScope` with visible enum variants but that ended up with breaking tests all over the place and also it looked illogical in the end: `ItemScope` is not populated with, say, public struct fields and the same should be true for `enum` variants. I've added two more or less identical tests: one for the case with a struct field rename and one for enum variant rename; the test for struct should probably be removed and the names should be changed. Co-authored-by: Fedor Sakharov <[email protected]>
| * | Fix rename of enum variant visible from moduleFedor Sakharov2020-05-061-0/+62
| | |
* | | Nicer APIAleksey Kladov2020-05-071-1/+1
| | |
* | | Rename AssitLabel -> AssistAleksey Kladov2020-05-071-3/+3
| | |
* | | Fix panic in FunctionSignatureAleksey Kladov2020-05-071-1/+7
| |/ |/|
* | Merge #4316 #4351bors[bot]2020-05-061-4/+45
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4316: do not truncate display for hover r=matklad a=bnjjj close #4311 4351: Fix Windows server path r=matklad a=lnicola CC @Coder-256. Co-authored-by: Benjamin Coenen <[email protected]> Co-authored-by: Laurențiu Nicola <[email protected]>
| * | do not truncate display for hoverBenjamin Coenen2020-05-061-2/+2
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | do not truncate display for hoverBenjamin Coenen2020-05-061-1/+42
| | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | Merge branch 'master' of github.com:rust-analyzer/rust-analyzer into fix_4311Benjamin Coenen2020-05-0614-89/+169
| |\ \
| * | | do not truncate display for hover #4311Benjamin Coenen2020-05-051-1/+1
| | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | | MinorAleksey Kladov2020-05-061-1/+2
| | | |
* | | | RenameAleksey Kladov2020-05-061-1/+1
| |_|/ |/| |
* | | Use SourceChange for assistsAleksey Kladov2020-05-062-49/+24
| | |
* | | Lift SourceChange to the ra_ide_dbAleksey Kladov2020-05-064-132/+11
| | |
* | | Fix capitalizationAleksey Kladov2020-05-061-2/+2
| |/ |/|
* | Fixup testsAleksey Kladov2020-05-057-30/+58
| |
* | Use more natural signature for Edit::applyAleksey Kladov2020-05-051-9/+15
| |
* | Rename AtomTextEdit -> IndelAleksey Kladov2020-05-052-4/+4
| |
* | Normalize naming of diagnosticsAleksey Kladov2020-05-054-13/+15
| |
* | Fix compilationAleksey Kladov2020-05-051-12/+7
| |
* | Merge #4320bors[bot]2020-05-051-0/+43
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4320: add doctest support r=matklad a=bnjjj close #4317 preview: <img width="253" alt="Capture d’écran 2020-05-05 à 17 39 58" src="https://user-images.githubusercontent.com/5719034/81086040-45110b80-8ef8-11ea-9c05-79c6fe400fc3.png"> Co-authored-by: Benjamin Coenen <[email protected]>
| * | add doctest support #4317Benjamin Coenen2020-05-051-0/+43
| |/ | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* / Rename ImplItem to AssocItemEdwin Cheng2020-05-052-21/+27
|/
* Remove false positive attr compleitonsAleksey Kladov2020-05-042-4/+40
|
* Qualify ast typesAleksey Kladov2020-05-041-6/+5
|
* Cleanup importsAleksey Kladov2020-05-041-4/+6
|
* Remove unnecessary conditionAleksey Kladov2020-05-041-17/+14
| | | | | | No tests fail, and quick manual testing shows that there are no false-positives. In general, each completion contributor should be independent from the others.
* Merge #4269 #4293bors[bot]2020-05-041-0/+33
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4269: add support of use alias semantic in definition r=matklad a=bnjjj close #4202 4293: no doctests for flycheck r=matklad a=matklad bors r+ 🤖 Co-authored-by: Benjamin Coenen <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]>