aboutsummaryrefslogtreecommitdiff
path: root/crates
Commit message (Collapse)AuthorAgeFilesLines
* Use another name instead of dbg for testEdwin Cheng2021-01-081-4/+4
|
* Add testEdwin Cheng2021-01-081-0/+13
|
* Fix bug when $crate in LHS in mbeEdwin Cheng2021-01-082-5/+8
|
* Merge #7145bors[bot]2021-01-089-58/+235
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7145: Proper handling $crate Take 2 [DO NOT MERGE] r=edwin0cheng a=edwin0cheng Similar to previous PR (#7133) , but improved the following things : 1. Instead of storing the whole `ExpansionInfo`, we store a similar but stripped version `HygieneInfo`. 2. Instread of storing the `SyntaxNode` (because every token we are interested are IDENT), we store the `TextRange` only. 3. Because of 2, we now can put it in Salsa. 4. And most important improvement: Instead of computing the whole frames every single time, we compute it recursively through salsa: (Such that in the best scenario, we only need to compute the first layer of frame) ```rust let def_site = db.hygiene_frame(info.def.file_id); let call_site = db.hygiene_frame(info.arg.file_id); HygieneFrame { expansion: Some(info), local_inner, krate, call_site, def_site } ``` The overall speed compared to previous PR is much faster (65s vs 45s) : ``` [WITH old PR] Database loaded 644.86ms, 284mi Crates in this dir: 36 Total modules found: 576 Total declarations: 11153 Total functions: 8715 Item Collection: 15.78s, 91562mi Total expressions: 240721 Expressions of unknown type: 2635 (1%) Expressions of partially unknown type: 2064 (0%) Type mismatches: 865 Inference: 49.84s, 250747mi Total: 65.62s, 342310mi rust-analyzer -q analysis-stats . 66.72s user 0.57s system 99% cpu 1:07.40 total [WITH this PR] Database loaded 665.83ms, 284mi Crates in this dir: 36 Total modules found: 577 Total declarations: 11188 Total functions: 8743 Item Collection: 15.28s, 84919mi Total expressions: 241229 Expressions of unknown type: 2637 (1%) Expressions of partially unknown type: 2064 (0%) Type mismatches: 868 Inference: 30.15s, 135293mi Total: 45.43s, 220213mi rust-analyzer -q analysis-stats . 46.26s user 0.74s system 99% cpu 47.294 total ``` *HOWEVER*, it is still a perf regression (35s vs 45s): ``` [WITHOUT this PR] Database loaded 657.42ms, 284mi Crates in this dir: 36 Total modules found: 577 Total declarations: 11177 Total functions: 8735 Item Collection: 12.87s, 72407mi Total expressions: 239380 Expressions of unknown type: 2643 (1%) Expressions of partially unknown type: 2064 (0%) Type mismatches: 868 Inference: 22.88s, 97889mi Total: 35.74s, 170297mi rust-analyzer -q analysis-stats . 36.71s user 0.63s system 99% cpu 37.498 total ``` Co-authored-by: Edwin Cheng <[email protected]>
| * Proper handling $crate Take 2Edwin Cheng2021-01-079-58/+235
| |
* | Simplify mod completionLukas Wirth2021-01-071-38/+31
| |
* | Tidy up attribute completion matchLukas Wirth2021-01-071-19/+11
| |
* | Switch test markerPhil Ellison2021-01-071-1/+1
| |
* | cargo fmtPhil Ellison2021-01-072-7/+11
| |
* | Add fix to wrap return expression in SomePhil Ellison2021-01-077-21/+87
| |
* | Merge #7193bors[bot]2021-01-078-41/+101
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7193: Show progress for fetching workspace (cargo-metadata and loadOutDirsFromCheck) r=matklad a=edwin0cheng ![Peek 2021-01-07 21-57](https://user-images.githubusercontent.com/11014119/103902132-0db4c780-5135-11eb-94d3-32429445be87.gif) Fixes #7188 Fixes #3300 Co-authored-by: Edwin Cheng <[email protected]>
| * | Report progress for cargo metadata and output-dirEdwin Cheng2021-01-075-18/+77
| | |
| * | Refactor out JodChildEdwin Cheng2021-01-073-23/+24
| | |
* | | Merge #7191bors[bot]2021-01-071-24/+27
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7191: Adjust vfs crate documentation r=matklad a=arnaudgolfouse This removes an outdated comment, and uses intra-doc links Co-authored-by: Arnaud <[email protected]>
| * | | Use `file_set::FileSet` and `FileSet` consistently in docArnaud2021-01-071-5/+5
| | | | | | | | | | | | | | | | | | | | The first occurrence of `FileSet` has the full path (`file_set::FileSet`), while every other is simply `FileSet`.
| * | | Use intra-doc links in `vfs` crate documentationArnaud2021-01-071-20/+26
| | | |
| * | | Remove the reference to `WalkdirLoaderHandle` in vfs documentationArnaud2021-01-071-3/+0
| | | | | | | | | | | | | | | | This structure was deleted in commit #dad1333
* | | | Better fixture highlightAleksey Kladov2021-01-077-18/+140
| | | |
* | | | Merge #7184bors[bot]2021-01-07108-1762/+1742
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7184: Changes Cursor Marker To $0 r=matklad a=kevaundray Co-authored-by: Kevaundray Wedderburn <[email protected]>
| * | | | Change <|> to $0 - RebaseKevaundray Wedderburn2021-01-07108-1762/+1742
| |/ / /
* / / / Use american spelling for configAleksey Kladov2021-01-071-9/+22
|/ / / | | | | | | | | | | | | | | | | | | | | | As per https://github.com/rust-analyzer/rust-analyzer/blob/171c3c08fe245938fb25321394233de5fe2abc7c/docs/dev/style.md#variable-naming Also implement config aliasing, for pain-free settings migrations in the future
* / / Remove some stale deprecationsAleksey Kladov2021-01-075-12/+5
|/ /
* | Align config's API with usageAleksey Kladov2021-01-0622-162/+164
| | | | | | | | The config now is mostly immutable, optimize for that.
* | Merge #7183bors[bot]2021-01-067-78/+32
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7183: YAGNI active_resolve_capabilities r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | YAGNI active_resolve_capabilitiesAleksey Kladov2021-01-067-78/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | This leaks a lot of LSP details into ide layer, which we want to avoid: https://github.com/rust-analyzer/rust-analyzer/tree/c9cec381bcfd97e5f3536e31a9c546ab5c0665e6/docs/dev#lsp-independence Additionally, all what this infra does is providing a toggle for auto-import completion, but we already have one!
* | | Replace last usages of difference with dissimilarJesse Bakker2021-01-063-5/+17
| | |
* | | Merge #7181bors[bot]2021-01-062-2/+27
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7181: Document project_model::PackageData and project_model::TargetData r=arnaudgolfouse a=arnaudgolfouse This PR adds some documentation for the `project_model` crate. Some of the field descriptions were taken directly from their `cargo_metadata` counterpart : - `PackageData` -> `cargo_metadata::Package` - `TargetData` -> `cargo_metadata::Target` Co-authored-by: Arnaud <[email protected]>
| * | Document `project_model::TargetData`Arnaud2021-01-061-0/+6
| | | | | | | | | | | | This adds a description for `TargetData` and all its fields.
| * | Document `project_model::PackageData`Arnaud2021-01-061-0/+16
| | | | | | | | | | | | This adds a description for `PackageData` and all its fields.
| * | Make `PackageData`, `TargetData` and `PackageDependency` publicArnaud2021-01-061-2/+5
| | | | | | | | | | | | | | | This makes them discoverable through documentation. They were already publicly accessible through `Package` and `Target`.
* | | More readable testAleksey Kladov2021-01-061-2/+12
| | |
* | | Less confusing instr statAleksey Kladov2021-01-061-1/+5
|/ /
* | Better target for move moduleAleksey Kladov2021-01-063-35/+47
| |
* | Merge #7177bors[bot]2021-01-063-6/+6
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7177: Speed up snapshoting r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Speed up snapshotingAleksey Kladov2021-01-063-6/+6
| | | | | | | | | | | | Config can be fairly big, no need to deep clone it frequently
* | | Merge #7172bors[bot]2021-01-0614-442/+412
|\| | | | | | | | | | | | | | | | | | | | | | | 7172: refactor config to be lossless & precise r=matklad a=matklad Co-authored-by: Aleksey Kladov <[email protected]>
| * | More maintainable configAleksey Kladov2021-01-0614-442/+412
| | | | | | | | | | | | | | | | | | | | | Rather than eagerly converting JSON, we losslessly keep it as is, and change the shape of user-submitted data at the last moment. This also allows us to remove a bunch of wrong Defaults
* | | Merge #7176bors[bot]2021-01-061-13/+9
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7176: Attribute completion r=matklad a=FlowerBOII Solve #7167. I removed the optional args for the attributes ```deprecated```, ```must_use``` and ```should_panic```. I also updated their respective tests. Please let me know if I missed something. Co-authored-by: FlowerBOII <[email protected]>
| * | Change the should_panic completion and his related attribute testFlowerBOII2021-01-061-7/+3
| | |
| * | Remove the args for the must_use attibute and change the related testsFlowerBOII2021-01-061-3/+3
| | |
| * | Update deprecated testFlowerBOII2021-01-061-3/+3
| | |
| * | Remove a part of the deprecated autocompletionFlowerBOII2021-01-061-1/+1
| | |
* | | Merge #7174bors[bot]2021-01-061-3/+15
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | 7174: Normalize line endings when formatting r=matklad a=Jesse-Bakker Fixes #7166 Co-authored-by: Jesse Bakker <[email protected]>
| * | Normalize line endings when formattingJesse Bakker2021-01-051-3/+15
| | |
* | | Merge #7170bors[bot]2021-01-056-83/+124
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7170: More maintainable caps config r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | More maintainable caps configAleksey Kladov2021-01-056-83/+124
| | | | | | | | | | | | | | | | | | | | The idea here is that we preserve client's config as is, without changes. This gets rid of state!
* | | | Emit diagnostics for unresolved item-level macrosJonas Schievink2021-01-051-1/+32
|/ / /
* | | Merge #7168bors[bot]2021-01-0516-26/+31
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7168: Rename expr -> tail_expr r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | Rename expr -> tail_exprAleksey Kladov2021-01-0516-26/+31
| | | |
* | | | Merge #7140bors[bot]2021-01-054-117/+197
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7140: Store trait associated items in fst r=matklad a=SomeoneToIgnore Store imported traits' associated function/methods and constants into `ImportMap.fst` and pefrorm the imports search on them. This is a first step towards trait autoimport during completion functionality, the way I see it, after this PR, only a few major things are left to be done: * store all traits' assoc items into fst, not only the ones in scope, as we do now. Any code pointers on how to do this are welcome 😄 * adjust a few modules in completions crate (`dot.rs`, `qualified_path.rs` at least) to query the import map, reusing the `import_assets` logic heavily == With the current import and autoimport implementations, it looks like for a single query, we're either interested in either associated items lookup or in all other `fst` contents lookup, but never both simultaneously. I would rather not split `fst` in two but add another `Query` parameter to separate those, but let me know if you have any ideas. Co-authored-by: Kirill Bulatov <[email protected]>