使用C# 擴充VS的帶工具列的編輯器(翻譯)

來源:互聯網
上載者:User
介紹

這個例子展示了如何使用一個包(Package)來擴充Visual Studio,使之支援一個特定檔案類型的編輯器並附帶工具箱支援,在這個例子中我們將實現一個 .tbx檔案的編輯器以及一個可用於此文檔的工具箱項目。

  • 提供一個編輯器工廠類;
  • 文檔的序列化和還原序列化;
  • 工具箱支援,即從工具箱中拖動一個文本到文檔中;
  • 支援原始碼控制和唯讀檔案支援。


入門

這個例子實現了.tbx檔案的編輯器功能,其內部實際上只是簡單的使用了RickTextBox控制項來編輯文檔。這個例子主要還是用來展示編輯器如何與Vistual Studio工具箱的互動。
這個編輯器使用了SVsToolbox服務並實現了IVsToolboxUser介面,以支援於工具箱互動,實現操控工具箱和支援拖動。
在這個編輯器中,支援LOGVIEWID_Designer邏輯視圖,需要在註冊表中登記入口資訊以描述這個包支援此尾碼。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\ {93fa4dc3-61ec-47af-b0ba-50cad3caf049}] "DisplayName"="#106" "Package"="{68a4ede6-8f63-44f2-803e-65f770e709e1}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\ {93fa4dc3-61ec-47af-b0ba-50cad3caf049}\Extensions] "addin"=dword:00000032

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Editors\ {93fa4dc3-61ec-47af-b0ba-50cad3caf049}\LogicalViews] "{7651a702-06e5-11d1-8ebd-00a0c90f26ea}"=""

其中{93fa4dc3-61ec-47af-b0ba-50cad3caf049}是指EditorFactory類型的COM GUID;
{68a4ede6-8f63-44f2-803e-65f770e709e1}指EditorPackage的COM GUID;
{7651a702-06e5-11d1-8ebd-00a0c90f26ea}指的是 LOGVIEWID_Designer的值。

這個Example.EditorWithToolbox的例子包含一個IntergrationTests的目錄,這個目錄中的測試案例要求你的機器必須安裝VsIdeTestHost.msi ,這個安裝包將建立 VisualStudioTeamSystemIntegration\Test Tool Extensibility\VsIdeHostAdapter檔案夾。

專案檔

AssemblyInfo.cs 包含組裝件的資訊
ClassDiagram.cd 工程的類描述圖
EditorFactory.cs 實現了IVsEditorFactory介面以建立編輯器的視圖對象
EditorPane.cs 實現了EditorPane類, 用來容納編輯器 (RichTextBox控制項) 並響應編輯器的Command命令
EditorControl.cs 派生自RichTextBox.的控制項,用來編輯文本
GuidList.cs 包含了所有的GUID定義, 包括package的GUID和所有Command的GUID.
Resources.resx 項目的資源檔. 這些定義將被SampleDocViewEditor.vsdir使用.
EditorPackage.cs 包含了包的定義,其關於編輯器的attributes定義能夠自動註冊到註冊表中,他也實現了建立一個EditorFactory執行個體,並通知IDE (調用 IVsRegisterEditor::RegisterEditor).
Templates\tbx.tbx EditorWithToolbox.vsdir 將使用這個 "tbx"作為例子檔案.
Templates\EditorWithToolbox.vsdir 在Visual Studio的建立對話方塊中,提供模板。

Microsoft Corporation. All rights reserved.
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.