diff --git a/fsprovider-sample/README.md b/fsprovider-sample/README.md
index 71a81579..540eee2f 100644
--- a/fsprovider-sample/README.md
+++ b/fsprovider-sample/README.md
@@ -1,8 +1,20 @@
# MemFS
-This extension implements an in-memory file system to show-case a API. It also enables to see how other extensions behave with documents/files that aren't stored on disk.
+This extension implements an in-memory file system to show-case the [filesytem provider api](https://github.com/Microsoft/vscode/blob/51a880315fd0ec2cafb511a17de48ec31802ba6d/src/vs/vscode.d.ts#L4968). It serves two purposes:
-To *get started* you need the extension and a workspace with an entry like this:
+* Be a sample/reference for extension authors that want to implement a filesystem provider
+* Be a test for other extensions that *falsely* assume text document always live on disk.
+
+
+To *get started* you need this:
+
+* install this extension
+* have a workspace-file as shown below and open it via 'File > Open Workspace'
+* select 'F1 > [MemFs] Create Files' and notice how the explorer is now populated
+* ... try things out, e.g. IntelliSense in memfs-files, create new files, save them, etc
+* select 'F1 > [MemFs] Delete Files' or reload to restart
+
+A sample workspace file, saved as `Test.code-workspace`, is this:
```json
{
@@ -10,5 +22,3 @@ To *get started* you need the extension and a workspace with an entry like this:
"name": "MemFS"
}
```
-
-Then, select 'F1 > Initialize MemFS' and notice how the file explorer is populated with some files.
diff --git a/fsprovider-sample/package.json b/fsprovider-sample/package.json
index b6db1df0..13374630 100644
--- a/fsprovider-sample/package.json
+++ b/fsprovider-sample/package.json
@@ -22,12 +22,12 @@
"commands": [
{
"command": "memfs.init",
- "title": "Create files",
+ "title": "Create Files",
"category": "MemFS"
},
{
"command": "memfs.reset",
- "title": "Delete all files",
+ "title": "Delete Files",
"category": "MemFS"
}
]
diff --git a/fsprovider-sample/src/extension.ts b/fsprovider-sample/src/extension.ts
index b4805c42..4df1206b 100644
--- a/fsprovider-sample/src/extension.ts
+++ b/fsprovider-sample/src/extension.ts
@@ -23,23 +23,34 @@ export function activate(context: vscode.ExtensionContext) {
}
initialized = true;
+ // most common files types
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.txt`), Buffer.from('foo'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.html`), Buffer.from('
Hello
'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.js`), Buffer.from('console.log("JavaScript")'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.json`), Buffer.from('{ "json": true }'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.ts`), Buffer.from('console.log("TypeScript")'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.css`), Buffer.from('* { color: green; }'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.md`), Buffer.from('Hello _World_'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.xml`), Buffer.from(''), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.py`), Buffer.from('import base64, sys; base64.decode(open(sys.argv[1], "rb"), open(sys.argv[2], "wb"))'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.php`), Buffer.from('&1\'); ?>'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/file.yaml`), Buffer.from('- just: write something'), { create: true, overwrite: true });
+
+ // some more files & folders
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, overwrite: true });
- memFs.writeFile(vscode.Uri.parse(`memfs:/file.txt`), Buffer.from('foo'), { create: true, overwrite: true });
- memFs.writeFile(vscode.Uri.parse(`memfs:/file.css`), Buffer.from('* { color: green; }'), { create: true, overwrite: true });
- memFs.writeFile(vscode.Uri.parse(`memfs:/large_rnd.foo`), randomData(50000), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/folder/empty.txt`), new Uint8Array(0), { create: true, overwrite: true });
memFs.writeFile(vscode.Uri.parse(`memfs:/folder/empty.foo`), new Uint8Array(0), { create: true, overwrite: true });
memFs.writeFile(vscode.Uri.parse(`memfs:/folder/file.ts`), Buffer.from('let a:number = true; console.log(a);'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/large/rnd.foo`), randomData(50000), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/UPPER.txt`), Buffer.from('UPPER'), { create: true, overwrite: true });
+ memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/upper.txt`), Buffer.from('upper'), { create: true, overwrite: true });
memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/def/foo.md`), Buffer.from('*MemFS*'), { create: true, overwrite: true });
memFs.writeFile(vscode.Uri.parse(`memfs:/xyz/def/foo.bin`), Buffer.from([0, 0, 0, 1, 7, 0, 0, 1, 1]), { create: true, overwrite: true });
-
- memFs.writeFile(vscode.Uri.parse(`memfs:/UPPER.txt`), Buffer.from('UPPER'), { create: true, overwrite: true });
- memFs.writeFile(vscode.Uri.parse(`memfs:/upper.txt`), Buffer.from('upper'), { create: true, overwrite: true });
}));
}