diff options
Diffstat (limited to 'editors')
-rw-r--r-- | editors/code/src/client.ts | 2 | ||||
-rw-r--r-- | editors/code/src/debug.ts | 10 | ||||
-rw-r--r-- | editors/code/src/run.ts | 3 | ||||
-rw-r--r-- | editors/code/src/snippets.ts | 2 |
4 files changed, 11 insertions, 6 deletions
diff --git a/editors/code/src/client.ts b/editors/code/src/client.ts index 6f2d48d1d..aec5c70c0 100644 --- a/editors/code/src/client.ts +++ b/editors/code/src/client.ts | |||
@@ -138,7 +138,7 @@ export function createClient(serverPath: string, cwd: string, extraEnv: Env): lc | |||
138 | command: "rust-analyzer.applyActionGroup", | 138 | command: "rust-analyzer.applyActionGroup", |
139 | title: "", | 139 | title: "", |
140 | arguments: [items.map((item) => { | 140 | arguments: [items.map((item) => { |
141 | return { label: item.title, arguments: item.command.arguments[0] }; | 141 | return { label: item.title, arguments: item.command!.arguments![0] }; |
142 | })], | 142 | })], |
143 | }; | 143 | }; |
144 | 144 | ||
diff --git a/editors/code/src/debug.ts b/editors/code/src/debug.ts index 3c113e46e..c72a7b278 100644 --- a/editors/code/src/debug.ts +++ b/editors/code/src/debug.ts | |||
@@ -87,12 +87,14 @@ async function getDebugConfiguration(ctx: Ctx, runnable: ra.Runnable): Promise<v | |||
87 | if (ctx.config.debug.openDebugPane) { | 87 | if (ctx.config.debug.openDebugPane) { |
88 | debugOutput.show(true); | 88 | debugOutput.show(true); |
89 | } | 89 | } |
90 | 90 | // folder exists or RA is not active. | |
91 | const isMultiFolderWorkspace = vscode.workspace.workspaceFolders.length > 1; | 91 | // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion |
92 | const firstWorkspace = vscode.workspace.workspaceFolders[0]; // folder exists or RA is not active. | 92 | const workspaceFolders = vscode.workspace.workspaceFolders!; |
93 | const isMultiFolderWorkspace = workspaceFolders.length > 1; | ||
94 | const firstWorkspace = workspaceFolders[0]; | ||
93 | const workspace = !isMultiFolderWorkspace || !runnable.args.workspaceRoot ? | 95 | const workspace = !isMultiFolderWorkspace || !runnable.args.workspaceRoot ? |
94 | firstWorkspace : | 96 | firstWorkspace : |
95 | vscode.workspace.workspaceFolders.find(w => runnable.args.workspaceRoot?.includes(w.uri.fsPath)) || firstWorkspace; | 97 | workspaceFolders.find(w => runnable.args.workspaceRoot?.includes(w.uri.fsPath)) || firstWorkspace; |
96 | 98 | ||
97 | const wsFolder = path.normalize(workspace.uri.fsPath); | 99 | const wsFolder = path.normalize(workspace.uri.fsPath); |
98 | const workspaceQualifier = isMultiFolderWorkspace ? `:${workspace.name}` : ''; | 100 | const workspaceQualifier = isMultiFolderWorkspace ? `:${workspace.name}` : ''; |
diff --git a/editors/code/src/run.ts b/editors/code/src/run.ts index 4f0d2884b..331f85cd3 100644 --- a/editors/code/src/run.ts +++ b/editors/code/src/run.ts | |||
@@ -146,7 +146,8 @@ export async function createTask(runnable: ra.Runnable, config: Config): Promise | |||
146 | overrideCargo: runnable.args.overrideCargo, | 146 | overrideCargo: runnable.args.overrideCargo, |
147 | }; | 147 | }; |
148 | 148 | ||
149 | const target = vscode.workspace.workspaceFolders[0]; // safe, see main activate() | 149 | // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion |
150 | const target = vscode.workspace.workspaceFolders![0]; // safe, see main activate() | ||
150 | const cargoTask = await tasks.buildCargoTask(target, definition, runnable.label, args, config.cargoRunner, true); | 151 | const cargoTask = await tasks.buildCargoTask(target, definition, runnable.label, args, config.cargoRunner, true); |
151 | cargoTask.presentationOptions.clear = true; | 152 | cargoTask.presentationOptions.clear = true; |
152 | 153 | ||
diff --git a/editors/code/src/snippets.ts b/editors/code/src/snippets.ts index 7b7e528f6..dc53ebe2e 100644 --- a/editors/code/src/snippets.ts +++ b/editors/code/src/snippets.ts | |||
@@ -62,6 +62,8 @@ function parseSnippet(snip: string): [string, [number, number]] | undefined { | |||
62 | const m = snip.match(/\$(0|\{0:([^}]*)\})/); | 62 | const m = snip.match(/\$(0|\{0:([^}]*)\})/); |
63 | if (!m) return undefined; | 63 | if (!m) return undefined; |
64 | const placeholder = m[2] ?? ""; | 64 | const placeholder = m[2] ?? ""; |
65 | if (m.index == null) | ||
66 | return undefined; | ||
65 | const range: [number, number] = [m.index, placeholder.length]; | 67 | const range: [number, number] = [m.index, placeholder.length]; |
66 | const insert = snip.replace(m[0], placeholder); | 68 | const insert = snip.replace(m[0], placeholder); |
67 | return [insert, range]; | 69 | return [insert, range]; |