博客 / 詳情

返回

vscode插件開發中文文檔教程(4)——擴展功能概述

vscode插件開發中文文檔教程(4)——擴展功能概述

原文鏈接:Extension Capabilities Overview
作者:Microsoft
譯者:倔強青銅三

前言

大家好,我是倔強青銅三。是一名熱情的軟件工程師,我熱衷於分享和傳播IT技術,致力於通過我的知識和技能推動技術交流與創新,歡迎關注我,微信公眾號:倔強青銅三。歡迎點贊、收藏、關注,一鍵三連!!!

擴展功能概述

Visual Studio Code 提供了許多方式讓擴展程序增強其功能。有時,找到正確的 貢獻點 和 VS Code API 可能會比較困難。本主題將擴展功能分為幾個類別。每個類別描述:

  • 您的擴展可能使用的某些功能。
  • 使用這些功能的更詳細主題鏈接。
  • 一些擴展創意。

然而,我們還對擴展施加了 限制,以確保 VS Code 的穩定性和性能。例如,擴展無法訪問 VS Code UI 的 DOM。

通用功能

通用功能 是可以在任何擴展中使用的功能核心部分。

其中一些功能包括:

  • 註冊命令、配置、快捷鍵或上下文菜單項。
  • 存儲工作區或全局數據。
  • 顯示通知消息。
  • 使用 Quick Pick 收集用户輸入。
  • 打開系統文件選擇器,讓用户選擇文件或文件夾。
  • 使用 Progress API 表示長時間運行的操作。

主題

主題 控制 VS Code 的外觀,包括編輯器中源代碼的顏色以及 VS Code UI 的顏色。如果您曾經希望讓 VS Code 看起來像您正在編寫《黑客帝國》代碼(通過設置不同的綠色色調),或者只是想創建一個終極極簡灰度工作區,那麼主題就是為您準備的。

擴展創意

  • 更改源代碼的顏色。
  • 更改 VS Code UI 的顏色。
  • 將現有的 TextMate 主題移植到 VS Code。
  • 添加自定義文件圖標。

聲明式語言功能

聲明式語言功能 為編程語言提供基本的文本編輯支持,例如括號匹配、自動縮進和語法高亮。這是通過聲明式方式實現的,無需編寫任何代碼。對於更高級的語言功能(如 IntelliSense 或調試),請參閲 編程式語言功能。

擴展創意

  • 將常見的 JavaScript 片段打包成擴展。
  • 告訴 VS Code 關於一種新的編程語言。
  • 添加或替換編程語言的語法。
  • 使用語法注入擴展現有語法。
  • 將現有的 TextMate 語法移植到 VS Code。

編程式語言功能

編程式語言功能 提供豐富的編程語言支持,例如懸停提示、轉到定義、診斷錯誤、IntelliSense 和 CodeLens。這些語言功能通過 vscode.languages.* API 暴露。擴展可以直接使用這些 API,也可以編寫語言服務器並通過 VS Code 的 語言服務器庫 將其適配到 VS Code。

雖然我們提供了 語言功能 及其預期用途的列表,但沒有任何限制阻止您創造性地使用這些 API。例如,CodeLens 和懸停提示是呈現內聯附加信息的好方法,而診斷錯誤可以用於突出顯示拼寫或代碼風格錯誤。

擴展創意

  • 添加顯示 API 示例用法的懸停提示。
  • 使用診斷功能報告源代碼中的拼寫或 linter 錯誤。
  • 為 HTML 註冊一個新的代碼格式化程序。
  • 提供豐富、上下文感知的 IntelliSense。
  • 為語言添加摺疊、麪包屑和大綱支持。

工作台擴展

工作台擴展 擴展 VS Code 工作台 UI。向文件資源管理器添加新的右鍵操作,甚至可以使用 VS Code 的 TreeView API 構建自定義資源管理器。如果您的擴展需要完全自定義的用户界面,可以使用 Webview API 使用標準的 HTML、CSS 和 JavaScript 構建自己的文檔預覽或 UI。

擴展創意

  • 向文件資源管理器添加自定義上下文菜單操作。
  • 在側邊欄中創建一個新的交互式 TreeView。
  • 定義一個新的活動欄視圖。
  • 在狀態欄中顯示新信息。
  • 使用 WebView API 渲染自定義內容。
  • 貢獻源代碼控制提供程序。

調試

您可以通過編寫 調試器擴展 來利用 VS Code 的 調試 功能,將 VS Code 的調試 UI 連接到特定的調試器或運行時。

擴展創意

  • 通過貢獻一個 調試適配器實現,將 VS Code 的調試 UI 連接到調試器或運行時。
  • 指定調試器擴展支持的語言。
  • 為調試器使用的調試配置屬性提供豐富的 IntelliSense 和懸停信息。
  • 提供調試配置片段。

另一方面,VS Code 還提供了一組 調試擴展 API,您可以使用這些 API 在任何 VS Code 調試器的基礎上實現與調試相關的功能,從而自動化用户的調試體驗。

擴展創意

  • 基於動態創建的調試配置啓動調試會話。
  • 跟蹤調試會話的生命週期。
  • 程序化地創建和管理斷點。

UX 指南

為了幫助您的擴展無縫融入 VS Code 用户界面,請參考 UX 指南,您將在其中學習創建擴展 UI 的最佳實踐以及遵循首選 VS Code 工作流的約定。

限制

我們對擴展施加了一些限制。以下是這些限制及其目的。

無 DOM 訪問

擴展無法訪問 VS Code UI 的 DOM。您 不能 編寫一個擴展來應用自定義 CSS 到 VS Code 或向 VS Code UI 添加 HTML 元素。

在 VS Code 中,我們不斷優化底層 Web 技術的使用,以提供始終可用且高度響應的編輯器,並將繼續調整 DOM 的使用,因為這些技術和我們的產品在不斷髮展。為了確保擴展不會干擾 VS Code 的穩定性和性能,並且我們可以繼續改進 VS Code 的 DOM 而不破壞現有擴展,我們在 擴展主機 進程中運行擴展並防止直接訪問 DOM。

無自定義樣式表

用户或擴展提供的自定義樣式表會與 DOM 結構和類名相沖突。這些內容未記錄在案,因為我們認為它們是內部的。為了進化、重構或改進 VS Code,我們需要自由更改用户界面。DOM 的任何更改都可能破壞現有的自定義樣式表,導致樣式表提供者沮喪,並給用户帶來因損壞的樣式表導致的 UI 錯誤的不良體驗。

相反,VS Code 致力於提供一個經過良好設計的擴展 API 來支持 UI 自定義。該 API 有文檔説明,附帶工具和示例,並在所有即將發佈的 VS Code 版本中保持穩定。

最後感謝閲讀!歡迎關注我,微信公眾號倔強青銅三。歡迎點贊收藏關注,一鍵三連!!!
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.