Unnamed repository; edit this file 'description' to name the repository.
fix: when running the "discoverProjectCommand", use the Rust file's
parent directory instead of the workspace folder.
David Barsky 2023-04-10
parent 51d5862 · commit b99c129
-rw-r--r--editors/code/src/commands.ts13
-rw-r--r--editors/code/src/ctx.ts14
2 files changed, 15 insertions, 12 deletions
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts
index 7a8490e476..4438d475ad 100644
--- a/editors/code/src/commands.ts
+++ b/editors/code/src/commands.ts
@@ -761,12 +761,13 @@ export function addProject(ctx: CtxInit): Cmd {
}
const workspaces: JsonProject[] = await Promise.all(
- vscode.workspace.workspaceFolders!.map(async (folder): Promise<JsonProject> => {
- const rustDocuments = vscode.workspace.textDocuments.filter(isRustDocument);
- return discoverWorkspace(rustDocuments, discoverProjectCommand, {
- cwd: folder.uri.fsPath,
- });
- })
+ vscode.workspace.textDocuments
+ .filter(isRustDocument)
+ .map(async (file): Promise<JsonProject> => {
+ return discoverWorkspace([file], discoverProjectCommand, {
+ cwd: path.dirname(file.uri.fsPath),
+ });
+ })
);
ctx.addToDiscoveredWorkspaces(workspaces);
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts
index dd74b31cc7..0ffa42c2a5 100644
--- a/editors/code/src/ctx.ts
+++ b/editors/code/src/ctx.ts
@@ -1,6 +1,7 @@
import * as vscode from "vscode";
import * as lc from "vscode-languageclient/node";
import * as ra from "./lsp_ext";
+import * as path from "path";
import { Config, prepareVSCodeConfig } from "./config";
import { createClient } from "./client";
@@ -192,12 +193,13 @@ export class Ctx {
const discoverProjectCommand = this.config.discoverProjectCommand;
if (discoverProjectCommand) {
const workspaces: JsonProject[] = await Promise.all(
- vscode.workspace.workspaceFolders!.map(async (folder): Promise<JsonProject> => {
- const rustDocuments = vscode.workspace.textDocuments.filter(isRustDocument);
- return discoverWorkspace(rustDocuments, discoverProjectCommand, {
- cwd: folder.uri.fsPath,
- });
- })
+ vscode.workspace.textDocuments
+ .filter(isRustDocument)
+ .map(async (file): Promise<JsonProject> => {
+ return discoverWorkspace([file], discoverProjectCommand, {
+ cwd: path.dirname(file.uri.fsPath),
+ });
+ })
);
this.addToDiscoveredWorkspaces(workspaces);