aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* 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-132-9/+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-052-25/+8
| | | |
| * | | added region foldingLuciano Bestia2021-01-183-9/+73
| | | |
* | | | Merge #7513bors[bot]2021-03-028-163/+579
|\ \ \ \ | |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-288-163/+579
| | | |
* | | | Merge #7848bors[bot]2021-03-028-29/+29
|\ \ \ \ | |_|_|/ |/| | | | | | | | | | | | | | | | | | | | | | | 7848: Bump cargo_metadata r=matklad a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | Bump cargo_metadataLaurențiu Nicola2021-03-028-29/+29
| | | |
* | | | Switch from pico-args to xflagsAleksey Kladov2021-03-025-301/+312
| | | |
* | | | 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
| | | | | | |
| | | | | | |
| \ \ \ \ \ \
*-. \ \ \ \ \ \ Merge #7829 #7833bors[bot]2021-03-0111-67/+81
|\ \ \ \ \ \ \ \ | | |_|_|_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7829: Bump deps r=matklad a=lnicola Unfortunately, this brings a bunch of proc macros dep because `cargo-metadata` went full-in on `derive-builder`. I'm not sure what we can do here.. 7833: Use chalk_ir::Mutability r=Veykril a=Veykril Co-authored-by: Laurențiu Nicola <[email protected]> Co-authored-by: Lukas Wirth <[email protected]>
| | * | | | | | Use chalk_ir::MutabilityLukas Wirth2021-03-0110-64/+78
| | | | | | | |
| * | | | | | | Bump chalkLaurențiu Nicola2021-03-011-3/+3
| | | | | | | |
* | | | | | | | Fix `find_path` when inner items are presentJonas Schievink2021-03-014-28/+88
| |_|_|/ / / / |/| | | | | |
* | | | | | | Use an unversioned profile dependency in mbeLaurențiu Nicola2021-03-011-5/+2
|/ / / / / /
* | | | | | Merge #7778bors[bot]2021-03-012-2/+40
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7778: Fix lowering trailing self paths in UseTrees r=Veykril a=Veykril Noticed that hovering over `self` in a use tree like `use foo::bar::{self}` showing documentation and such for the current module instead of `bar`. Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Fix lowering trailing self paths in UseTreesLukas Wirth2021-02-282-2/+40
| | | | | |
* | | | | | Introduce Ty::AliasLukas Wirth2021-03-0114-98/+109
| |/ / / / |/| | | |
* | | | | Merge #7823bors[bot]2021-03-0111-152/+163
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7823: Being Ty::InferenceVar closer to chalk equivalent r=flodiebold a=Veykril Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | Assert index relationship between type_variable_table and var_unification_tableLukas Wirth2021-03-012-22/+13
| | | | | |
| * | | | | Being Ty::InferenceVar closes to chalk equivalentLukas Wirth2021-03-0111-152/+172
| | | | | |
* | | | | | Merge #7822bors[bot]2021-03-011-1/+3
|\ \ \ \ \ \ | |/ / / / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7822: Paperover a bug in cargo-workspace for publish RA r=lnicola a=edwin0cheng r? @lnicola See also https://github.com/pksunkara/cargo-workspaces/issues/39 Co-authored-by: Edwin Cheng <[email protected]>
| * | | | | Paperover a bug in cargo-workspace for publish RAEdwin Cheng2021-03-011-1/+3
| | | | | |
| | | | | |
| \ \ \ \ \
*-. \ \ \ \ \ Merge #7819 #7820bors[bot]2021-03-014-3/+41
|\ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7819: Speedup heavy tests r=matklad a=matklad bors r+ 🤖 7820: Update vscode README with a small features list r=matklad a=Veykril Nothing grande but I figured this is a bit better than showing almost nothing Co-authored-by: Aleksey Kladov <[email protected]> Co-authored-by: Lukas Wirth <[email protected]>
| | * | | | | | Update vscode README with a small features listLukas Wirth2021-03-012-0/+18
| | | | | | | |
| * | | | | | | Speedup heavy testsAleksey Kladov2021-03-012-3/+23
|/ / / / / / / | | | | | | | | | | | | | | | | | | | | | We used to skip sysroot, but this logic got bitrotted, reinstalling.
* | | | | | | Clean up unused field warningDániel Buga2021-03-012-15/+1
| | | | | | |
* | | | | | | Remove redundant semicolonDániel Buga2021-03-011-1/+1
|/ / / / / /
* | | | | | Merge #7816bors[bot]2021-02-289-86/+98
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7816: Lift Ty::Fn into a struct r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | | Lift FnPointer into a structLukas Wirth2021-02-289-86/+98
| | | | | | |
* | | | | | | hir_ty: use default type generic for box expressionscynecx2021-02-282-0/+61
|/ / / / / /
* | | | | | Remove Substs from Ty::ForeignTypeLukas Wirth2021-02-285-18/+9
| | | | | |
* | | | | | Turn Ty::Tuple variant into a tuple-variantLukas Wirth2021-02-288-22/+20
| | | | | |
* | | | | | Merge #7813bors[bot]2021-02-2817-943/+709
|\ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7813: Inline TypeCtor into Ty r=flodiebold a=Veykril This removes the `ApplicationTy` variant from `Ty` bringing the representation a lot closer to chalk's `TyKind`. Co-authored-by: Lukas Wirth <[email protected]>
| * | | | | | Fix code_model::Type::walk not walking all typesLukas Wirth2021-02-283-26/+25
| | | | | | |