aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_ide/src
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge #3954bors[bot]2020-04-237-28/+388
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3954: Improve autocompletion by looking on the type and name r=matklad a=bnjjj This tweet (https://twitter.com/tjholowaychuk/status/1248918374731714560) gaves me the idea to implement that in rust-analyzer. Basically for this first example I made some examples when we are in a function call definition. I look on the parameter list to prioritize autocompletions for the same types and if it's the same type + the same name then it's displayed first in the completion list. So here is a draft, first step to open a discussion and know what you think about the implementation. It works (cf tests) but maybe I can make a better implementation at some places. Be careful the code needs some refactoring to be better and concise. PS: It was lot of fun writing this haha Co-authored-by: Benjamin Coenen <[email protected]>
| * | | Improve autocompletion by looking on the type and nameBenjamin Coenen2020-04-211-3/+1
| | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-04-217-27/+52
| |\| |
| * | | Improve autocompletion by looking on the type and nameBenjamin Coenen2020-04-214-48/+47
| | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-04-187-18/+140
| |\ \ \ | | | |/ | | |/|
| * | | feat: improve dot completions with scoringBenjamin Coenen2020-04-171-5/+1
| | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-04-171-1/+1
| |\ \ \
| * | | | feat: improve dot completions with scoringBenjamin Coenen2020-04-174-77/+52
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | | feat: improve dot completions with scoringBenjamin Coenen2020-04-166-108/+91
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | | feat: improve dot completions in a struct literal expressionBenjamin Coenen2020-04-154-31/+196
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | | Merge branch 'master' of github.com:rust-analyzer/rust-analyzerBenjamin Coenen2020-04-145-11/+37
| |\ \ \ \
| * | | | | Improve autocompletion by looking on the type and name, change ↵Benjamin Coenen2020-04-123-26/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | implementation, include sort in Completions struct Signed-off-by: Benjamin Coenen <[email protected]>
| * | | | | Improve autocompletion by looking on the type and nameBenjamin Coenen2020-04-1110-41/+103
| |\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
| * | | | | | Improve autocompletion by looking on the type and nameBenjamin Coenen2020-04-116-30/+194
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Signed-off-by: Benjamin Coenen <[email protected]>
* | | | | | | Merge #4065bors[bot]2020-04-232-7/+217
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4065: Complete unqualified enum names in patterns and expressions r=matklad a=nathanwhit This PR implements the completion described in #4014. The result looks like so for patterns: <img width="542" alt="Screen Shot 2020-04-20 at 3 53 55 PM" src="https://user-images.githubusercontent.com/17734409/79794010-8f529400-831f-11ea-9673-f838aa9bc962.png"> and for `expr`s: <img width="620" alt="Screen Shot 2020-04-21 at 3 51 24 PM" src="https://user-images.githubusercontent.com/17734409/79908784-d73ded80-83e9-11ea-991d-921f0cb27e6f.png"> I'm not confident that the completion text itself is very robust, as it will unconditionally add completions for enum variants with the form `Enum::Variant`. This means (I believe) it would still suggest `Enum::Variant` even if the local name is changed i.e. `use Enum as Foo` or the variants are brought into scope such as through `use Enum::*`. Co-authored-by: nathanwhit <[email protected]>
| * | | | | | | Update tests to reflect new completionsnathanwhit2020-04-221-1/+1
| | | | | | | |
| * | | | | | | Add tests for enum completionnathanwhit2020-04-221-0/+178
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds tests for completion of enum variants in match arms, if-let statements, and basic expressions.
| * | | | | | | Complete unqualified enum variants when possiblenathanwhit2020-04-221-5/+26
| | | | | | | |
| * | | | | | | Add utility fn for expected type of a nodenathanwhit2020-04-221-1/+12
| | |_|_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | Adds `expected_type_of` to `CompletionContext` to return the expected type of a node, if it is known.
* | | | | | | Remove SyntaxPtr::range from more placesAleksey Kladov2020-04-231-1/+1
| | | | | | |
* | | | | | | feat: run ignored testsHannes De Valkeneer2020-04-221-2/+33
| |_|_|_|_|/ |/| | | | |
* | | | | | Some clippy fixesJeremy Kolb2020-04-191-1/+1
| | | | | |
* | | | | | Fix goto definition for record patternsAleksey Kladov2020-04-181-6/+22
| | | | | |
* | | | | | Add semantic tag for unresolved referencesAleksey Kladov2020-04-184-20/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a quick way to implement unresolved reference diagnostics. For example, adding to VS Code config "editor.tokenColorCustomizationsExperimental": { "unresolvedReference": "#FF0000" }, will highlight all unresolved refs in red.
* | | | | | Merge #4029bors[bot]2020-04-181-0/+6
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4029: Fix various proc-macro bugs r=matklad a=edwin0cheng This PRs does the following things: 1. Fixed #4001 by splitting `LIFETIME` lexer token to two mbe tokens. It is because rustc token stream expects `LIFETIME` as a combination of punct and ident, but RA `tt:TokenTree` treats it as a single `Ident` previously. 2. Fixed #4003, by skipping `proc-macro` for completion. It is because currently we don't have `AstNode` for `proc-macro`. We would need to redesign how to implement `HasSource` for `proc-macro`. 3. Fixed a bug how empty `TokenStream` merging in `proc-macro-srv` such that no L_DOLLAR and R_DOLLAR will be emitted accidentally. Co-authored-by: Edwin Cheng <[email protected]>
| * | | | | Ignore proc-macro in completionEdwin Cheng2020-04-181-0/+6
| | | | | |
* | | | | | Merge #4026bors[bot]2020-04-181-1/+10
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4026: Omit more parameter hints in the presence of underscores r=matklad a=lnicola Fixes #4017. Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | | | | Omit more parameter hints in the presence of underscoresLaurențiu Nicola2020-04-181-1/+10
| |/ / / / /
* / / / / / Fix incorrect order of syntax highlight rangesLeander Tentrup2020-04-172-1/+14
|/ / / / /
* | | | | Don\t suggest import itself as a completion for importAleksey Kladov2020-04-172-1/+40
| | | | |
* | | | | Merge #4010bors[bot]2020-04-171-6/+66
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 4010: Fix handling of ranges in diagnostics r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | Correctly highlight ranges of diagnostics from macrosAleksey Kladov2020-04-171-6/+66
| | |_|_|/ | |/| | | | | | | | | | | | | closes #2799
* / | | | Better snippet when completing trait methodAleksey Kladov2020-04-171-9/+10
|/ / / /
* | | / Don't expose SyntaxNodePtr impl detailsAleksey Kladov2020-04-161-1/+1
| |_|/ |/| |
* | | Merge #3955bors[bot]2020-04-114-5/+22
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3955: Align grammar for record patterns and literals r=matklad a=matklad The grammar now looks like this [name_ref :] pat bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Align grammar for record patterns and literalsAleksey Kladov2020-04-114-5/+22
| | |/ | |/| | | | | | | | | | | | | The grammar now looks like this [name_ref :] pat
* / | Remove #[should_panic] from call_info testsJeremy Kolb2020-04-111-6/+15
|/ /
* | Make records grammar more orthogonalAleksey Kladov2020-04-112-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | We used name [: expr] grammar before, now it is [name :] expr which makes things simpler
* | Merge pull request #3910 from lnicola/fn-named-param-hintAleksey Kladov2020-04-111-5/+12
|\ \ | | | | | | Hide parameter hints for single-argument functions with the same name
| * | Hide parameter hints for single-argument functions with the same nameLaurențiu Nicola2020-04-091-5/+12
| | |
* | | Rename some tokensAleksey Kladov2020-04-102-6/+6
| | |
* | | Semicolon tokenAleksey Kladov2020-04-101-1/+1
| | |
* | | Simpler acessors for keywordsAleksey Kladov2020-04-092-3/+3
| | |
* | | Drop needless traitAleksey Kladov2020-04-091-14/+16
|/ /
* | Merge #3901bors[bot]2020-04-091-6/+46
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 3901: Add more heuristics for hiding obvious param hints r=matklad a=IceSentry This will now hide `value`, `pat`, `rhs` and `other`. These words were selected from the std because they are used in commonly used functions with only a single param and are obvious by their use. It will also hide the hint if the passed param **starts** or end with the param_name. Maybe we could also split on '_' and check if one of the string is the param_name. I think it would be good to also hide `bytes` if the type is `[u8; n]` but I'm not sure how to get the param type signature. Closes #3900 Co-authored-by: IceSentry <[email protected]>
| * | use .expr() to remove refIceSentry2020-04-091-5/+10
| | |
| * | clean up param hint checkingIceSentry2020-04-091-18/+18
| | |
| * | better `&mut ` and `&` matchingIceSentry2020-04-091-6/+6
| | |
| * | ignore `&mut ` and `&` when checking paramsIceSentry2020-04-091-3/+13
| | |
| * | remove TODOIceSentry2020-04-081-1/+0
| | |