VS Code插件开发教程(4) 插件指南 Extension Guidesd

4,163 阅读2分钟

介绍

之前在 VS Code插件开发笔记(2) Get StartedHello World示例中学到了一些Visual Studio Code插件API的基本用法,现在是时候更进一步,学习创建一些更加实用的插件了。在之前的文章 VS Code插件开发笔记(3) Capabilities 我们概括性的介绍了一个插件可以做些什么,从本文开始我们将会逐步详细展开,用一系列指南(guides)和代码示例来介绍具体的VS Code API用法

在每篇指南(guides)和示例代码中,我们将提供一下内容:

  • 针对源代码的完整注释
  • 以gif或静态图的方式提供示例插件的使用方法
  • 示例插件的运行说明
  • 用到的VS Code API列表
  • 用到的Contribution Points列表
  • 真实插件和示例之间的关系
  • 对 API 概念的解释

一般插件指南&示例

后续我们会介绍一系列的开发指南和示例,包含VS Code APIContribution Points的用法,下面我们以列表的形式将这些指南和示例罗列出来:

指南

指南API & Contribution
Commandcommands
Color Themecontributes.themes
File Icon Themecontributes.iconThemes
Product Icon Themecontributes.productIconThemes
Tree Viewwindow.createTreeView

window.registerTreeDataProvider

TreeView

TreeDataProvider

contributes.views

contributes.viewsContainers
Webviewwindow.createWebviewPanel

window.registerWebviewPanelSerializer
Custom Editorswindow.registerCustomEditorProvider

CustomTextEditorProvider

contributes.customEditors
Virtual Documentsworkspace.registerTextDocumentContentProvider

commands.registerCommand

window.showInputBox
Task Providertasks.registerTaskProvider

Task

ShellExecution

contributes.taskDefinitions
Source Controlworkspace.workspaceFolders

SourceControl

SourceControlResourceGroup

scm.createSourceControl

TextDocumentContentProvider

contributes.menus
Debugger Extensioncontributes.breakpoints

contributes.debuggers

debug
Markdown Extensionmarkdown.previewStyles

markdown.markdownItPlugins

markdown.previewScripts
Custom Data Extensioncontributes.html.customData

contributes.css.customData

示例

示例的源代码参见 示例插件代码仓库

示例API & Contribution
Webview Samplewindow.createWebviewPanel

window.registerWebviewPanelSerializer
Status Bar Samplewindow.createStatusBarItem

StatusBarItem
Tree View Samplewindow.createTreeView

window.registerTreeDataProvider

TreeView

TreeDataProvider

contributes.views

contributes.viewsContainers
Task Provider Sampletasks.registerTaskProvider

Task

ShellExecution

contributes.taskDefinitions
Multi Root Sampleworkspace.getWorkspaceFolder

workspace.onDidChangeWorkspaceFolders
Completion Provider Samplelanguages.registerCompletionItemProvider

CompletionItem

SnippetString
File System Provider Sampleworkspace.registerFileSystemProvider
Editor Decoractor SampleTextEditor.setDecorations

DecorationOptions

DecorationInstanceRenderOptions

ThemableDecorationInstanceRenderOptions

window.createTextEditorDecorationType

TextEditorDecorationType

contributes.colors
I18n Sample-
Terminal Samplewindow.createTerminal

window.onDidChangeActiveTerminal

window.onDidCloseTerminal

window.onDidOpenTerminal

window.Terminal

window.terminals
Vim Samplecommands

StatusBarItem

window.createStatusBarItem

TextEditorCursorStyle

window.activeTextEditor

Position

Range

Selection

TextEditor

TextEditorRevealType

TextDocument
Source Control Sampleworkspace.workspaceFolders

SourceControl

SourceControlResourceGroup

scm.createSourceControl

TextDocumentContentProvider

contributes.menus
Commenting API Sample-
Document Editing Samplecommands

语言插件示例

示例指南
Snippet Sample[Snippet Guide]
Language Configuration Sample[Language Configuration Guide]
LSP Sample[Language Server Extension Guide]
LSP Log Streaming Sample-
LSP Multi Root Server Samplelanguage-client--language-server

相关文章