about summary refs log tree commit diff
path: root/editors/code/src/ctx.ts
diff options
context:
space:
mode:
authorDavid Barsky <me@davidbarsky.com>2023-03-09 15:27:24 -0500
committerDavid Barsky <me@davidbarsky.com>2023-03-13 13:30:19 -0400
commit46e022098feda31c98120ca58b6ce02b45cdedf9 (patch)
tree46f454538a452420198ce2f509ea9455a38d6bd2 /editors/code/src/ctx.ts
parent8af3d6367ecead0abf80e697176f697d97c25215 (diff)
downloadrust-46e022098feda31c98120ca58b6ce02b45cdedf9.tar.gz
rust-46e022098feda31c98120ca58b6ce02b45cdedf9.zip
fmt
Diffstat (limited to 'editors/code/src/ctx.ts')
-rw-r--r--editors/code/src/ctx.ts49
1 files changed, 33 insertions, 16 deletions
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts
index ba2d4e97af1..5b019d6aeb5 100644
--- a/editors/code/src/ctx.ts
+++ b/editors/code/src/ctx.ts
@@ -4,7 +4,14 @@ import * as ra from "./lsp_ext";
 
 import { Config, substituteVSCodeVariables } from "./config";
 import { createClient } from "./client";
-import { executeDiscoverProject, isRustDocument, isRustEditor, LazyOutputChannel, log, RustEditor } from "./util";
+import {
+    executeDiscoverProject,
+    isRustDocument,
+    isRustEditor,
+    LazyOutputChannel,
+    log,
+    RustEditor,
+} from "./util";
 import { ServerStatusParams } from "./lsp_ext";
 import { PersistentState } from "./persistent_state";
 import { bootstrap } from "./bootstrap";
@@ -17,12 +24,12 @@ import { ExecOptions } from "child_process";
 export type Workspace =
     | { kind: "Empty" }
     | {
-        kind: "Workspace Folder";
-    }
+          kind: "Workspace Folder";
+      }
     | {
-        kind: "Detached Files";
-        files: vscode.TextDocument[];
-    };
+          kind: "Detached Files";
+          files: vscode.TextDocument[];
+      };
 
 export function fetchWorkspace(): Workspace {
     const folders = (vscode.workspace.workspaceFolders || []).filter(
@@ -36,13 +43,17 @@ export function fetchWorkspace(): Workspace {
         ? rustDocuments.length === 0
             ? { kind: "Empty" }
             : {
-                kind: "Detached Files",
-                files: rustDocuments,
-            }
+                  kind: "Detached Files",
+                  files: rustDocuments,
+              }
         : { kind: "Workspace Folder" };
 }
 
-export async function discoverWorkspace(files: readonly vscode.TextDocument[], command: string[], options: ExecOptions): Promise<JsonProject> {
+export async function discoverWorkspace(
+    files: readonly vscode.TextDocument[],
+    command: string[],
+    options: ExecOptions
+): Promise<JsonProject> {
     const paths = files.map((f) => f.uri.fsPath).join(" ");
     const joinedCommand = command.join(" ");
     const data = await executeDiscoverProject(`${joinedCommand} -- ${paths}`, options);
@@ -80,7 +91,7 @@ export class Ctx {
     constructor(
         readonly extCtx: vscode.ExtensionContext,
         commandFactories: Record<string, CommandFactory>,
-        workspace: Workspace,
+        workspace: Workspace
     ) {
         extCtx.subscriptions.push(this);
         this.statusBar = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.Left);
@@ -180,16 +191,22 @@ export class Ctx {
 
             const discoverProjectCommand = this.config.discoverProjectCommand;
             if (discoverProjectCommand) {
-                let workspaces: JsonProject[] = await Promise.all(vscode.workspace.workspaceFolders!.map(async (folder): Promise<JsonProject> => {
-                    return discoverWorkspace(vscode.workspace.textDocuments, discoverProjectCommand, { cwd: folder.uri.fsPath });
-                }));
+                const workspaces: JsonProject[] = await Promise.all(
+                    vscode.workspace.workspaceFolders!.map(async (folder): Promise<JsonProject> => {
+                        return discoverWorkspace(
+                            vscode.workspace.textDocuments,
+                            discoverProjectCommand,
+                            { cwd: folder.uri.fsPath }
+                        );
+                    })
+                );
 
                 this.discoveredWorkspaces = workspaces;
             }
 
-            let initializationOptions = substituteVSCodeVariables(rawInitializationOptions);
+            const initializationOptions = substituteVSCodeVariables(rawInitializationOptions);
             // this appears to be load-bearing, for better or worse.
-            await initializationOptions.update('linkedProjects', this.discoveredWorkspaces)
+            await initializationOptions.update("linkedProjects", this.discoveredWorkspaces);
 
             this._client = await createClient(
                 this.traceOutputChannel,