aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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
* | | | | Merge #7847bors[bot]2021-03-026-312/+317
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7847: Switch from pico-args to xflags r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | Switch from pico-args to xflagsAleksey Kladov2021-03-026-312/+317
|/ / / / /
* | | | | Merge #7836bors[bot]2021-03-021-10/+33
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7836: Check for path dev-dependencies with a version number r=lnicola a=lnicola Closes https://github.com/rust-analyzer/rust-analyzer/pull/7828#issuecomment-788174522. This looks a bit ugly, but at least fixes an issues where we missed target-specific dependencies. Co-authored-by: LaurenČ›iu Nicola <[email protected]>
| * | | | | Check for path dev-dependencies with a version numberLaurențiu Nicola2021-03-011-10/+33
| | | | | |
* | | | | | Merge #7777bors[bot]2021-03-024-5/+430
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7777: Implement line<->block comment assist r=Veykril a=djrenren Fixes: https://github.com/rust-analyzer/rust-analyzer/issues/6515 Co-authored-by: John Renner <[email protected]>
| * | | | | | Apply editsJohn Renner2021-03-011-51/+54
| | | | | | |
| * | | | | | Implement line<->block comment assistJohn Renner2021-02-254-5/+427
| | | | | | |
* | | | | | | Merge #7844bors[bot]2021-03-025-9/+11
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7844: Fix ProcMacroClient dropped too early in cli r=edwin0cheng a=edwin0cheng Fix #7843 bors r+ Co-authored-by: Edwin Cheng <[email protected]>
| * | | | | | | Fix ProcMacroClient dropped too early in cliEdwin Cheng2021-03-025-9/+11
| | | | | | | |
* | | | | | | | Merge #7827bors[bot]2021-03-021-2/+38
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7827: Fix proc macro TokenStream::from_str token ids r=vlad20012 a=vlad20012 To be honest, I don't know what it changes from a user perspective. Internally, this fixes spans (token ids) of a `TokenStream` parsed from a string: ```rust #[proc_macro_derive(FooDerive)] pub fn foo_derive(item: TokenStream) -> TokenStream { "fn foo() {}".parse().unwrap() } ``` Previously, `TokenStream` was constructed from tokens with incremental ids (that conflicted with call-site tokens). Now they are `-1`. Co-authored-by: vlad20012 <[email protected]>
| * | | | | | | | Fix proc macro TokenStream::from_str token idsvlad200122021-03-011-2/+38
| | | | | | | | |