2017-04-11 69 views
7

Kırmızı hata kısıklıkları gösteren bir Visual Studio uzantısı var. Ayrıca, diğer renkler ile dalgalı çizgiler sağlamak istiyorum, örneğin uyarılar için sarı. kırmızı karalamalar oluşturmaVisual Studio uzantısı ile yeşil (veya mavi) dalgalı süsleme oluşturma nasıl oluşturulur?

çizgisinde ITagger sınıfını genişleterek yapılabilir:

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")); 
     } 
    } 
} 

denedim Ne:

  1. Sezgim (yanlış) diyor bir bir ErrorTag dönen Farklı errorType farklı bir etiket türünü verebilir, ancak hangi dizgeyi geçirirseniz, squiggles kırmızı kalır. Örneğin. yeni ErrorTag ("Uyarı") kırmızı dalgalı çizgiler verir. MSDN belgeleri neredeyse yok. Bakınız ErrorTag. Tagging namespaceTagging namespace'da, ITag uygulayan farklı bir Tag sınıfından bahsedilmemektedir. Bir WarningTag veya InfoTag var olmasını umuyordum.
  2. MSDN forumu here hakkında bir soru sorun.

Soru: nasıl yeşil (veya mavi veya sarı) squiggle süslerini oluşturmak için? Ne yazık ki, arbane veya kıvrık çözümler bile takdir edilir ...

VS2015 ve VS2017'yi hedefliyorum.

Düzenleme: Bu soruyu yazarken MSDN forumundaki bir kişi, geçerli API ile yapılamadığını yanıtladı. Visual Studio'da sarı dalgalı çizgiler yapmak gerçekten imkansız mı ?!

+0

'Tagging' ad alanı, diğerlerinin yanı sıra' ITag' işlevini uygulayan 'TextMarkerTag' değerine de sahiptir. Https://msdn.microsoft.com/en-us/library/dd885121.aspx'i okudun mu? –

+0

@ C.Evenhuis Evet, bunu brace eşleme ve anahtar kelime vurgulama için okudum ve uyguladım, ancak bir TextMarkerTag'ı squiggles için nasıl kullanacağımı göremiyorum. Sanırım IErrorTag'ı uygulamak zorundayım. – HJLebbink

+0

Daha sonra, "ErrorType" için bu değerlerden birini denemek isteyebilirsiniz, bunlar VS'nin desteklediği gibi görünüyor: https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.adornments.predefinederrortypenames .aspx –

cevap

3

PredefinedErrorTypeNames, ErrorTag'un ErrorType özelliğinin desteklenen değerlerini içerir.

"Uyarı" ile yakınsınız, ancak PredefinedErrorTypeNames.Warning değeri "derleyici uyarısı" olarak görünüyor.

+2

Eğer bu belgelenmişse (MS ile) sadece ihtiyacınız olan yerde bir link ekleyerek birkaç gün israf olmazdım. MS'de birisini tamir etmesini isteyeceğim. – HJLebbink