mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-26 13:03:31 +00:00
Adds config option for cargo-watch --ignore
flag
This commit is contained in:
parent
e8a7a7b19a
commit
f4d50de275
4 changed files with 22 additions and 2 deletions
|
@ -79,6 +79,7 @@ See [microsoft/vscode#72308](https://github.com/microsoft/vscode/issues/72308) f
|
||||||
* `rust-analyzer.cargo-watch.command`: `cargo-watch` command. (e.g: `clippy` will run as `cargo watch -x clippy` )
|
* `rust-analyzer.cargo-watch.command`: `cargo-watch` command. (e.g: `clippy` will run as `cargo watch -x clippy` )
|
||||||
* `rust-analyzer.cargo-watch.arguments`: cargo-watch check arguments.
|
* `rust-analyzer.cargo-watch.arguments`: cargo-watch check arguments.
|
||||||
(e.g: `--features="shumway,pdf"` will run as `cargo watch -x "check --features="shumway,pdf""` )
|
(e.g: `--features="shumway,pdf"` will run as `cargo watch -x "check --features="shumway,pdf""` )
|
||||||
|
* `rust-analyzer.cargo-watch.ignore`: list of patterns for cargo-watch to ignore (will be passed as `--ignore`)
|
||||||
* `rust-analyzer.trace.server`: enables internal logging
|
* `rust-analyzer.trace.server`: enables internal logging
|
||||||
* `rust-analyzer.trace.cargo-watch`: enables cargo-watch logging
|
* `rust-analyzer.trace.cargo-watch`: enables cargo-watch logging
|
||||||
* `RUST_SRC_PATH`: environment variable that overwrites the sysroot
|
* `RUST_SRC_PATH`: environment variable that overwrites the sysroot
|
||||||
|
|
|
@ -224,6 +224,11 @@
|
||||||
"description": "`cargo-watch` command. (e.g: `clippy` will run as `cargo watch -x clippy` )",
|
"description": "`cargo-watch` command. (e.g: `clippy` will run as `cargo watch -x clippy` )",
|
||||||
"default": "check"
|
"default": "check"
|
||||||
},
|
},
|
||||||
|
"rust-analyzer.cargo-watch.ignore": {
|
||||||
|
"type": "array",
|
||||||
|
"description": "A list of patterns for cargo-watch to ignore (will be passed as `--ignore`)",
|
||||||
|
"default": []
|
||||||
|
},
|
||||||
"rust-analyzer.showWorkspaceLoadedNotification": {
|
"rust-analyzer.showWorkspaceLoadedNotification": {
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"description": "Controls whether rust-analyzer displays a notification when a project is loaded.",
|
"description": "Controls whether rust-analyzer displays a notification when a project is loaded.",
|
||||||
|
|
|
@ -93,10 +93,15 @@ export class CargoWatchProvider implements vscode.Disposable {
|
||||||
args = '"' + args + '"';
|
args = '"' + args + '"';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ignoreFlags = Server.config.cargoWatchOptions.ignore.reduce(
|
||||||
|
(flags, pattern) => [...flags, '--ignore', pattern],
|
||||||
|
[] as string[]
|
||||||
|
);
|
||||||
|
|
||||||
// Start the cargo watch with json message
|
// Start the cargo watch with json message
|
||||||
this.cargoProcess = child_process.spawn(
|
this.cargoProcess = child_process.spawn(
|
||||||
'cargo',
|
'cargo',
|
||||||
['watch', '-x', args],
|
['watch', '-x', args, ...ignoreFlags],
|
||||||
{
|
{
|
||||||
stdio: ['ignore', 'pipe', 'pipe'],
|
stdio: ['ignore', 'pipe', 'pipe'],
|
||||||
cwd: vscode.workspace.rootPath,
|
cwd: vscode.workspace.rootPath,
|
||||||
|
|
|
@ -12,6 +12,7 @@ export interface CargoWatchOptions {
|
||||||
arguments: string;
|
arguments: string;
|
||||||
command: string;
|
command: string;
|
||||||
trace: CargoWatchTraceOptions;
|
trace: CargoWatchTraceOptions;
|
||||||
|
ignore: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export class Config {
|
export class Config {
|
||||||
|
@ -29,7 +30,8 @@ export class Config {
|
||||||
enableOnStartup: 'ask',
|
enableOnStartup: 'ask',
|
||||||
trace: 'off',
|
trace: 'off',
|
||||||
arguments: '',
|
arguments: '',
|
||||||
command: ''
|
command: '',
|
||||||
|
ignore: []
|
||||||
};
|
};
|
||||||
|
|
||||||
private prevEnhancedTyping: null | boolean = null;
|
private prevEnhancedTyping: null | boolean = null;
|
||||||
|
@ -124,6 +126,13 @@ export class Config {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (config.has('cargo-watch.ignore')) {
|
||||||
|
this.cargoWatchOptions.ignore = config.get<string[]>(
|
||||||
|
'cargo-watch.ignore',
|
||||||
|
[]
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
if (config.has('lruCapacity')) {
|
if (config.has('lruCapacity')) {
|
||||||
this.lruCapacity = config.get('lruCapacity') as number;
|
this.lruCapacity = config.get('lruCapacity') as number;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue