Address review comments

This commit is contained in:
David Barsky 2023-03-14 12:49:35 -04:00
parent 78aed305e1
commit bd545a1c10
2 changed files with 11 additions and 1 deletions

View file

@ -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 {

View file

@ -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