From 546b6bfe717e87e692609e862a4dff0ab00e373c Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 23 Apr 2018 14:38:58 +0200 Subject: [PATCH] have a reset command that cleans the memfs --- fsprovider-sample/package.json | 4 +++ fsprovider-sample/src/extension.ts | 54 +++++++++++++++++------------- 2 files changed, 35 insertions(+), 23 deletions(-) diff --git a/fsprovider-sample/package.json b/fsprovider-sample/package.json index e1fae712..2d78bf63 100644 --- a/fsprovider-sample/package.json +++ b/fsprovider-sample/package.json @@ -20,6 +20,10 @@ { "command": "memfs.init", "title": "Initialize MemFS" + }, + { + "command": "memfs.reset", + "title": "Reset MemFS" } ] }, diff --git a/fsprovider-sample/src/extension.ts b/fsprovider-sample/src/extension.ts index b0e69356..f3c3cdef 100644 --- a/fsprovider-sample/src/extension.ts +++ b/fsprovider-sample/src/extension.ts @@ -7,31 +7,39 @@ export function activate(context: vscode.ExtensionContext) { const memFs = new MemFS(); const registration = vscode.workspace.registerFileSystemProvider2('memfs', memFs, { isCaseSensitive: true }); + let initialized = false; - let initialzied = false; - vscode.commands.registerCommand('memfs.init', _ => { - if (!initialzied) { - initialzied = true; - - memFs.createDirectory(vscode.Uri.parse(`memfs:/folder/`)); - memFs.createDirectory(vscode.Uri.parse(`memfs:/large/`)); - memFs.createDirectory(vscode.Uri.parse(`memfs:/xyz/`)); - memFs.createDirectory(vscode.Uri.parse(`memfs:/xyz/abc`)); - memFs.createDirectory(vscode.Uri.parse(`memfs:/xyz/def`)); - - memFs.writeFile(vscode.Uri.parse(`memfs:/empty.txt`), new Uint8Array(0), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/file.txt`), Buffer.from('foo'), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/file.css`), Buffer.from('* { color: green; }'), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/large/rnd.foo`), randomData(30000), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/large/too_large.foo`), randomData(50000), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/folder/empty.foo`), new Uint8Array(0), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/folder/file.ts`), Buffer.from('let a:number = true; console.log(a);'), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/def/foo.md`), Buffer.from('*MemFS*'), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/def/foo.bin`), Buffer.from([0, 0, 0, 1, 7, 0, 0, 1, 1]), { create: true }); - - memFs.writeFile(vscode.Uri.parse(`memfs:/UPPER.txt`), Buffer.from('UPPER'), { create: true }); - memFs.writeFile(vscode.Uri.parse(`memfs:/upper.txt`), Buffer.from('upper'), { create: true }); + vscode.commands.registerCommand('memfs.reset', _ => { + for (const [name] of memFs.readDirectory(vscode.Uri.parse('memfs:/'))) { + memFs.delete(vscode.Uri.parse(`memfs:/${name}`)); } + initialized = false; + }); + + vscode.commands.registerCommand('memfs.init', _ => { + if (initialized) { + return; + } + initialized = true; + + memFs.createDirectory(vscode.Uri.parse(`memfs:/folder/`)); + memFs.createDirectory(vscode.Uri.parse(`memfs:/large/`)); + memFs.createDirectory(vscode.Uri.parse(`memfs:/xyz/`)); + memFs.createDirectory(vscode.Uri.parse(`memfs:/xyz/abc`)); + memFs.createDirectory(vscode.Uri.parse(`memfs:/xyz/def`)); + + memFs.writeFile(vscode.Uri.parse(`memfs:/empty.txt`), new Uint8Array(0), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/file.txt`), Buffer.from('foo'), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/file.css`), Buffer.from('* { color: green; }'), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/large/rnd.foo`), randomData(30000), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/large/too_large.foo`), randomData(50000), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/folder/empty.foo`), new Uint8Array(0), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/folder/file.ts`), Buffer.from('let a:number = true; console.log(a);'), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/def/foo.md`), Buffer.from('*MemFS*'), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/def/foo.bin`), Buffer.from([0, 0, 0, 1, 7, 0, 0, 1, 1]), { create: true }); + + memFs.writeFile(vscode.Uri.parse(`memfs:/UPPER.txt`), Buffer.from('UPPER'), { create: true }); + memFs.writeFile(vscode.Uri.parse(`memfs:/upper.txt`), Buffer.from('upper'), { create: true }); }); function randomData(lineCnt: number, lineLen = 155): Buffer {