aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Merge #8767bors[bot]2021-05-256-102/+167
|\ | | | | | | | | | | | | | | | | | | | | | | 8767: implement range formatting r=matklad a=euclio Fixes #7580. This PR implements the `textDocument/rangeFormatting` request using `rustfmt`'s `--file-lines` option. Still needs some tests. What I want to know is how I should handle the instability of the `--file-lines` option. It's still unstable in rustfmt, so it's only available on nightly, and needs a special flag to enable. Is there a way for `rust-analyzer` to detect if it's using nightly rustfmt, or for users to opt-in? Co-authored-by: Andy Russell <[email protected]>
| * implement range formattingAndy Russell2021-05-236-102/+167
| |
* | Merge #8986bors[bot]2021-05-251-0/+32
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8986: Add go to type definition for struct fields within struct r=matklad a=lf- Example: ```rust struct A; struct B { a/*<- cursor*/: A, } ``` Go to type definition used to not work on this position. It now goes to `A` as expected. Co-authored-by: Jade <[email protected]>
| * | Add go to type definition for struct fields within structJade2021-05-251-0/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Example: ```rust struct A; struct B { a/*<- cursor*/: A, } ``` Go to type definition used to not work on this position. It now goes to `A` as expected.
* | | Merge #8985bors[bot]2021-05-251-15/+62
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8985: minor: Minor test fixes / new tests r=flodiebold a=flodiebold Co-authored-by: Florian Diebold <[email protected]>
| * | | Minor test fixes / new testsFlorian Diebold2021-05-251-15/+62
|/ / /
* | | Merge #8983bors[bot]2021-05-252-1/+45
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 8983: Fix type mismatch caused by macros r=flodiebold a=flodiebold MacroStmts should be completely transparent, but it prevented coercion. (I should maybe give `infer_expr` and `infer_expr_inner` better names.) Co-authored-by: Florian Diebold <[email protected]>
| * | Fix type mismatch caused by macrosFlorian Diebold2021-05-252-1/+45
|/ / | | | | | | | | | | MacroStmts should be completely transparent, but it prevented coercion. (I should maybe give `infer_expr` and `infer_expr_inner` better names.)
* | Merge #8942bors[bot]2021-05-2510-62/+124
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8942: Add `library` semantic token modifier to items from other crates r=arzg a=arzg Closes #5772. A lot of code here is pretty repetitive; please let me know if you have any ideas how to improve it, or whether it’s fine as-is. Side-note: How can I add tests for this? I don’t see a way for the test Rust code in `test_highlighting` to reference other crates to observe the new behaviour. Co-authored-by: Aramis Razzaghipour <[email protected]>
| * | Refactor application of `library` semantic token modifierAramis Razzaghipour2021-05-251-62/+15
| | |
| * | Remove superfluous early-returnsAramis Razzaghipour2021-05-241-18/+22
| | |
| * | Rename ‘foreign’ semantic token modifier to ‘library’Aramis Razzaghipour2021-05-245-20/+20
| | |
| * | Add testing of foreign item highlightingAramis Razzaghipour2021-05-242-1/+55
| | |
| * | Highlight foreign modules as suchAramis Razzaghipour2021-05-241-1/+9
| | |
| * | Remove hir krate methodsAramis Razzaghipour2021-05-244-59/+11
| | |
| * | Add highlighting of items from other cratesAramis Razzaghipour2021-05-246-12/+103
| | |
* | | Merge #8979bors[bot]2021-05-241-5/+9
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8979: minor: update `CrateGraph` comment r=jonas-schievink a=jonas-schievink `cfg` flags are now implemented, and crates *may* have names, it doesn't doesn't matter for name resolution bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Update `CrateGraph` commentJonas Schievink2021-05-241-5/+9
| | | | | | | | | | | | | | | | | | | | `cfg` flags are now implemented, and crates *may* have names, it doesn't doesn't matter for name resolution
* | | | Merge #8978bors[bot]2021-05-243-13/+14
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8978: internal: intern `AttrInput` r=jonas-schievink a=jonas-schievink saves ~10 MB on r-a bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | internal: intern `AttrInput`Jonas Schievink2021-05-243-13/+14
|/ / /
* | | Merge #8975bors[bot]2021-05-244-62/+112
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8975: Use todo!() as placeholder body for generated match arms r=matklad a=jDomantas `todo!()` seems to be a better fit for this than `{}`. Seeing that this assist predates stabilization of `todo` my guess is that simply no one bothered to change it yet. Also fixed the issue where if the last arm was not block-like, rust-analyzer would not add a comma after it and would generate invalid code. Co-authored-by: Domantas Jadenkus <[email protected]>
| * | | add test that it does not create extraneous commasDomantas Jadenkus2021-05-241-0/+20
| | | |
| * | | tidyDomantas Jadenkus2021-05-242-2/+3
| | | |
| * | | generate match arms with todo!() as placeholder bodyDomantas Jadenkus2021-05-242-60/+89
| | | |
* | | | Merge #8977bors[bot]2021-05-247-90/+101
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8977: internal: minor `TokenMap` cleanups r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | FixupJonas Schievink2021-05-242-4/+8
| | | | |
| * | | | Make `TokenTextRange` privateJonas Schievink2021-05-245-11/+10
| | | | |
| * | | | Move `TokenMap` to its own fileJonas Schievink2021-05-243-81/+89
| | | | |
* | | | | Merge #8976bors[bot]2021-05-245-25/+25
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8976: internal: rename hypothetical -> speculative r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
| * | | | | internal: rename hypothetical -> speculativeAleksey Kladov2021-05-245-25/+25
|/ / / / / | | | | | | | | | | | | | | | | | | | | Lets steal this good naming from Roslyn before I forget about it yet again.
* | | | | Merge #8970bors[bot]2021-05-241-15/+21
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8970: fix: duplicate dependencies that have multiple DepKinds r=jonas-schievink a=jonas-schievink Cargo collapses identical dependencies that are listed under `[dependencies]` and `[build-dependencies]` into a single `NodeDep`. We have to undo that by duplicating the dependency for each of its listed `DepKind`s. Not doing that would incorrectly treat a dependency as `DepKind::Normal`, even though it is *also* meant to be a `DepKind::Build`. Fixes https://github.com/rust-analyzer/rust-analyzer/pull/8812#issuecomment-847125395 bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | | | Duplicate dependencies that have multiple DepKindsJonas Schievink2021-05-241-15/+21
| |/ / / /
* | | | | Merge #8967bors[bot]2021-05-241-1/+1
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8967: fix cursor position after item move command r=matklad a=eduardocanellas Co-authored-by: Eduardo Canellas <[email protected]>
| * | | | fix: cursor position after item move commandEduardo Canellas2021-05-241-1/+1
| | | | | | | | | | | | | | | | | | | | closes Item movers need some fixes #8492
* | | | | Merge #8963bors[bot]2021-05-2419-60/+116
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8963: Bump deps r=matklad a=lnicola Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | | | Update test fixturesLaurențiu Nicola2021-05-2411-1/+57
| | | | | |
| * | | | | Bump rustc_lexerLaurențiu Nicola2021-05-242-3/+3
| | | | | |
| * | | | | Disable `unaliged` feature of `object`Laurențiu Nicola2021-05-241-1/+1
| | | | | |
| * | | | | Bump objectLaurențiu Nicola2021-05-244-12/+6
| | | | | |
| * | | | | Bump misc depsLaurențiu Nicola2021-05-243-43/+49
| | | | | |
| * | | | | Bump chalkLaurențiu Nicola2021-05-242-11/+11
| |/ / / /
* | | | | Merge #8969bors[bot]2021-05-241-4/+4
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8969: fix: Update download instructions r=cschmatzler a=lnicola Closes #8966 Co-authored-by: Laurențiu Nicola <[email protected]>
| * | | | | Update download instructionsLaurențiu Nicola2021-05-241-4/+4
|/ / / / /
* | | | | Merge #8968bors[bot]2021-05-241-1/+1
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8968: docs: fix binary installation instructions r=matklad a=cschmatzler fixes #8966 Co-authored-by: Christoph Schmatzler <[email protected]>
| * | | | docs: fix binary installation instructionsChristoph Schmatzler2021-05-241-1/+1
|/ / / / | | | | | | | | | | | | issue #8926 removed uncompressed release artifacts. This updates the documentation to update instructions accordingly.
* | | | Merge #8965bors[bot]2021-05-2412-38/+59
|\ \ \ \ | |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8965: internal: intern `TypeBound` and `GenericArgs` r=jonas-schievink a=jonas-schievink Saves a few MB, but not much bors r+ Co-authored-by: Jonas Schievink <[email protected]>
| * | | Intern `GenericArgs`Jonas Schievink2021-05-244-11/+10
| | | | | | | | | | | | | | | | This shaves off another ~4 mb or so
| * | | internal: intern `TypeBound`sJonas Schievink2021-05-2412-27/+49
|/ / / | | | | | | | | | | | | Doesn't save much memory (~2 mb), but interning things is generally a good pattern to follow
* | | Merge #8955bors[bot]2021-05-2411-61/+210
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 8955: feature: Support standalone Rust files r=matklad a=SomeoneToIgnore ![standalone](https://user-images.githubusercontent.com/2690773/119277037-0b579380-bc26-11eb-8d77-20d46ab4916a.gif) Closes https://github.com/rust-analyzer/rust-analyzer/issues/6388 Caveats: * I've decided to support multiple detached files in the code (anticipating the scratch files), but I found no way to open multiple files in VSCode at once: running `code *.rs` makes the plugin to register in the `vscode.workspace.textDocuments` only the first file, while code actually displays all files later. Apparently what happens is the same as when you have VSCode open at some workplace already and then run `code some_other_file.rs`: it gets opened in the same workspace of the same VSCode with no server to support it. If there's a way to override it, I'd appreciate the pointer. * No way to toggle inlay hints, since the setting is updated for the workspace (which does not exist for a single file opened) > [2021-05-24 00:22:49.100] [exthost] [error] Error: Unable to write to Workspace Settings because no workspace is opened. Please open a workspace first and try again. * No runners/lens to run or check the code are implemented for this mode. In theory, we can detect `rustc`, run it on a file and run the resulting binary, but not sure if worth doing it at this stage. Otherwise imports, hints, completion and other features work. Co-authored-by: Kirill Bulatov <[email protected]>
| * | | Add a FIXMEKirill Bulatov2021-05-241-0/+9
| | | |