Skip to content

Commit 22ca3fd

Browse files
committed
Auto merge of rust-lang#16550 - DavisVaughan:feature/activate-on-top-level-cargo-toml, r=Veykril
Activate on top level `Cargo.toml` and `rust-project.json` files I believe there is an issue with how rust-analyzer is activated from within a VS Code project. IIUC, the intent is that when you open a rust project with a top level `Cargo.toml`, then rust-analyzer should just start right up due to a VS Code activation event. This is not currently the case. i.e. run something like `cargo new ~/Desktop/hithere`, then open that folder in VS Code: https://github.com/rust-lang/rust-analyzer/assets/19150088/1608b985-fd88-4174-a22a-5b3dd0fad84b It is not until you actually open a Rust file that the extension starts up. It looks like this was introduced in rust-lang/rust-analyzer#10442. I do agree that recursive searching with `**/` is likely overkill, but I'm not sure `*/Cargo.toml` is working as expected in this comment (rust-lang/rust-analyzer#10442 (comment)): > For some reason, */Cargo.toml works for both Cargo.toml in the project root and in a subdirectory (but not two levels deep). That does not seem to be the case for me. I even went into VS Code itself and added some fake tests for `glob.match()` (which is eventually what gets used for this) and `*/Cargo.toml` doesn't seem to match a top level `Cargo.toml` (and I think that makes sense). <img width="1087" alt="Screenshot 2024-02-12 at 6 07 08 PM" src="https://github.com/rust-lang/rust-analyzer/assets/19150088/510b0aaa-ac66-48b1-a9e2-a3bdfc237c48"> Lastly, the VS Code search filtering uses the same glob patterns, and it also doesn't match with `*/Cargo.toml`: https://github.com/rust-lang/rust-analyzer/assets/19150088/4973f5e7-270d-489a-8db4-37469ffe12df --- If you want both top level `Cargo.toml`s and 1-level-deep `Cargo.toml`s to be detected by VS Code's activation events, then I think we need to lay both of those conditions out explicitly, which I've done in this PR. That does fix the problem for me. https://github.com/rust-lang/rust-analyzer/assets/19150088/bfcb1223-c45c-479a-9ea4-4be3f36e6838
2 parents 3c4d642 + 45e05ab commit 22ca3fd

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

editors/code/package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,9 @@
6868
"typescript": "^5.1.6"
6969
},
7070
"activationEvents": [
71+
"workspaceContains:Cargo.toml",
7172
"workspaceContains:*/Cargo.toml",
73+
"workspaceContains:rust-project.json",
7274
"workspaceContains:*/rust-project.json"
7375
],
7476
"main": "./out/main",

0 commit comments

Comments
 (0)