Skip to content

Commit c1db5d2

Browse files
committed
Add additional_outdirs in config
1 parent 6b9d66b commit c1db5d2

File tree

6 files changed

+13
-0
lines changed

6 files changed

+13
-0
lines changed

crates/rust-analyzer/src/config.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ pub struct ServerConfig {
4444
/// Fine grained feature flags to disable specific features.
4545
pub feature_flags: FxHashMap<String, bool>,
4646

47+
/// Fine grained controls for additional `OUT_DIR` env variables
48+
pub additional_out_dirs: FxHashMap<String, String>,
49+
4750
pub rustfmt_args: Vec<String>,
4851

4952
/// Cargo feature configurations.
@@ -64,6 +67,7 @@ impl Default for ServerConfig {
6467
cargo_watch_all_targets: true,
6568
with_sysroot: true,
6669
feature_flags: FxHashMap::default(),
70+
additional_out_dirs: FxHashMap::default(),
6771
cargo_features: Default::default(),
6872
rustfmt_args: Vec::new(),
6973
}

crates/rust-analyzer/src/main_loop.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ pub fn main_loop(
195195
Watch(!config.use_client_watching),
196196
options,
197197
feature_flags,
198+
config.additional_out_dirs,
198199
)
199200
};
200201

crates/rust-analyzer/src/world.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ impl WorldState {
7676
watch: Watch,
7777
options: Options,
7878
feature_flags: FeatureFlags,
79+
additional_out_dirs: FxHashMap<String, String>,
7980
) -> WorldState {
8081
let mut change = AnalysisChange::new();
8182

editors/code/package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,11 @@
224224
"default": true,
225225
"description": "Whether to ask for permission before downloading any files from the Internet"
226226
},
227+
"rust-analyzer.additionalOutDirs": {
228+
"type": "object",
229+
"default": {},
230+
"markdownDescription": "Fine grained controls for OUT_DIR `env!(\"OUT_DIR\")` variable. e.g. `{\"foo\":\"/path/to/foo\"}`, "
231+
},
227232
"rust-analyzer.serverPath": {
228233
"type": [
229234
"null",

editors/code/src/client.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ export async function createClient(config: Config, serverPath: string): Promise<
3737
excludeGlobs: config.excludeGlobs,
3838
useClientWatching: config.useClientWatching,
3939
featureFlags: config.featureFlags,
40+
additionalOutDirs: config.additionalOutDirs,
4041
withSysroot: config.withSysroot,
4142
cargoFeatures: config.cargoFeatures,
4243
rustfmtArgs: config.rustfmtArgs,

editors/code/src/config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,7 @@ export class Config {
154154
get excludeGlobs() { return this.cfg.get("excludeGlobs") as string[]; }
155155
get useClientWatching() { return this.cfg.get("useClientWatching") as boolean; }
156156
get featureFlags() { return this.cfg.get("featureFlags") as Record<string, boolean>; }
157+
get additionalOutDirs() { return this.cfg.get("additionalOutDirs") as Record<string, string>; }
157158
get rustfmtArgs() { return this.cfg.get("rustfmtArgs") as string[]; }
158159

159160
get cargoWatchOptions(): CargoWatchOptions {

0 commit comments

Comments
 (0)