您可以使用編輯器延伸模組,將語言服務功能 (例如大綱、大括號比對、IntelliSense 和燈泡) 新增至您自己的程式設計語言或任何內容類型。 您也可以自訂 Visual Studio 編輯器的外觀和行為,例如文字著色、邊界、裝飾和其他視覺元素。 您也可以定義自己的內容類型,並指定內容顯示之文字視圖的外觀和行為。
若要開始撰寫編輯器延伸模組,請使用安裝為 Visual Studio SDK 一部分的編輯器專案範本。 Visual Studio SDK 是一組可下載的工具,可讓您更輕鬆地使用 VSPackage 或使用 Managed Extensibility Framework (MEF) 來開發 Visual Studio 延伸模組。
備註
如需 Visual Studio SDK 的詳細資訊,請參閱 Visual Studio SDK。
建議您在撰寫自己的編輯器擴充功能之前,先瞭解下列概念和技術。
Windows Presentation Foundation (WPF) 和編輯器延伸模組
Visual Studio 編輯器使用者介面 (UI) 是使用 Windows Presentation Foundation (WPF) 來實作。 WPF 提供豐富的視覺體驗和一致的程式設計模型,將程式碼的視覺化層面與商務邏輯分開。 當您建立編輯器延伸模組時,您可以使用許多 WPF 元素和功能。 如需詳細資訊,請參閱 Windows Presentation Foundation。
受控擴充性架構 (MEF) 和編輯器延伸模組
Visual Studio 編輯器會使用 Managed 擴充性架構 (MEF) 來管理其元件和延伸模組。 MEF 也可讓開發人員更輕鬆地為 Visual Studio 等主機應用程式建立延伸模組。 在此架構中,您可以根據 MEF 合約定義延伸模組,並將其匯出為 MEF 元件零件。 主機應用程式會透過尋找元件、註冊元件,以及確定它們套用至正確的內容來管理元件元件。
備註
如需編輯器中 MEF 的詳細資訊,請參閱 編輯器中的 Managed Extensibility Framework。
Visual Studio 編輯器延伸點和延伸模組
編輯器延伸點是您可以自訂和延伸的 MEF 元件零件。 在某些情況下,您可以實作介面,並將其與正確的中繼資料一起匯出,以擴充延伸點。 在其他情況下,您只需宣告延伸模組並將其匯出為特定類型。
以下是一些基本類型的編輯器擴充功能:
邊界和滾動條
Tags
裝飾品
選項
IntelliSense
如需編輯器擴充點的詳細資訊,請參閱 語言服務和編輯器擴充點。
部署編輯器延伸模組
在 Visual Studio 中,您可以將名為 source.extension.vsixmanifest 的中繼資料檔案新增至解決方案、建置解決方案,然後在 Visual Studio 已知的資料夾中新增二進位檔和資訊清單的複本,以部署編輯器延伸模組。 資訊清單檔案會定義延伸模組的基本事實 (例如,名稱、作者、版本和內容類型)。 如需 VSIX 清單檔案以及如何部署延伸模組的詳細資訊,請參閱 部署 Visual Studio 延伸模組。
當您在電腦上安裝擴充功能時,請將二進位檔和資訊清單包含在 Visual Studio 已知的資料夾的子資料夾中。
警告
如果您使用 Visual Studio 中包含的其中一個編輯器擴充性範本,則不必擔心資訊清單和部署位置的詳細資料。 範本包含註冊和部署延伸模組所需的一切。
在實驗執行個體中執行延伸模組
您可以在開發延伸模組時,將您使用的 Visual Studio 版本隔離,並部署在下列實驗性資料夾中(適用於 Windows Vista 和 Windows 7):
{%LOCALAPPDATA%}\VisualStudio\10.0Exp\Extensions\{Company}\{ExtensionID}
其中 %LOCALAPPDATA% 是登入使用者的名稱, Company 是擁有延伸模組的公司名稱,而 ExtensionID 是延伸模組的識別碼。
當您將延伸模組部署至實驗位置時,它會在偵錯模式中執行。 Visual Studio 的第二個實例已啟動,並命名為 Microsoft Visual Studio - 實驗性實例。
管理擴充套件
Visual Studio 的延伸模組會列在 [延伸模組和更新 ] (在 [工具] 功能表上) 中。 如果您要在實驗性執行個體中測試延伸模組,則該延伸模組會列在實驗性執行個體的 [延伸模組和更新 ] 中,但不會列在開發執行個體中。
如需詳細資訊,請參閱 尋找和使用 Visual Studio 延伸模組。
使用範本建立編輯器延伸模組
您可以使用編輯器範本來建立 MEF 延伸模組,以自訂分類器、裝飾和邊界。 C# 和 Visual Basic 專案都有範本。 如需詳細資訊,請參閱使用 編輯器項目範本建立延伸模組。
您也可以使用 VSIX 專案範本來建立延伸模組。 此範本只會提供部署任何類型延伸模組所需的元素,並包含 source.extension.vsixmanifest 檔案、必要的元件參考,以及包含可讓您部署延伸模組之建置工作的專案檔。 如需詳細資訊,請參閱 VSIX 專案範本。
您也可以從 Visual Studio 套件延伸模組建立編輯器 MEF 元件。 如需詳細資訊,請參閱下列逐步解說: