2017-04-11 3 views
7

私は赤い誤差のはじきを示すVisual Studio拡張機能を持っています。私はまた、他の色、例えば警告の黄色をつけたものを提供するのが好きです。赤い波線を作成Visual Studio拡張機能で緑色(または青色)の飾り飾りを作成するには

は線に沿って、ITaggerクラスを拡張して行うことができます。

internal sealed class MySquigglesTagger : ITagger<IErrorTag> { 
    public IEnumerable<ITagSpan<IErrorTag>> GetTags(NormalizedSnapshotSpanCollection spans) { 
     foreach (IMappingTagSpan<MyTokenTag> myTokenTag in this._aggregator.GetTags(spans))   
      SnapshotSpan tagSpan = myTokenTag.Span.GetSpans(this._sourceBuffer)[0]; 
      yield return new TagSpan<IErrorTag>(tagSpan, new ErrorTag("Error", "some info about the error")); 
     } 
    } 
} 

私が試してみました何:

  1. 私の直感(間違って)言うことでErrorTagを返します異なるerrorTypeが異なるタイプのタグを生成するかもしれませんが、それを渡す文字列であれば、squigglesは赤のままです。例えば。新しいErrorTag( "Warning")は、赤い波打ちを与えます。 MSDNのドキュメントはほとんど存在しません。 ErrorTagを参照してください。
  2. Tagging namespaceには、ITagを実装する別のタグクラスの記述はありません。私は、WarningTagまたはInfoTagが存在することを望んだ。
  3. MSDNフォーラムhereで質問する

質問:緑色(または青色または黄色)の飾り飾りを作成するにはどうすればよいですか?悲しいことに、秘密で複雑なソリューションも高く評価されています...

私はVS2015とVS2017をターゲットにしています。

編集:この質問を入力している間、MSDNフォーラムの誰かが、現在のAPIで行うことはできないと答えました。 Visual Studioで黄色い塊を作るのは本当に不可能ですか?

+0

'Tagging'名前空間には、とりわけ' ITag'を実装する 'TextMarkerTag'があります。 https://msdn.microsoft.com/en-us/library/dd885121.aspxをお読みになりましたか? –

+0

@ C.Evenhuisはい、私はそれを読んで、ブレースマッチングとキーワードハイライトのために実装しましたが、私はsquigglesにTextMarkerTagを使用する方法を見ることができません。私はIErrorTagを実装する必要があると思います。 – HJLebbink

+0

次に、VSがサポートしているものと思われるこれらの値の1つを「ErrorType」として試してみてください。https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.adornments.predefinederrortypenames .aspx –

答えて

3

PredefinedErrorTypeNamesには、ErrorTagErrorTypeプロパティのサポート値が含まれています。

"警告"で終了しましたが、PredefinedErrorTypeNames.Warningの値は "コンパイラの警告"のようです。

+2

これは(MSによって)あなたがそれを必要とする場所で1つのリンクを追加するだけで文書化されていれば、私は数日間無駄にしませんでした。私はMSにそれを修正するよう依頼します。 – HJLebbink

関連する問題