aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | Complete `while let`Lukas Wirth2021-03-032-9/+11
| | | | |
| * | | | Don't complete `super` unless its valid in pathsLukas Wirth2021-03-033-23/+34
|/ / / /
* | | | Merge #7863bors[bot]2021-03-031-189/+189
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7863: Prevent renaming SelfType and BuiltinType r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | | Prevent renaming SelfType and BuiltinTypeLukas Wirth2021-03-031-0/+2
| | | | |
| * | | | Reorder functions in rename.rsLukas Wirth2021-03-031-189/+187
| | | | |
* | | | | Merge #7862bors[bot]2021-03-031-24/+0
|\ \ \ \ \ | |/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7862: Remove incorrect broken test r=jonas-schievink a=jonas-schievink `Struct` cannot be named at all in that position, since `super` doesn't resolve to the block scope bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | Remove incorrect broken testJonas Schievink2021-03-031-24/+0
|/ / / / | | | | | | | | | | | | | | | | `Struct` cannot be named at all in that position, since `super` doesn't resolve to the block scope
* | | | Merge #7861bors[bot]2021-03-031-2/+43
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7861: Special-case parenthesized and negated expressions in demorgan assist r=lnicola a=Jesse-Bakker Fixes #7831 Co-authored-by: Jesse Bakker <[email protected]>
| * | | | Special-case parenthesized and negated expressions in demorgan assistJesse Bakker2021-03-031-2/+43
|/ / / /
* | | | Merge #7858bors[bot]2021-03-031-1/+7
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7858: Clarify comparison rule r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Clarify comparison ruleAleksey Kladov2021-03-031-1/+7
| |/ / /
* | | | Merge #7853bors[bot]2021-03-022-3/+3
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7853: Update lexer r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * | | | Update lexerkjeremy2021-03-022-3/+3
|/ / / /
* | | | Merge #7852bors[bot]2021-03-021-2/+2
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | 7852: bump once_cell r=kjeremy a=kjeremy Co-authored-by: kjeremy <[email protected]>
| * | | bump once_cellkjeremy2021-03-021-2/+2
|/ / /
* | | Merge #7851bors[bot]2021-03-022-616/+424
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7851: Compress tests r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Compress testsAleksey Kladov2021-03-022-616/+424
| | | |
* | | | Merge #7824bors[bot]2021-03-021-1/+107
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7824: feat: add type ascription r=matklad a=conradludgate Based on this conversation: https://twitter.com/rust_analyzer/status/1366092401278922757 Built off of `add_turbo_fish`, finds the current `let` statement, checks if it has type/turbofish already and checks if the rhs function is generic. There's one case I couldn't figure out how to implement that would be nice: ```rust #[test] fn add_type_ascription_function_result() { check_assist( add_type_ascription, r#" fn make<T>() -> Result<T, &'static str> {} fn main() { let x = make()$0; } "#, r#" fn make<T>() -> Result<T, &'static str> {} fn main() { let x: Result<${0:_}, &'static str> = make(); } "#, ); } ``` The `Function::ret_type` fn wasn't returning anything much useful so I'm not sure how to identity such scenarios just yet Co-authored-by: Conrad Ludgate <[email protected]>
| * | | | chore: remove redundant testsConrad Ludgate2021-03-021-30/+0
| | | | |
| * | | | chore: remove deleted file pathConrad Ludgate2021-03-021-1/+0
| | | | |
| * | | | chore: codegenConrad Ludgate2021-03-021-19/+0
| | | | |
| * | | | refactor: re-use add_turbo_fish functionConrad Ludgate2021-03-023-201/+137
| | | | |
| * | | | chore: fmt + docsConrad Ludgate2021-03-021-2/+2
| | | | |
| * | | | chore: rename varConrad Ludgate2021-03-021-3/+3
| | | | |
| * | | | feat: add type ascription assistConrad Ludgate2021-03-024-0/+220
|/ / / /
* | | | Merge #7850bors[bot]2021-03-021-12/+62
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7850: Don't add space when joining line to opening quote r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | Don't add space when joining line to opening quoteAleksey Kladov2021-03-021-12/+62
| | | | |
* | | | | Merge #7849bors[bot]2021-03-021-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7849: Fix xflags fallout r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | Fix xflags falloutAleksey Kladov2021-03-021-1/+1
| |/ / / / | | | | | | | | | | | | | | | https://github.com/rust-analyzer/rust-analyzer/pull/7847#issuecomment-788920830
* | | | | Merge #7795bors[bot]2021-03-024-19/+139
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7795: Show docs on hover for keywords and primitives r=matklad a=Veykril ![lAWFadkziX](https://user-images.githubusercontent.com/3757771/109369534-eeb4f500-789c-11eb-8f2b-2f9c4e129de3.gif) It's a bit annoying that this requires the `SyntaxNode` and `Semantics` to be pulled through `hover_for_definition` just so we can get the `std` crate but I couldn't think of a better way. Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Show docs on hover for keywords and primitivesLukas Wirth2021-03-024-19/+139
| | | | | |
| | | | | |
| \ \ \ \ \
*-. \ \ \ \ \ Merge #7335 #7691bors[bot]2021-03-026-16/+1174
|\ \ \ \ \ \ \ | | | |_|/ / / | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7335: added region folding r=matklad a=LucianoBestia Regions of code that you'd like to be folded can be wrapped with `// #region` and `// #endregion` line comments. This is called "Region Folding". It is originally available for many languages in VSCode. But Rust-analyzer has its own folding function and this is missing. With this Pull Request I am suggesting a simple solution. The regions are a special kind of comments, so I added a bit of code in the comment folding function. The regex to match are: `^\s*//\s*#?region\b` and `^\s*//\s*#?endregion\b`. The number of space characters is not important. There is an optional # character. The line can end with a name of the region. Example: ```rust // 1. some normal comment // region: test // 2. some normal comment calling_function(x,y); // endregion: test ``` I added a test for this new functionality in `folding_ranges.rs`. Please, take a look and comment. I found that these exact regexes are already present in the file `language-configuration.json`, but I don't find a way to read this configuration. So my regex is hardcoded in the code. 7691: Suggest name in extract variable r=matklad a=cpud36 Generate better default name in extract variable assist as was mentioned in issue #1587 # Currently supported (in order of declining precedence) 1. Expr is argument to a function; use corresponding parameter name 2. Expr is result of a function or method call; use this function/method's name 3. Use expr type name (if possible) 4. Fallback to `var_name` otherwise # Showcase ![generate_derive_variable_name_from_method](https://user-images.githubusercontent.com/4218373/108013304-72105400-701c-11eb-9f13-eec52e74d0cc.gif) ![generate_derive_variable_name_from_param](https://user-images.githubusercontent.com/4218373/108013305-72a8ea80-701c-11eb-957e-2214f7f005de.gif) # Questions * Should we more aggressively strip known types? E.g. we already strip `&T -> T`; should we strip `Option<T> -> T`, `Result<T, E> -> T`, and others? * Integers and floats use `var_name` by default. Should we introduce a name, like `i`, `f` etc? * Can we return a list and suggest a name when renaming(like IntelliJ does)? * Should we add counters to remove duplicate variables? E.g. `type`, `type1`, type2`, etc. Co-authored-by: Luciano Bestia <[email protected]> Co-authored-by: Luciano <[email protected]> Co-authored-by: Vladyslav Katasonov <[email protected]>
| | * | | | | strip useless methods, and unary ops in suggest_nameVladyslav Katasonov2021-03-021-7/+114
| | | | | | |
| | * | | | | pull out suggest_name::* to utils; enchance heuristicsVladyslav Katasonov2021-03-024-89/+821
| | | | | | |
| | * | | | | suggest parameter name before function nameVladyslav Katasonov2021-03-021-5/+5
| | | | | | |
| | * | | | | try to suggest name when extracting variableVladyslav Katasonov2021-03-021-7/+287
| | | |/ / / | | |/| | |
| * | | | | rustfmt 1.4.30-stableLuciano Bestia2021-02-182-6/+8
| | | | | |
| * | | | | corrected no newline at end of fileLuciano Bestia2021-02-131-1/+1
| | | | | |
| * | | | | removed logging stuffLuciano Bestia2021-02-133-10/+1
| | | | | |
| * | | | | Update crates/ide/src/folding_ranges.rsLuciano2021-02-131-2/+2
| | | | | | | | | | | | | | | | | | Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | simple comparison instead of regexLuciano Bestia2021-02-053-39/+8
| | | | | |
| * | | | | added region foldingLuciano Bestia2021-01-184-13/+92
| | | | | |
* | | | | | Merge #7513bors[bot]2021-03-029-163/+580
|\ \ \ \ \ \ | |_|/ / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7513: NFA parser for mbe matcher r=matklad a=edwin0cheng Almost straight porting from rustc one, but a little bit slow :( ``` rust-analyzer analysis-stats -q . ``` From: ```log Database loaded: 636.11ms, 277minstr crates: 36, mods: 594, decls: 11527, fns: 9017 Item Collection: 10.99s, 60ginstr exprs: 249618, ??ty: 2699 (1%), ?ty: 2101 (0%), !ty: 932 Inference: 28.94s, 123ginstr Total: 39.93s, 184ginstr ``` To: ```log Database loaded: 630.90ms, 277minstr crates: 36, mods: 594, decls: 11528, fns: 9018 Item Collection: 13.70s, 77ginstr exprs: 249482, ??ty: 2699 (1%), ?ty: 2101 (0%), !ty: 932 Inference: 30.27s, 133ginstr Total: 43.97s, 211ginstr ``` Fixes #4777 Co-authored-by: Edwin Cheng <[email protected]>
| * | | | | NFA parser for mbe matcherEdwin Cheng2021-02-289-163/+580
| | | | | |
* | | | | | Merge #7848bors[bot]2021-03-029-37/+47
|\ \ \ \ \ \ | |_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7848: Bump cargo_metadata r=matklad a=lnicola Co-authored-by: LaurenÈ›iu Nicola <[email protected]>
| * | | | | Bump cargo_metadataLaurențiu Nicola2021-03-029-37/+47
| | | | | |
* | | | | | Merge #7837bors[bot]2021-03-021-11/+51
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7837: Add more information to VSCode extenstion README r=matklad a=IceSentry A lot of these are duplicated from the documentation or main README. While it's unfortunate to have duplicated information, the current VSCode page is very barebones and doesn't offer much confidence. This updated README offers a few more links and follows a structure similar to the official rust extension and other popular vscode extensions. The additions are, as much as possible specific to the vscode extension and not rust-analyzer as a LSP. The note about not using the official extension is also right there at the top because that's a common issue people have when trying it out. I added the sponsor section since it's common in other extensions README, but I'm not sure if it's necessary Co-authored-by: Charles Giguere <[email protected]> Co-authored-by: cgiguere <[email protected]>
| * | | | | | clean uo rustup linkcgiguere2021-03-011-1/+1
| | | | | | |
| * | | | | | add sponsor linkscgiguere2021-03-011-14/+17
| | | | | | |
| * | | | | | Add more information to VSCode extenstion READMECharles Giguere2021-03-011-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lot of these are duplicated from the documentation or main README. While it's unfortunate to have duplicated information, the current VSCode page is very barebones and doesn't offer much confidence. This updated README offers a few more links and follows a structure similar to the official rust extension and other popular vscode extensions. The additions are, as much as possible specific to the vscode extension and not rust-analyzer as a LSP. The note about not using the official extension is also right there at the top because that's a common issue people have when trying it out. I added the sponsor section since it's common in other extensions README, but I'm not sure if it's necessary