From d34588bf83898870d7f9b4b49ac2a5f71c77dabb Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Tue, 28 Aug 2018 18:22:52 +0300 Subject: create module smartly --- code/src/extension.ts | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) (limited to 'code/src') diff --git a/code/src/extension.ts b/code/src/extension.ts index 81153b7e6..3b24b73b6 100644 --- a/code/src/extension.ts +++ b/code/src/extension.ts @@ -113,12 +113,26 @@ export function activate(context: vscode.ExtensionContext) { return await vscode.tasks.executeTask(task) } }) - registerCommand('libsyntax-rust.createFile', async (uri_: string) => { - let uri = vscode.Uri.parse(uri_) + registerCommand('libsyntax-rust.fsEdit', async (ops: FsOp[]) => { let edit = new vscode.WorkspaceEdit() - edit.createFile(uri) + let created; + let moved; + for (let op of ops) { + if (op.type == "createFile") { + let uri = vscode.Uri.parse(op.uri!) + edit.createFile(uri) + created = uri + } else if (op.type == "moveFile") { + let src = vscode.Uri.parse(op.src!) + let dst = vscode.Uri.parse(op.dst!) + edit.renameFile(src, dst) + moved = dst + } else { + console.error(`unknown op: ${JSON.stringify(op)}`) + } + } await vscode.workspace.applyEdit(edit) - let doc = await vscode.workspace.openTextDocument(uri) + let doc = await vscode.workspace.openTextDocument((created || moved)!) await vscode.window.showTextDocument(doc) }) @@ -368,3 +382,10 @@ function createTask(spec: Runnable): vscode.Task { let t = new vscode.Task(definition, f, definition.label, TASK_SOURCE, exec, ['$rustc']); return t; } + +interface FsOp { + type: string; + uri?: string; + src?: string; + dst?: string; +} -- cgit v1.2.3