Extension Guides (original) (raw)

Topics

In this article

Edit

Once you have learned the basics of Visual Studio Code Extension API in the Hello World sample, it's time to build some real-world extensions. While the Extension Capabilities section offers high-level overviews of what an extension can do, this section contains a list of detailed code guides and samples that explains how to use a specific VS Code API.

In each guide or sample, you can expect to find:

Guides & Samples

Here are the guides on the VS Code website, including their usage of the VS Code API and Contribution Points. Don't forget to refer to the UX Guidelines to learn the user interface best practices for creating extensions.

Guide on VS Code Website API & Contribution
Command commandscontributes.commands
Color Theme contributes.themes
File Icon Theme contributes.iconThemes
Product Icon Theme contributes.productIconThemes
Tree View window.createTreeViewwindow.registerTreeDataProviderTreeViewTreeDataProvidercontributes.viewscontributes.viewsContainers
Webview window.createWebviewPanelwindow.registerWebviewPanelSerializer
Custom Editors window.registerCustomEditorProviderCustomTextEditorProvidercontributes.customEditors
Virtual Documents workspace.registerTextDocumentContentProvidercommands.registerCommandwindow.showInputBox
Virtual Workspaces workspace.fscapabilities.virtualWorkspaces
Workspace Trust workspace.isTrustedworkspace.onDidGrantWorkspaceTrustcapabilities.untrustedWorkspaces
Task Provider tasks.registerTaskProviderTaskShellExecutioncontributes.taskDefinitions
Source Control workspace.workspaceFoldersSourceControlSourceControlResourceGroupscm.createSourceControlTextDocumentContentProvidercontributes.menus
Debugger Extension contributes.breakpointscontributes.debuggersdebug
Markdown Extension markdown.previewStylesmarkdown.markdownItPluginsmarkdown.previewScripts
Test Extension TestControllerTestItem
Custom Data Extension contributes.html.customDatacontributes.css.customData

Here is a list of additional samples from the VS Code Extensions samples repo.

Sample on GitHub Repo API & Contribution
Webview Sample window.createWebviewPanelwindow.registerWebviewPanelSerializer
Status Bar Sample window.createStatusBarItemStatusBarItem
Tree View Sample window.createTreeViewwindow.registerTreeDataProviderTreeViewTreeDataProvidercontributes.viewscontributes.viewsContainers
Task Provider Sample tasks.registerTaskProviderTaskShellExecutioncontributes.taskDefinitions
Multi Root Sample workspace.getWorkspaceFolderworkspace.onDidChangeWorkspaceFolders
Completion Provider Sample languages.registerCompletionItemProviderCompletionItemSnippetString
File System Provider Sample workspace.registerFileSystemProvider
Editor Decorator Sample TextEditor.setDecorationsDecorationOptionsDecorationInstanceRenderOptionsThemableDecorationInstanceRenderOptionswindow.createTextEditorDecorationTypeTextEditorDecorationTypecontributes.colors
L10N Sample
Terminal Sample window.createTerminalwindow.onDidChangeActiveTerminalwindow.onDidCloseTerminalwindow.onDidOpenTerminalwindow.Terminalwindow.terminals
Vim Sample commandsStatusBarItemwindow.createStatusBarItemTextEditorCursorStylewindow.activeTextEditorPositionRangeSelectionTextEditorTextEditorRevealTypeTextDocument
Source Control Sample workspace.workspaceFoldersSourceControlSourceControlResourceGroupscm.createSourceControlTextDocumentContentProvidercontributes.menus
Commenting API Sample
Document Editing Sample commandscontributes.commands
Getting Started Sample contributes.walkthroughs
Test extension TestControllerTestItem

Language Extension Samples

These samples are Language Extensions samples:

Sample Guide on VS Code Website
Snippet Sample /api/language-extensions/snippet-guide
Language Configuration Sample /api/language-extensions/language-configuration-guide
LSP Sample /api/language-extensions/language-server-extension-guide
LSP Log Streaming Sample N/A
LSP Multi Root Server Sample https://github.com/microsoft/vscode/wiki/Adopting-Multi-Root-Workspace-APIs#language-client--language-server (GitHub repo wiki)
LSP Web Extension Sample /api/language-extensions/language-server-extension-guide

04/03/2025

In this article there are 2 sections