vscode插件開發中文文檔教程(8)——擴展API導覽
原文鏈接:Extension Guides
作者:Microsoft
譯者:倔強青銅三
前言
大家好,我是倔強青銅三。是一名熱情的軟件工程師,我熱衷於分享和傳播IT技術,致力於通過我的知識和技能推動技術交流與創新,歡迎關注我,微信公眾號:倔強青銅三。歡迎點贊、收藏、關注,一鍵三連!!!
擴展API導覽
一旦您已經瞭解了 Visual Studio Code 擴展 API 的基礎知識,例如在 Hello World 示例中展示的內容,就可以開始構建一些實際的擴展了。雖然 擴展功能 部分提供了擴展 可以 做什麼的高級概述,但本節包含一系列詳細的代碼指南和示例,解釋了 如何 使用特定的 VS Code API。
在每個指南或示例中,您可以期望找到以下內容:
- 註釋詳盡的源代碼。
- 展示示例擴展用法的 GIF 或圖片。
- 運行示例擴展的説明。
- 列出使用的 VS Code API。
- 列出使用的貢獻點(Contribution Points)。
- 與示例類似的現實世界擴展。
- API 概念的解釋。
指南與示例
以下是 VS Code 網站上的指南列表,包括它們對 VS Code API 和 貢獻點 的使用情況。別忘了參考 UX 指南,以瞭解創建擴展的最佳用户界面實踐。
| VS Code 網站上的指南 | API & 貢獻點 |
|---|---|
| 命令 | commands
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 Extensions 示例倉庫 的更多示例列表。
| 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 |
| 本地化示例 | |
| 終端示例 | window.createTerminal
window.onDidChangeActiveTerminal window.onDidCloseTerminal window.onDidOpenTerminal window.Terminal window.terminals |
| Vim 示例 | commands
StatusBarItem window.createStatusBarItem TextEditorCursorStyle window.activeTextEditor Position Range Selection TextEditor TextEditorRevealType TextDocument |
| 源代碼控制示例 | workspace.workspaceFolders
SourceControl SourceControlResourceGroup scm.createSourceControl TextDocumentContentProvider contributes.menus |
| 評論 API 示例 | |
| 文檔編輯示例 | commands
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 日誌流示例 | N/A |
| 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 |
最後感謝閲讀!歡迎關注我,微信公眾號:倔強青銅三。歡迎點贊、收藏、關注,一鍵三連!!!