aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Simplify TokenStream FromStrEdwin Cheng2021-03-051-38/+42
|
* Merge #7868bors[bot]2021-03-045-14/+13
|\ | | | | | | | | | | | | | | | | 7868: Migrate to user-centric config name for `cargo check` stuff r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * Migrate to user-centric config name for `cargo check` stuffAleksey Kladov2021-03-045-14/+13
| |
* | Merge #7866bors[bot]2021-03-034-32/+45
|\ \ | | | | | | | | | | | | | | | | | | | | | 7866: Complete `while let` r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | 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
| | | |