diff options
Diffstat (limited to 'editors/code/src/commands/apply_source_change.ts')
-rw-r--r-- | editors/code/src/commands/apply_source_change.ts | 66 |
1 files changed, 33 insertions, 33 deletions
diff --git a/editors/code/src/commands/apply_source_change.ts b/editors/code/src/commands/apply_source_change.ts index dcbbb2b09..f011cbe12 100644 --- a/editors/code/src/commands/apply_source_change.ts +++ b/editors/code/src/commands/apply_source_change.ts | |||
@@ -1,5 +1,5 @@ | |||
1 | import * as vscode from 'vscode'; | 1 | import * as vscode from 'vscode'; |
2 | import * as lc from 'vscode-languageclient' | 2 | import * as lc from 'vscode-languageclient'; |
3 | 3 | ||
4 | import { Server } from '../server'; | 4 | import { Server } from '../server'; |
5 | 5 | ||
@@ -11,48 +11,48 @@ interface FileSystemEdit { | |||
11 | } | 11 | } |
12 | 12 | ||
13 | export interface SourceChange { | 13 | export interface SourceChange { |
14 | label: string, | 14 | label: string; |
15 | sourceFileEdits: lc.TextDocumentEdit[], | 15 | sourceFileEdits: lc.TextDocumentEdit[]; |
16 | fileSystemEdits: FileSystemEdit[], | 16 | fileSystemEdits: FileSystemEdit[]; |
17 | cursorPosition?: lc.TextDocumentPositionParams, | 17 | cursorPosition?: lc.TextDocumentPositionParams; |
18 | } | 18 | } |
19 | 19 | ||
20 | export async function handle(change: SourceChange) { | 20 | export async function handle(change: SourceChange) { |
21 | console.log(`applySOurceChange ${JSON.stringify(change)}`) | 21 | console.log(`applySOurceChange ${JSON.stringify(change)}`); |
22 | let wsEdit = new vscode.WorkspaceEdit() | 22 | const wsEdit = new vscode.WorkspaceEdit(); |
23 | for (let sourceEdit of change.sourceFileEdits) { | 23 | for (const sourceEdit of change.sourceFileEdits) { |
24 | let uri = Server.client.protocol2CodeConverter.asUri(sourceEdit.textDocument.uri) | 24 | const uri = Server.client.protocol2CodeConverter.asUri(sourceEdit.textDocument.uri); |
25 | let edits = Server.client.protocol2CodeConverter.asTextEdits(sourceEdit.edits) | 25 | const edits = Server.client.protocol2CodeConverter.asTextEdits(sourceEdit.edits); |
26 | wsEdit.set(uri, edits) | 26 | wsEdit.set(uri, edits); |
27 | } | 27 | } |
28 | let created; | 28 | let created; |
29 | let moved; | 29 | let moved; |
30 | for (let fsEdit of change.fileSystemEdits) { | 30 | for (const fsEdit of change.fileSystemEdits) { |
31 | if (fsEdit.type == "createFile") { | 31 | if (fsEdit.type == 'createFile') { |
32 | let uri = vscode.Uri.parse(fsEdit.uri!) | 32 | const uri = vscode.Uri.parse(fsEdit.uri!); |
33 | wsEdit.createFile(uri) | 33 | wsEdit.createFile(uri); |
34 | created = uri | 34 | created = uri; |
35 | } else if (fsEdit.type == "moveFile") { | 35 | } else if (fsEdit.type == 'moveFile') { |
36 | let src = vscode.Uri.parse(fsEdit.src!) | 36 | const src = vscode.Uri.parse(fsEdit.src!); |
37 | let dst = vscode.Uri.parse(fsEdit.dst!) | 37 | const dst = vscode.Uri.parse(fsEdit.dst!); |
38 | wsEdit.renameFile(src, dst) | 38 | wsEdit.renameFile(src, dst); |
39 | moved = dst | 39 | moved = dst; |
40 | } else { | 40 | } else { |
41 | console.error(`unknown op: ${JSON.stringify(fsEdit)}`) | 41 | console.error(`unknown op: ${JSON.stringify(fsEdit)}`); |
42 | } | 42 | } |
43 | } | 43 | } |
44 | let toOpen = created || moved | 44 | const toOpen = created || moved; |
45 | let toReveal = change.cursorPosition | 45 | const toReveal = change.cursorPosition; |
46 | await vscode.workspace.applyEdit(wsEdit) | 46 | await vscode.workspace.applyEdit(wsEdit); |
47 | if (toOpen) { | 47 | if (toOpen) { |
48 | let doc = await vscode.workspace.openTextDocument(toOpen) | 48 | const doc = await vscode.workspace.openTextDocument(toOpen); |
49 | await vscode.window.showTextDocument(doc) | 49 | await vscode.window.showTextDocument(doc); |
50 | } else if (toReveal) { | 50 | } else if (toReveal) { |
51 | let uri = Server.client.protocol2CodeConverter.asUri(toReveal.textDocument.uri) | 51 | const uri = Server.client.protocol2CodeConverter.asUri(toReveal.textDocument.uri); |
52 | let position = Server.client.protocol2CodeConverter.asPosition(toReveal.position) | 52 | const position = Server.client.protocol2CodeConverter.asPosition(toReveal.position); |
53 | let editor = vscode.window.activeTextEditor; | 53 | const editor = vscode.window.activeTextEditor; |
54 | if (!editor || editor.document.uri.toString() != uri.toString()) return | 54 | if (!editor || editor.document.uri.toString() != uri.toString()) { return; } |
55 | if (!editor.selection.isEmpty) return | 55 | if (!editor.selection.isEmpty) { return; } |
56 | editor!.selection = new vscode.Selection(position, position) | 56 | editor!.selection = new vscode.Selection(position, position); |
57 | } | 57 | } |
58 | } | 58 | } |