10

Visual Studio 2010 用のプラグインを書きたいのですが、実際にはいくつかの問題に直面しています。私がやりたいことは簡単に思えます.Resharper(リファクタリングに役立つメニュー付きの小さなペン)のようにコードエディターでテキストを選択すると、小さなツールボックスが表示されることを望みます.

http://www.axtools.com/products-vs2010-extensions.php?tab=selection-popup

私が知りたいのですが :

  1. 開始に役立つ Visual Studio テンプレートはありますか? 「Editor Viewport Adornment」で試してみましたが、よくわかりません。

  2. ツールボックスの開始から設計する必要がありますか、それともシステム ツールボックスからいくつかのボタンを表示できますか? リンクからのaxtoolsプラグインでは、カスタムメイドのツールボックスまたはシステムのものですか?

  3. テキストが選択されたことを検出する方法は?

今のところこれ以上質問はありません。私はむしろ Web 開発者なので、ビジュアル スタジオ プラグインを作成することは私にとって新しいことです。

前もって感謝します。

4

1 に答える 1

4

私はその質問の2つの部分に答えることができます:

  1. SDKに付属している「EditorTextAdornment」テンプレートは、開始するのに適した場所です。それができたら、私が少し偽の複数ユーザー入力デモ用に書いたこのビジュアルマネージャーを見てください:AgentBadgeVisualManager.cs。これは、テキストの近く(真下ではない)にある種の装飾品を配置する方法を示しています。また、ビジュアルマネージャ用のViewCreationListener.csファイルも確認する必要がありますAdornmentLayerDefinition(プロジェクトテンプレートで取得するデフォルトから変更する最も重要なことは、Order装飾を確認するための属性です。テキストの上に表示されます)。
  2. 申し訳ありませんが、これについてはわかりません:(これをある種のWPFUIElementにする必要がありますが、それを過ぎると、それは本当にあなた次第です。
  3. サンプルの一部として実装されITextViewたものの一部として含まIWpfTextViewCreationListenerれる(に渡される)から、次のようにSelectionChangedイベントAgentBadgeVisualManagerをサブスクライブできます。

    view.Selection.SelectionChanged += (sender, args) => /* call methods to update your adornment here */;

    選択範囲が空で、キャレットを追跡している場合、イベントは発生しないことに注意してください。したがって、それを追跡する場合は、カレットが変更されたイベントもリッスンする必要があります。ただし、a)選択が空でない場合、またはb)選択が空と空でないの間で変化する場合だけを気にする場合は、そのイベントで十分です。

拡張性に関するより一般的な情報については、 githubページで作成した他の拡張機能を確認したり、ブログで作成した方法について読んだり、 VSXサンプルページを確認したり、codeplexのエディターサンプルページを確認したりできます。

于 2010-02-06T23:01:07.067 に答える