Unnamed repository; edit this file 'description' to name the repository.
Address review comments
David Barsky 2023-03-14
parent 78aed30 · commit bd545a1
-rw-r--r--editors/code/src/client.ts4
-rw-r--r--editors/code/src/config.ts8
2 files changed, 11 insertions, 1 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts
index 03f5d43051..9a576570be 100644
--- a/editors/code/src/client.ts
+++ b/editors/code/src/client.ts
@@ -96,7 +96,9 @@ export async function createClient(
if (resp && Array.isArray(resp)) {
return resp.map((val) => {
return prepareVSCodeConfig(val, (key, cfg) => {
- cfg[key] = config.discoveredWorkspaces;
+ if (key === "linkedProjects") {
+ cfg[key] = config.discoveredWorkspaces;
+ }
});
});
} else {
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index 7540372547..da7c74c28b 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -287,6 +287,14 @@ export class Config {
}
}
+// the optional `cb?` parameter is meant to be used to add additional
+// key/value pairs to the VS Code configuration. This needed for, e.g.,
+// including a `rust-project.json` into the `linkedProjects` key as part
+// of the configuration/InitializationParams _without_ causing VS Code
+// configuration to be written out to workspace-level settings. This is
+// undesirable behavior because rust-project.json files can be tens of
+// thousands of lines of JSON, most of which is not meant for humans
+// to interact with.
export function prepareVSCodeConfig<T>(
resp: T,
cb?: (key: Extract<keyof T, string>, res: { [key: string]: any }) => void