aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Implement builtin `cfg!` macroJonas Schievink2021-03-105-2/+20
|
* Merge #7961bors[bot]2021-03-101-0/+9
|\ | | | | | | | | | | | | | | | | | | 7961: add user docs for ssr assist r=JoshMcguigan a=JoshMcguigan @matklad This is a small follow up on #7874, adding user docs for the SSR assist functionality. Since most other assists aren't handled this way I wasn't sure exactly how we wanted to document this, so feel free to suggest alternatives. Co-authored-by: Josh Mcguigan <[email protected]>
| * add user docs for ssr assistJosh Mcguigan2021-03-101-0/+9
| |
* | Merge #7959bors[bot]2021-03-102-5/+40
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7959: Prefer names from outer DefMap over extern prelude r=jonas-schievink a=jonas-schievink Fixes https://github.com/rust-analyzer/rust-analyzer/issues/7919 Just one more special case, how bad could it be. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Prefer names from outer DefMap over extern preludeJonas Schievink2021-03-102-5/+40
|/ /
* | Merge #7958bors[bot]2021-03-104-2/+15
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7958: Avoid double text edits when renaming mod declaration r=matklad a=Veykril Closes https://github.com/rust-analyzer/rust-analyzer/issues/7916 See https://github.com/microsoft/vscode-languageserver-node/issues/752 for context Co-authored-by: Lukas Wirth <[email protected]>
| * | Avoid double text edits when renaming mod declarationLukas Wirth2021-03-104-2/+15
| |/
* | Merge #7874bors[bot]2021-03-104-1/+300
|\ \ | |/ |/| | | | | | | | | | | | | | | | | | | | | | | 7874: add apply ssr assist r=JoshMcguigan a=JoshMcguigan This PR adds an `Apply SSR` assist which was briefly mentioned in #3186. It allows writing an ssr rule as a comment, and then applying that SSR via an assist. This workflow is much nicer than the default available via `coc-rust-analyzer` when iterating to find the proper replacement. As currently implemented, this requires the ssr rule is written as a single line in the comment, and it doesn't require any kind of prefix. Anything which properly parses as a ssr rule will enable the assist. The benefit of requiring the ssr rule be on a single line is it allows for a workflow where the user has several rules written one after the other, possibly to be triggered in order, without having to try to parse multiple lines of text and determine where one rule ends and the next begins. The benefit of not requiring a prefix is less typing :laughing: - plus, I think the chance of something accidentally parsing as an ssr rule is minimal. I think a reasonable extension of this would be to allow either any ssr rule that fits on a single line, or any comment block which in its entirety makes up a single ssr rule (parsing a comment block containing multiple ssr rules and running them all would break the use case that currently works where a user writes multiple ssr rules then runs them each one by one in arbitrary order). I've marked this as a draft because for some reason I am strugging to make the unit tests pass. It does work when I compile rust-analyzer and test it in my editor though, so I'm not sure what is going on. Co-authored-by: Josh Mcguigan <[email protected]>
| * add apply ssr assistJosh Mcguigan2021-03-104-1/+300
|/
* Merge #7957bors[bot]2021-03-102-20/+12
|\ | | | | | | | | | | | | | | | | | | | | | | | | 7957: Fix labels for single import assists r=SomeoneToIgnore a=SomeoneToIgnore Before: ![image](https://user-images.githubusercontent.com/2690773/110609185-a26b8e00-8195-11eb-87be-d21b75817c22.png) After: ![image](https://user-images.githubusercontent.com/2690773/110609198-a5667e80-8195-11eb-8c58-9ae19ba71905.png) Co-authored-by: Kirill Bulatov <[email protected]>
| * Fix labels for single import assistsKirill Bulatov2021-03-102-20/+12
|/
* Merge #7955bors[bot]2021-03-101-14/+1
|\ | | | | | | | | | | | | | | 7955: Stop fetching ItemTrees for no reason r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * Stop fetching ItemTrees for no reasonJonas Schievink2021-03-101-14/+1
|/
* Merge #6822bors[bot]2021-03-094-3/+173
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 6822: Read version of rustc that compiled proc macro r=edwin0cheng a=jsomedon Signed-off-by: Jay Somedon <[email protected]> This PR is to fix #6174. I basically * added two methods, `read_version` and `read_section`(used by `read_version`) * two new crates `snap` and `object` to be used by those two methods I just noticed that some part of code were auto-reformatted by rust-analyzer on file save. Does it matter? Co-authored-by: Jay Somedon <[email protected]> Co-authored-by: Edwin Cheng <[email protected]>
| * use doc-commentsEdwin Cheng2021-03-091-21/+22
| |
| * Print warning if proc-macro built by old rustcEdwin Cheng2021-03-042-73/+148
| |
| * Revise error message regarding metadata versionJay Somedon2021-03-041-10/+6
| | | | | | | | Co-authored-by: Laurențiu Nicola <[email protected]>
| * Update condition check code styleJay Somedon2021-03-041-1/+1
| | | | | | Co-authored-by: Jonas Schievink <[email protected]>
| * Update commentJay Somedon2021-03-041-1/+1
| | | | | | Co-authored-by: Jonas Schievink <[email protected]>
| * Fix multiple issues from code reviewJay Somedon2021-03-043-34/+44
| | | | | | | | | | | | | | | | * check metadata version * use memmap * use Result instead of unwrap with Jay Somedon <[email protected]>
| * Configure object crate's featureJay Somedon2021-03-041-1/+1
| | | | | | | | Signed-off-by: Jay Somedon <[email protected]>
| * Read version of rustc that compiled proc macroJay Somedon2021-03-043-12/+100
| | | | | | | | With Jay Somedon <[email protected]>
* | Merge #7949bors[bot]2021-03-0910-10/+12
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | 7949: Compilation speed r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Compilation speedAleksey Kladov2021-03-0910-10/+12
|/ /
* | Merge #7948bors[bot]2021-03-0911-100/+61
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | 7948: Delete `ContainerId` r=jonas-schievink a=jonas-schievink Since block expressions containing items now have a `ModuleId`, there's no need to also treat `DefWithBodyId` as a potential item container. Since https://github.com/rust-analyzer/rust-analyzer/pull/7878, only the `ModuleId` variant of `ContainerId` was ever created, so just delete the thing and use `ModuleId` everywhere. bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | Delete `ContainerId`Jonas Schievink2021-03-0911-100/+61
|/ /
* | Merge #7878bors[bot]2021-03-0915-229/+111
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7878: Remove `item_scope` field from `Body` r=jonas-schievink a=jonas-schievink Closes https://github.com/rust-analyzer/rust-analyzer/issues/7632 Instead of storing an `ItemScope` filled with inner items, we store the list of `BlockId`s for all block expressions that are part of a `Body`. Code can then query the `block_def_map` for those. bors r+ Co-authored-by: Jonas Schievink <[email protected]> Co-authored-by: Jonas Schievink <[email protected]>
| * | Stop using `ContainerId` in `AssocContainerId`Jonas Schievink2021-03-097-12/+12
| | |
| * | Check ancestor maps when computing traits in scopeJonas Schievink2021-03-092-0/+43
| | |
| * | Remove `item_scope` field from `Body`Jonas Schievink2021-03-093-175/+6
| | |
| * | Use `body.block_scopes` in `hir_ty` testsJonas Schievink2021-03-091-6/+14
| | |
| * | Use `body.block_scopes` to validate inner itemsJonas Schievink2021-03-091-3/+8
| | |
| * | Use `body.block_scopes` in `ChildBySource`Jonas Schievink2021-03-091-1/+5
| | |
| * | Store inner `BlockId`s in `Body`Jonas Schievink2021-03-092-1/+6
| | |
| * | Change `ChildBySource` to allow reusing `DynMap`Jonas Schievink2021-03-092-32/+18
| | |
* | | Merge #7945bors[bot]2021-03-094-72/+96
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | 7945: Future proof completion scores r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Future proof completion scoresAleksey Kladov2021-03-094-72/+96
| | |
* | | Merge #7942bors[bot]2021-03-094-33/+48
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7942: Show whether a binding is mutable or not on hover r=Veykril a=Veykril bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Show whether a binding is mutable or not on hoverLukas Wirth2021-03-093-28/+47
| | | |
| * | | Don't show const items initializer expressions on hoverLukas Wirth2021-03-091-5/+1
| | | |
* | | | Merge #7944bors[bot]2021-03-094-45/+103
|\ \ \ \ | |/ / / |/| / / | |/ / | | | | | | | | | | | | | | | 7944: Selecting `&mut foo` completion now actually inserts `&mut` r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | Selecting `&mut foo` completion now actually inserts `&mut`Aleksey Kladov2021-03-091-15/+16
| | |
| * | Cleanup auto-ref in completionAleksey Kladov2021-03-094-30/+87
| | |
* | | Merge #7941bors[bot]2021-03-091-14/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7941: Fix unused definitions not being document highlit r=Veykril a=Veykril Fixes #7939 bors r+ Co-authored-by: Lukas Wirth <[email protected]>
| * | | Fix unused definitions not being document highlitLukas Wirth2021-03-091-14/+7
| | | |
* | | | Merge #7940bors[bot]2021-03-093-38/+37
|\ \ \ \ | | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | 7940: Cleanup r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | CleanupAleksey Kladov2021-03-091-4/+4
| | | |
| * | | CleanupAleksey Kladov2021-03-092-8/+7
| | | |
| * | | Fix bad namesAleksey Kladov2021-03-091-26/+26
|/ / / | | | | | | | | | `res` should only be used for the result variable
| | |
| \ \
*-. \ \ Merge #7873 #7933bors[bot]2021-03-0918-380/+847
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 7873: Consider unresolved qualifiers during flyimport r=matklad a=SomeoneToIgnore Closes https://github.com/rust-analyzer/rust-analyzer/issues/7679 Takes unresolved qualifiers into account, providing better completions (or none, if the path is resolved or do not match). Does not handle cases when both path qualifier and some trait has to be imported: there are many extra issues with those (such as overlapping imports, for instance) that will require large diffs to address. Also does not do a fuzzy search on qualifier, that requires some adjustments in `import_map` for better queries and changes to the default replace range which also seems relatively big to include here. ![qualifier_completion](https://user-images.githubusercontent.com/2690773/110040808-0af8dc00-7d4c-11eb-83db-65af94e843bb.gif) 7933: Improve compilation speed r=matklad a=matklad bors r+ 🤖 Co-authored-by: Kirill Bulatov <[email protected]> Co-authored-by: Aleksey Kladov <[email protected]>