This repository contains sample code illustrating the VS Code extension API. Each sample is a self-contained extension that explains one topic in VS Code API or VS Code's Contribution Points. You can read, play with or adapt from these samples to create your own extensions.
You can expect from each sample: - An explanation of its functionality - A gif or screenshot demonstrating its usage - Link to a guide on VS Code website, if it has one - Listing of used VS Code API and Contribution Points - Code of the same style, enforced using ESLint
You need to have node and npm installed on your system to run the examples. It is recommended to use the node version used for VS Code development itself which is documented here
git clone https://github.com/Microsoft/vscode-extension-samplescode <any-sample-folder>npm install in the terminal, then F5 to run the sample| Sample | Guide on VS Code Website | API & Contribution |
|---|---|---|
| Webview Sample | /api/extension-guides/webview | window.createWebviewPanel |
window.registerWebviewPanelSerializer | | Webview View Sample | N/A | window.registerWebviewViewProvider | | Webview Codicons Sample | N/A | | | Status Bar Sample | N/A | window.createStatusBarItem
StatusBarItem | | Tree View Sample | /api/extension-guides/tree-view | window.createTreeView
window.registerTreeDataProvider
contributes.viewsContainers | | Task Provider Sample | /api/extension-guides/task-provider | tasks.registerTaskProvider
contributes.taskDefinitions | | Multi Root Sample | N/A | workspace.getWorkspaceFolder
workspace.onDidChangeWorkspaceFolders | | Completion Provider Sample | N/A | languages.registerCompletionItemProvider
SnippetString | | Code Actions Sample | N/A | languages.registerCodeActionsProvider
CodeActionProvider | | File System Provider Sample | N/A | workspace.registerFileSystemProvider | | Editor Decorator Sample | N/A | TextEditor.setDecorations
DecorationInstanceRenderOptions
ThemableDecorationInstanceRenderOptions
window.createTextEditorDecorationType
contributes.colors | | L10n Sample | N/A | | | Terminal Sample | N/A | window.createTerminal
window.onDidChangeActiveTerminal
window.terminals | | Extension Terminal Sample | N/A | window.createTerminal
window.ExtensionTerminalOptions | | Color Theme Sample | /api/extension-guides/color-theme | contributes.themes | | Product Icon Theme Sample | /api/extension-guides/product-icon-theme | contributes.productIconThemes | | Vim Sample | N/A | commands
TextDocument | | webpack-sample | /api/working-with-extensions/bundling-extension | | | esbuild-sample | /api/working-with-extensions/bundling-extension | | | Source Control Sample | /api/extension-guides/scm-provider | workspace.workspaceFolders
contributes.menus | | Commenting API Sample | N/A | | | Document Editing Sample | N/A | commands | | Custom Data Sample | /api/extension-guides/custom-data-extension | | | CodeLens Provider Sample | N/A | languages.registerCodeLensProvider
CodeLens | | Call Hierarchy Sample | N/A | languages.registerCallHierarchyProvider
CallHierarchyIncomingCall | | Custom Editors Sample | /api/extension-guides/custom-editors | window.registerCustomEditorProvider
contributes.customEditors | | [Semantic tokens](https://github.com/Microsoft/vscode-extension-samples/tree/main/sema
$ claude mcp add vscode-extension-samples \
-- python -m otcore.mcp_server <graph>