Last active
September 12, 2024 17:53
-
-
Save deadalusai/9e13e36d61ec7fb72148 to your computer and use it in GitHub Desktop.
VS Code tasks.json for Rust/Cargo
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Before using this tasks.json you may like to consider trying one of the following VS Code extensions: | |
rust-analyzer | |
Marketplace: https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer | |
Source: https://github.com/rust-analyzer/rust-analyzer | |
rls | |
Marketplace: https://marketplace.visualstudio.com/items?itemName=rust-lang.rust | |
Source: https://github.com/rust-lang/rls-vscode | |
*/ | |
// Available variables which can be used inside of strings. | |
// ${workspaceRoot}: the root folder of the team | |
// ${file}: the current opened file | |
// ${fileBasename}: the current opened file's basename | |
// ${fileDirname}: the current opened file's dirname | |
// ${fileExtname}: the current opened file's extension | |
// ${cwd}: the current working directory of the spawned process | |
{ | |
"version": "2.0.0", | |
"tasks": [ | |
{ | |
"label": "build", | |
"args": ["build", "-v"], | |
"command": "cargo", | |
"group": "build", | |
"problemMatcher": [ | |
{ | |
"owner": "rust", | |
"fileLocation": ["relative", "${workspaceRoot}"], | |
"pattern": { | |
"regexp": "^(.*):(\\d+):(\\d+):\\s+(\\d+):(\\d+)\\s+(warning|error):\\s+(.*)$", | |
"file": 1, | |
"line": 2, | |
"column": 3, | |
"endLine": 4, | |
"endColumn": 5, | |
"severity": 6, | |
"message": 7 | |
} | |
} | |
] | |
}, | |
{ | |
"label": "clean", | |
"args": ["clean"], | |
"command": "cargo", | |
"presentation": { | |
"reveal": "always" | |
} | |
}, | |
{ | |
"label": "run", | |
"args": ["run", "-v"], | |
"command": "cargo", | |
"presentation": { | |
"reveal": "always" | |
}, | |
"group": { | |
"kind": "build", | |
"isDefault": true | |
}, | |
"problemMatcher": [ | |
{ | |
"owner": "rust", | |
"fileLocation": ["relative", "${workspaceRoot}"], | |
"pattern": { | |
"regexp": "^(.*):(\\d+):(\\d+):\\s+(\\d+):(\\d+)\\s+(warning|error):\\s+(.*)$", | |
"file": 1, | |
"line": 2, | |
"column": 3, | |
"endLine": 4, | |
"endColumn": 5, | |
"severity": 6, | |
"message": 7 | |
} | |
} | |
] | |
}, | |
{ | |
"label": "test", | |
"args": ["test"], | |
"command": "cargo", | |
"presentation": { | |
"reveal": "always" | |
}, | |
"group": { | |
"kind": "z", | |
"isDefault": false | |
}, | |
"problemMatcher": [ | |
{ | |
"owner": "rust", | |
"fileLocation": ["relative", "${workspaceRoot}"], | |
"pattern": { | |
"regexp": "^(.*):(\\d+):(\\d+):\\s+(\\d+):(\\d+)\\s+(warning|error):\\s+(.*)$", | |
"file": 1, | |
"line": 2, | |
"column": 3, | |
"endLine": 4, | |
"endColumn": 5, | |
"severity": 6, | |
"message": 7 | |
} | |
}, | |
{ | |
"owner": "rust", | |
"fileLocation": ["relative", "${workspaceRoot}"], | |
"severity": "error", | |
"pattern": { | |
"regexp": "^.*panicked\\s+at\\s+'(.*)',\\s+(.*):(\\d+)$", | |
"message": 1, | |
"file": 2, | |
"line": 3 | |
} | |
} | |
] | |
}, | |
{ | |
"label": "bench", | |
"args": ["bench"], | |
"command": "cargo", | |
"presentation": { | |
"reveal": "always" | |
}, | |
"group": "test", | |
"problemMatcher": [ | |
{ | |
"owner": "rust", | |
"fileLocation": ["relative", "${workspaceRoot}"], | |
"pattern": { | |
"regexp": "^(.*):(\\d+):(\\d+):\\s+(\\d+):(\\d+)\\s+(warning|error):\\s+(.*)$", | |
"file": 1, | |
"line": 2, | |
"column": 3, | |
"endLine": 4, | |
"endColumn": 5, | |
"severity": 6, | |
"message": 7 | |
} | |
}, | |
{ | |
"owner": "rust", | |
"fileLocation": ["relative", "${workspaceRoot}"], | |
"severity": "error", | |
"pattern": { | |
"regexp": "^.*panicked\\s+at\\s+'(.*)',\\s+(.*):(\\d+)$", | |
"message": 1, | |
"file": 2, | |
"line": 3 | |
} | |
} | |
] | |
} | |
] | |
} |
Might be an OSX vs Windows difference, though that seems unlikely. I'd start checking that everything is up to date perhaps. This is the only VS Code extension I have installed:
https://marketplace.visualstudio.com/items?itemName=rust-lang.rust
No worries, a year later it works :P
👍
Just to move the goalposts again, apparently the rust-analyzer project now provides a better experience.
https://marketplace.visualstudio.com/items?itemName=matklad.rust-analyzer
@deadalusai This work ok with the rust-analyzer
plugin?
@wonbyte as I mentioned, I'd suggest using rust-analyzer
instead of this tasks.json
.
i see got it!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@brainstorm On my machine after creating a new rust project and opening it in VS Code:
Hitting

Ctrl+Shift+B
shows the following menu:Just hitting Enter starts the build.
Clicking on the cog icon in that menu ejects a
tasks.json
file which you can then customize and commit to source control.Edit: here is the README - https://github.com/rust-lang/rls-vscode#tasks