Unnamed repository; edit this file 'description' to name the repository.
-rw-r--r--editors/code/package.json2
-rw-r--r--editors/code/src/commands.ts14
-rw-r--r--editors/code/src/config.ts2
-rw-r--r--editors/code/src/ctx.ts49
-rw-r--r--editors/code/src/lsp_ext.ts2
-rw-r--r--editors/code/src/main.ts8
-rw-r--r--editors/code/src/rust_project.ts14
-rw-r--r--editors/code/src/util.ts4
8 files changed, 58 insertions, 37 deletions
diff --git a/editors/code/package.json b/editors/code/package.json
index e79ab33726..0a3e4103f6 100644
--- a/editors/code/package.json
+++ b/editors/code/package.json
@@ -1920,4 +1920,4 @@
}
]
}
-} \ No newline at end of file
+}
diff --git a/editors/code/src/commands.ts b/editors/code/src/commands.ts
index beff8501dc..a8ec75a78a 100644
--- a/editors/code/src/commands.ts
+++ b/editors/code/src/commands.ts
@@ -756,14 +756,18 @@ export function addProject(ctx: CtxInit): Cmd {
return;
}
- 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,
+ });
+ })
+ );
await ctx.client.sendRequest(ra.addProject, {
- project: workspaces
+ project: workspaces,
});
- }
+ };
}
async function showReferencesImpl(
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index f62843dffa..1dae603714 100644
--- a/editors/code/src/config.ts
+++ b/editors/code/src/config.ts
@@ -215,7 +215,7 @@ export class Config {
}
get discoverProjectCommand() {
- return this.get<string[] | undefined>("discoverProjectCommand")
+ return this.get<string[] | undefined>("discoverProjectCommand");
}
get cargoRunner() {
diff --git a/editors/code/src/ctx.ts b/editors/code/src/ctx.ts
index ba2d4e97af..5b019d6aeb 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,
diff --git a/editors/code/src/lsp_ext.ts b/editors/code/src/lsp_ext.ts
index 6c8428aa97..942573c0f1 100644
--- a/editors/code/src/lsp_ext.ts
+++ b/editors/code/src/lsp_ext.ts
@@ -45,7 +45,7 @@ export const relatedTests = new lc.RequestType<lc.TextDocumentPositionParams, Te
export const reloadWorkspace = new lc.RequestType0<null, void>("rust-analyzer/reloadWorkspace");
export const addProject = new lc.RequestType<AddProjectParams, string, void>(
"rust-analyzer/addProject"
-)
+);
export const runFlycheck = new lc.NotificationType<{
textDocument: lc.TextDocumentIdentifier | null;
diff --git a/editors/code/src/main.ts b/editors/code/src/main.ts
index 323aa89ef0..d5de00561b 100644
--- a/editors/code/src/main.ts
+++ b/editors/code/src/main.ts
@@ -24,11 +24,11 @@ export async function activate(
vscode.window
.showWarningMessage(
`You have both the rust-analyzer (rust-lang.rust-analyzer) and Rust (rust-lang.rust) ` +
- "plugins enabled. These are known to conflict and cause various functions of " +
- "both plugins to not work correctly. You should disable one of them.",
+ "plugins enabled. These are known to conflict and cause various functions of " +
+ "both plugins to not work correctly. You should disable one of them.",
"Got it"
)
- .then(() => { }, console.error);
+ .then(() => {}, console.error);
}
const ctx = new Ctx(context, createCommands(), fetchWorkspace());
@@ -146,7 +146,7 @@ function createCommands(): Record<string, CommandFactory> {
health: "stopped",
});
},
- disabled: (_) => async () => { },
+ disabled: (_) => async () => {},
},
analyzerStatus: { enabled: commands.analyzerStatus },
diff --git a/editors/code/src/rust_project.ts b/editors/code/src/rust_project.ts
index adf0f89c96..187a1a96c1 100644
--- a/editors/code/src/rust_project.ts
+++ b/editors/code/src/rust_project.ts
@@ -60,9 +60,9 @@ interface Crate {
/// rust-analyzer assumes that files from one
/// source can't refer to files in another source.
source?: {
- include_dirs: string[],
- exclude_dirs: string[],
- },
+ include_dirs: string[];
+ exclude_dirs: string[];
+ };
/// The set of cfgs activated for a given crate, like
/// `["unix", "feature=\"foo\"", "feature=\"bar\""]`.
cfg: string[];
@@ -73,7 +73,7 @@ interface Crate {
target?: string;
/// Environment variables, used for
/// the `env!` macro
- env: { [key: string]: string; },
+ env: { [key: string]: string };
/// Whether the crate is a proc-macro crate.
is_proc_macro: boolean;
@@ -84,8 +84,8 @@ interface Crate {
interface Dep {
/// Index of a crate in the `crates` array.
- crate: number,
+ crate: number;
/// Name as should appear in the (implicit)
/// `extern crate name` declaration.
- name: string,
-} \ No newline at end of file
+ name: string;
+}
diff --git a/editors/code/src/util.ts b/editors/code/src/util.ts
index d2ecdce5b4..922fbcbcf3 100644
--- a/editors/code/src/util.ts
+++ b/editors/code/src/util.ts
@@ -150,7 +150,7 @@ export function memoizeAsync<Ret, TThis, Param extends string>(
/** Awaitable wrapper around `child_process.exec` */
export function execute(command: string, options: ExecOptions): Promise<string> {
- log.info(`running command: ${command}`)
+ log.info(`running command: ${command}`);
return new Promise((resolve, reject) => {
exec(command, options, (err, stdout, stderr) => {
if (err) {
@@ -170,7 +170,7 @@ export function execute(command: string, options: ExecOptions): Promise<string>
}
export function executeDiscoverProject(command: string, options: ExecOptions): Promise<string> {
- log.info(`running command: ${command}`)
+ log.info(`running command: ${command}`);
return new Promise((resolve, reject) => {
exec(command, options, (err, stdout, _) => {
if (err) {