建立自訂編輯器和設計工具

Visual Studio 整合式開發環境 (IDE) 可以裝載不同類型的編輯器:

  • Visual Studio 核心編輯器

  • 自訂編輯器

  • 外部編輯器

  • 設計工具

下列資訊可協助您選擇所需的編輯器類型。

編輯器的類型

如需 Visual Studio 核心編輯器的相關資訊,請參閱擴充編輯器和語言服務

自訂編輯器

自訂編輯器是經過設計在特殊情況下運作的編輯器。 例如,您可以建立一個編輯器,具備讀取資料並寫入特定存放庫 (例如 Microsoft Exchange 伺服器) 的功能。 如果您想要一個只能與您的專案類型搭配運作的編輯器,或您想要一個只有少數特定命令的編輯器,請選擇自訂編輯器。 不過請注意,使用者將無法使用自訂編輯器來編輯標準 Visual Studio 專案。

自訂編輯器可以使用編輯器處理站,並將編輯器的相關資訊新增至登錄。 不過,與自訂編輯器相關聯的專案類型可以透過其他方式具現化自訂編輯器。

自訂編輯器可以使用就地啟用或簡化的內嵌來實作檢視。

外部編輯器

外部編輯器是未整合到 Visual Studio 中的編輯器,例如 Microsoft Word、記事本或 Microsoft FrontPage。 例如,如果您從 VSPackage 將文字傳遞至該編輯器,您可能會呼叫這類編輯器。 外部編輯器會自行註冊,而且可以在 Visual Studio 外部使用。 當您呼叫外部編輯器時,它可以內嵌在主視窗中,然後它會出現在 IDE 的視窗中。 如果沒有,IDE 會為其建立個別的視窗。

IsDocumentInProject 方法會使用 VSDOCUMENTPRIORITY 列舉來設定文件優先順序。 如果指定了 DP_External 值,則外部編輯器可以開啟該檔案。

編輯器設計決策

下列設計問題可協助您選擇最適合您應用程式的編輯器類型:

  • 您的應用程式是否會將其資料儲存在檔案中? 如果它會將其資料儲存在檔案中,是以自訂還是標準格式儲存?

    如果您使用標準檔案格式,除了您的專案之外,其他專案類型將能夠開啟和讀取/寫入資料。 不過,如果您使用自訂檔案格式,則只有您的專案類型才能開啟和讀取/寫入資料。

    如果您的專案使用檔案,則您應該自訂標準編輯器。 如果您的專案不使用檔案,而是使用資料庫或其他存放庫中的專案,則您應該建立自訂編輯器。

  • 您的編輯器是否需要裝載 ActiveX 控制項?

    如果您的編輯器裝載 ActiveX 控制項,請實作就地啟用編輯器,如就地啟用中所述。 如果它不裝載 ActiveX 控制項,請使用簡化的內嵌編輯器,或自訂 Visual Studio 預設編輯器。

  • 您的編輯器會支援多個檢視嗎? 如果您想要讓編輯器的檢視與預設編輯器同時顯示,則必須支援多個檢視。

    如果您的編輯器需要支援多個檢視,則編輯器的文件資料和文件檢視物件必須是個別的物件。 如需詳細資訊,請參閱支援多個文件檢視

    如果您的編輯器支援多個檢視,您是否計劃針對文件資料物件使用 Visual Studio 核心編輯器的文字緩衝區實作 (VsTextBuffer 物件)? 也就是說,您要與 Visual Studio 核心編輯器並存支援編輯器檢視嗎? 執行這項操作的能力是表單設計工具的基礎。

  • 如果您需要裝載外部編輯器,編輯器是否可以內嵌在 Visual Studio 中?

    如果它可以內嵌,您應該為外部編輯器建立主視窗,然後呼叫 IsDocumentInProject 方法,並將 VSDOCUMENTPRIORITY 列舉值設定為 DP_External。 如果無法內嵌編輯器,IDE 會自動為其建立個別的視窗。

本節內容

逐步解說︰建立自訂編輯器
說明如何建立自訂編輯器。

逐步解說︰將功能新增至自訂編輯器
說明如何將功能新增至自訂編輯器。

設計工具初始化和中繼資料組態
說明如何初始化設計工具。

為設計工具提供復原支援
說明如何為設計工具提供復原支援。

自訂編輯器中的語法著色
說明核心編輯器和自訂編輯器中的語法著色之間的差異。

自訂編輯器中的文件資料和文件檢視
說明如何在自訂編輯器中實作文件資料和文件檢視。