From 64334866f04bd208f29f03cceb8e8b2b3334c84f Mon Sep 17 00:00:00 2001 From: Erich Gamma Date: Tue, 9 Feb 2016 23:19:35 +0100 Subject: [PATCH] Added Text Document provider example --- textdocumentprovider-sample/.gitignore | 2 + .../.vscode/launch.json | 28 +++++ .../.vscode/settings.json | 10 ++ .../.vscode/tasks.json | 30 ++++++ textdocumentprovider-sample/.vscodeignore | 9 ++ textdocumentprovider-sample/README.md | 22 ++++ .../images/preview.gif | Bin 0 -> 90793 bytes textdocumentprovider-sample/package.json | 47 +++++++++ textdocumentprovider-sample/src/extension.ts | 96 ++++++++++++++++++ .../test/extension.test.ts | 22 ++++ textdocumentprovider-sample/test/index.ts | 22 ++++ textdocumentprovider-sample/tsconfig.json | 13 +++ textdocumentprovider-sample/tslint.json | 6 ++ textdocumentprovider-sample/typings/node.d.ts | 1 + .../typings/vscode-typings.d.ts | 1 + 15 files changed, 309 insertions(+) create mode 100644 textdocumentprovider-sample/.gitignore create mode 100644 textdocumentprovider-sample/.vscode/launch.json create mode 100644 textdocumentprovider-sample/.vscode/settings.json create mode 100644 textdocumentprovider-sample/.vscode/tasks.json create mode 100644 textdocumentprovider-sample/.vscodeignore create mode 100644 textdocumentprovider-sample/README.md create mode 100644 textdocumentprovider-sample/images/preview.gif create mode 100644 textdocumentprovider-sample/package.json create mode 100644 textdocumentprovider-sample/src/extension.ts create mode 100644 textdocumentprovider-sample/test/extension.test.ts create mode 100644 textdocumentprovider-sample/test/index.ts create mode 100644 textdocumentprovider-sample/tsconfig.json create mode 100644 textdocumentprovider-sample/tslint.json create mode 100644 textdocumentprovider-sample/typings/node.d.ts create mode 100644 textdocumentprovider-sample/typings/vscode-typings.d.ts diff --git a/textdocumentprovider-sample/.gitignore b/textdocumentprovider-sample/.gitignore new file mode 100644 index 00000000..8e5962ee --- /dev/null +++ b/textdocumentprovider-sample/.gitignore @@ -0,0 +1,2 @@ +out +node_modules \ No newline at end of file diff --git a/textdocumentprovider-sample/.vscode/launch.json b/textdocumentprovider-sample/.vscode/launch.json new file mode 100644 index 00000000..0e632b68 --- /dev/null +++ b/textdocumentprovider-sample/.vscode/launch.json @@ -0,0 +1,28 @@ +// A launch configuration that compiles the extension and then opens it inside a new window +{ + "version": "0.1.0", + "configurations": [ + { + "name": "Launch Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": ["--extensionDevelopmentPath=${workspaceRoot}" ], + "stopOnEntry": false, + "sourceMaps": true, + "outDir": "${workspaceRoot}/out/src", + "preLaunchTask": "npm" + }, + { + "name": "Launch Tests", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": ["--extensionDevelopmentPath=${workspaceRoot}", "--extensionTestsPath=${workspaceRoot}/out/test" ], + "stopOnEntry": false, + "sourceMaps": true, + "outDir": "${workspaceRoot}/out/test", + "preLaunchTask": "npm" + } + ] +} diff --git a/textdocumentprovider-sample/.vscode/settings.json b/textdocumentprovider-sample/.vscode/settings.json new file mode 100644 index 00000000..3f5aa9cf --- /dev/null +++ b/textdocumentprovider-sample/.vscode/settings.json @@ -0,0 +1,10 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.exclude": { + "out": false // set this to true to hide the "out" folder with the compiled JS files + }, + "search.exclude": { + "out": true // set this to false to include "out" folder in search results + }, + "typescript.tsdk": "./node_modules/typescript/lib" // we want to use the TS server from our node_modules folder to control its version +} \ No newline at end of file diff --git a/textdocumentprovider-sample/.vscode/tasks.json b/textdocumentprovider-sample/.vscode/tasks.json new file mode 100644 index 00000000..1992757d --- /dev/null +++ b/textdocumentprovider-sample/.vscode/tasks.json @@ -0,0 +1,30 @@ +// Available variables which can be used inside of strings. +// ${workspaceRoot}: the root folder of the team +// ${file}: the current opened file +// ${fileBasename}: the current opened file's basename +// ${fileDirname}: the current opened file's dirname +// ${fileExtname}: the current opened file's extension +// ${cwd}: the current working directory of the spawned process + +// A task runner that calls a custom npm script that compiles the extension. +{ + "version": "0.1.0", + + // we want to run npm + "command": "npm", + + // the command is a shell script + "isShellCommand": true, + + // show the output window only if unrecognized errors occur. + "showOutput": "silent", + + // we run the custom script "compile" as defined in package.json + "args": ["run", "compile", "--loglevel", "silent"], + + // The tsc compiler is started in watching mode + "isWatching": true, + + // use the standard tsc in watch mode problem matcher to find compile problems in the output. + "problemMatcher": "$tsc-watch" +} \ No newline at end of file diff --git a/textdocumentprovider-sample/.vscodeignore b/textdocumentprovider-sample/.vscodeignore new file mode 100644 index 00000000..795e7143 --- /dev/null +++ b/textdocumentprovider-sample/.vscodeignore @@ -0,0 +1,9 @@ +.vscode/** +typings/** +out/test/** +test/** +src/** +**/*.map +.gitignore +tsconfig.json +vsc-extension-quickstart.md diff --git a/textdocumentprovider-sample/README.md b/textdocumentprovider-sample/README.md new file mode 100644 index 00000000..a424c978 --- /dev/null +++ b/textdocumentprovider-sample/README.md @@ -0,0 +1,22 @@ +# CSS Properties Preview Sample +This is an sample extension that illustrates the use of virtual documents or `TextDocumentContentProviders` together with the `vscode.previewHtml` +[command](https://code.visualstudio.com/docs/extensionAPI/vscode-api-commands#_commands). + +It is not intended as a product quality extension. + +The purpose of the extension is to show a preview of the properties in the declaration block of a CSS rule. To play with the extension: +- Open a CSS file +- Use `Show CSS Properties Preview` +- Position the cursor inside the declaration block of the rule +- The properties are rendered in the preview +- Edit the propertis and the preview is updated + +![Navigation](images/preview.gif) + +# How it works + +- The extension implements and registers a `TextDocumentProvider` for a particular resource URI. +- The TextDocumentProvider creates a HTML document that contains the declaration block of the selected CSS Rule in the active editor. +- The generated HTML document is then opened in an editor in the 2nd Column using the command `vscode.previewHtml`. + + diff --git a/textdocumentprovider-sample/images/preview.gif b/textdocumentprovider-sample/images/preview.gif new file mode 100644 index 0000000000000000000000000000000000000000..3947d28019984de4411a66c1b6341f240fe8eb5c GIT binary patch literal 90793 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 + + public provideTextDocumentContent(uri: vscode.Uri): string { + return this.createCssSnippet(); + } + + get onDidChange(): vscode.Event { + return this._onDidChange.event; + } + + public update(uri: vscode.Uri) { + this._onDidChange.fire(uri); + } + + private createCssSnippet() { + let editor = vscode.window.activeTextEditor; + if (!(editor.document.languageId === 'css')) { + return this.errorSnippet("Active editor doesn't show a CSS document - no properties to preview.") + } + return this.extractSnippet(); + } + + private extractSnippet(): string { + let editor = vscode.window.activeTextEditor; + let text = editor.document.getText(); + let selStart = editor.document.offsetAt(editor.selection.anchor); + let propStart = text.lastIndexOf('{', selStart); + let propEnd = text.indexOf('}', selStart); + + if (propStart === -1 || propEnd === -1) { + return this.errorSnippet("Cannot determine the rule's properties."); + } + let properties = text.slice(propStart + 1, propEnd); + return this.snippet(properties); + } + + private errorSnippet(error: string): string { + return ` + + ${error} + `; + } + + private snippet(properties): string { + return ` + +
Preview of the CSS properties +
+
Lorem ipsum dolor sit amet, mi et mauris nec ac luctus lorem, proin leo nulla integer metus vestibulum lobortis, eget
+ `; + } + } + + let provider = new TextDocumentContentProvider(); + let registration = vscode.workspace.registerTextDocumentContentProvider('css-preview', provider); + + vscode.workspace.onDidChangeTextDocument((e: vscode.TextDocumentChangeEvent) => { + if (e.document === vscode.window.activeTextEditor.document) { + provider.update(previewUri); + } + }); + + vscode.window.onDidChangeTextEditorSelection((e: vscode.TextEditorSelectionChangeEvent) => { + if (e.textEditor === vscode.window.activeTextEditor) { + provider.update(previewUri); + } + }) + + let disposable = vscode.commands.registerCommand('extension.showCssPropertyPreview', () => { + return vscode.commands.executeCommand('vscode.previewHtml', previewUri, vscode.ViewColumn.Two).then((success) => { + }, (reason) => { + vscode.window.showErrorMessage(reason); + }); + + }); + context.subscriptions.push(disposable, registration); +} + +export function deactivate() { +} \ No newline at end of file diff --git a/textdocumentprovider-sample/test/extension.test.ts b/textdocumentprovider-sample/test/extension.test.ts new file mode 100644 index 00000000..1cec6f47 --- /dev/null +++ b/textdocumentprovider-sample/test/extension.test.ts @@ -0,0 +1,22 @@ +// +// Note: This example test is leveraging the Mocha test framework. +// Please refer to their documentation on https://mochajs.org/ for help. +// + +// The module 'assert' provides assertion methods from node +import * as assert from 'assert'; + +// You can import and use all API from the 'vscode' module +// as well as import your extension to test it +import * as vscode from 'vscode'; +import * as myExtension from '../src/extension'; + +// Defines a Mocha test suite to group tests of similar kind together +suite("Extension Tests", () => { + + // Defines a Mocha unit test + test("Something 1", () => { + assert.equal(-1, [1, 2, 3].indexOf(5)); + assert.equal(-1, [1, 2, 3].indexOf(0)); + }); +}); \ No newline at end of file diff --git a/textdocumentprovider-sample/test/index.ts b/textdocumentprovider-sample/test/index.ts new file mode 100644 index 00000000..c438886b --- /dev/null +++ b/textdocumentprovider-sample/test/index.ts @@ -0,0 +1,22 @@ +// +// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING +// +// This file is providing the test runner to use when running extension tests. +// By default the test runner in use is Mocha based. +// +// You can provide your own test runner if you want to override it by exporting +// a function run(testRoot: string, clb: (error:Error) => void) that the extension +// host can call to run the tests. The test runner is expected to use console.log +// to report the results back to the caller. When the tests are finished, return +// a possible error to the callback or null if none. + +var testRunner = require('vscode/lib/testrunner'); + +// You can directly control Mocha options by uncommenting the following lines +// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info +testRunner.configure({ + ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) + useColors: true // colored output from test results +}); + +module.exports = testRunner; \ No newline at end of file diff --git a/textdocumentprovider-sample/tsconfig.json b/textdocumentprovider-sample/tsconfig.json new file mode 100644 index 00000000..36ec8ae7 --- /dev/null +++ b/textdocumentprovider-sample/tsconfig.json @@ -0,0 +1,13 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "outDir": "out", + "noLib": true, + "sourceMap": true, + "rootDir": "." + }, + "exclude": [ + "node_modules" + ] +} \ No newline at end of file diff --git a/textdocumentprovider-sample/tslint.json b/textdocumentprovider-sample/tslint.json new file mode 100644 index 00000000..a9f9c0ab --- /dev/null +++ b/textdocumentprovider-sample/tslint.json @@ -0,0 +1,6 @@ +{ + "rules": { + "no-unused-variable": true, + "no-unused-expression": true + } +} \ No newline at end of file diff --git a/textdocumentprovider-sample/typings/node.d.ts b/textdocumentprovider-sample/typings/node.d.ts new file mode 100644 index 00000000..5ed7730b --- /dev/null +++ b/textdocumentprovider-sample/typings/node.d.ts @@ -0,0 +1 @@ +/// \ No newline at end of file diff --git a/textdocumentprovider-sample/typings/vscode-typings.d.ts b/textdocumentprovider-sample/typings/vscode-typings.d.ts new file mode 100644 index 00000000..61430b1c --- /dev/null +++ b/textdocumentprovider-sample/typings/vscode-typings.d.ts @@ -0,0 +1 @@ +///