现已发布!阅读关于 11 月新增功能和修复的内容。

扩展指南

在学习了 Hello World 示例中的 Visual Studio Code 扩展 API 基础知识后,是时候构建一些实际的扩展了。虽然 扩展功能 部分提供了扩展可以做什么的高级概述,但本节包含详细的代码指南和示例列表,解释了如何使用特定的 VS Code API。

在每个指南或示例中,您都可以找到

  • 注释详尽的源代码。
  • 展示示例扩展用法的 GIF 或图像。
  • 运行示例扩展的说明。
  • 正在使用的 VS Code API 列表。
  • 正在使用的贡献点列表。
  • 与示例相似的实际扩展。
  • API 概念解释。

指南与示例

以下是 VS Code 网站上的指南,包括它们对 VS Code API贡献点 的用法。不要忘记参考 UX 指南,以了解创建扩展的用户界面最佳实践。

VS Code 网站上的指南 API 与贡献
命令 命令
contributes.commands
颜色主题 contributes.themes
文件图标主题 contributes.iconThemes
产品图标主题 contributes.productIconThemes
树视图 window.createTreeView
window.registerTreeDataProvider
TreeView
TreeDataProvider
contributes.views
contributes.viewsContainers
Webview window.createWebviewPanel
window.registerWebviewPanelSerializer
自定义编辑器 window.registerCustomEditorProvider
CustomTextEditorProvider
contributes.customEditors
虚拟文档 workspace.registerTextDocumentContentProvider
commands.registerCommand
window.showInputBox
虚拟工作区 workspace.fs
capabilities.virtualWorkspaces
工作区信任 workspace.isTrusted
workspace.onDidGrantWorkspaceTrust
capabilities.untrustedWorkspaces
任务提供程序 tasks.registerTaskProvider
Task
ShellExecution
contributes.taskDefinitions
源代码管理 workspace.workspaceFolders
SourceControl
SourceControlResourceGroup
scm.createSourceControl
TextDocumentContentProvider
contributes.menus
调试器扩展 contributes.breakpoints
contributes.debuggers
debug
Markdown 扩展 markdown.previewStyles
markdown.markdownItPlugins
markdown.previewScripts
测试扩展 TestController
TestItem
自定义数据扩展 contributes.html.customData
contributes.css.customData

以下是来自 VS Code 扩展示例仓库 的其他示例列表。

GitHub 仓库中的示例 API 与贡献
Webview 示例 window.createWebviewPanel
window.registerWebviewPanelSerializer
状态栏示例 window.createStatusBarItem
StatusBarItem
树视图示例 window.createTreeView
window.registerTreeDataProvider
TreeView
TreeDataProvider
contributes.views
contributes.viewsContainers
任务提供程序示例 tasks.registerTaskProvider
Task
ShellExecution
contributes.taskDefinitions
多根目录示例 workspace.getWorkspaceFolder
workspace.onDidChangeWorkspaceFolders
补全提供程序示例 languages.registerCompletionItemProvider
CompletionItem
SnippetString
文件系统提供程序示例 workspace.registerFileSystemProvider
编辑器装饰示例 TextEditor.setDecorations
DecorationOptions
DecorationInstanceRenderOptions
ThemableDecorationInstanceRenderOptions
window.createTextEditorDecorationType
TextEditorDecorationType
contributes.colors
L10N 示例
终端示例 window.createTerminal
window.onDidChangeActiveTerminal
window.onDidCloseTerminal
window.onDidOpenTerminal
window.Terminal
window.terminals
Vim 示例 命令
StatusBarItem
window.createStatusBarItem
TextEditorCursorStyle
window.activeTextEditor
Position
Range
Selection
TextEditor
TextEditorRevealType
TextDocument
源代码管理示例 workspace.workspaceFolders
SourceControl
SourceControlResourceGroup
scm.createSourceControl
TextDocumentContentProvider
contributes.menus
注释 API 示例
文档编辑示例 命令
contributes.commands
入门示例 contributes.walkthroughs
测试扩展 TestController
TestItem

语言扩展示例

这些示例是 语言扩展 示例

示例 VS Code 网站上的指南
代码片段示例 /api/language-extensions/snippet-guide
语言配置示例 /api/language-extensions/language-configuration-guide
LSP 示例 /api/language-extensions/language-server-extension-guide
LSP 日志流式传输示例 不适用
LSP 多根目录服务器示例 https://github.com/microsoft/vscode/wiki/Adopting-Multi-Root-Workspace-APIs#language-client--language-server (GitHub 仓库 wiki)
LSP Web 扩展示例 /api/language-extensions/language-server-extension-guide
© . This site is unofficial and not affiliated with Microsoft.