From 81850fcab3bdf59eb61241d09637bcf671cb0022 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Wed, 24 Oct 2018 14:10:03 -0700 Subject: [PATCH] Terminal sample steps 2-4 --- terminal-sample/.vscode/extensions.json | 7 + terminal-sample/.vscode/settings.json | 9 +- terminal-sample/README.md | 31 +- terminal-sample/demo.png | Bin 0 -> 10209 bytes terminal-sample/package-lock.json | 2490 +++++++++++++++++++++++ 5 files changed, 2528 insertions(+), 9 deletions(-) create mode 100644 terminal-sample/.vscode/extensions.json create mode 100644 terminal-sample/demo.png create mode 100644 terminal-sample/package-lock.json diff --git a/terminal-sample/.vscode/extensions.json b/terminal-sample/.vscode/extensions.json new file mode 100644 index 00000000..ee71911b --- /dev/null +++ b/terminal-sample/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + // See http://go.microsoft.com/fwlink/?LinkId=827846 + // for the documentation about the extensions.json format + "recommendations": [ + "eg2.tslint" + ] +} \ No newline at end of file diff --git a/terminal-sample/.vscode/settings.json b/terminal-sample/.vscode/settings.json index 7877e3fc..e46111f1 100644 --- a/terminal-sample/.vscode/settings.json +++ b/terminal-sample/.vscode/settings.json @@ -1,10 +1,3 @@ -// 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 + "editor.insertSpaces": false } \ No newline at end of file diff --git a/terminal-sample/README.md b/terminal-sample/README.md index 81cc0e8b..a58971e7 100644 --- a/terminal-sample/README.md +++ b/terminal-sample/README.md @@ -1,3 +1,32 @@ # vscode-terminal-api-example -This repo demonstrates how to utilize the integrated terminal extension API. It targets VS Code v1.23, for earlier versions check the git history. \ No newline at end of file +This sample provides several commands that demonstrates how to utilize the integrated terminal extension API. Access the commands through the command palette (F1). + +![demo](demo.png) + +## VS Code API + +### `vscode` module + +- [window.createTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.createTerminal) +- [window.onDidChangeActiveTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidChangeActiveTerminal) +- [window.onDidCloseTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidCloseTerminal) +- [window.onDidOpenTerminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.onDidOpenTerminal) +- [window.Terminal](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.Terminal) +- [window.terminals](https://vscode-ext-docs.azurewebsites.net/api/references/vscode-api#window.terminals) + +### Proposed API + +- `window.createTerminalRenderer` +- `window.TerminalRenderer` + +### Contribution Points + +- [`contributes.commands`](https://code.visualstudio.com/docs/extensionAPI/extension-points#_contributescommands) + +## Running the Sample + +- Run `npm install` in terminal to install dependencies +- Run the `Run Extension` target in the Debug View. This will: + - Start a task `npm: watch` to compile the code + - Run the extension in a new VS Code window diff --git a/terminal-sample/demo.png b/terminal-sample/demo.png new file mode 100644 index 0000000000000000000000000000000000000000..da25fc5df354f3b0645d1d9cdb7b06c90c4dbcf8 GIT binary patch literal 10209 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