Eğitim
Modül
C# dilinde kurallar, boşluklar ve açıklamalar ile okunabilir kod oluşturma - Training
Adlandırma kurallarını, açıklamaları ve boşlukları kullanarak kolayca okunabilen, güncelleştirilebilen ve desteklenebilen kod yazın.
Bu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Özel düzenleyici uzantılarını kullanarak düzenleyici kenar boşluklarının görünümünü özelleştirebilirsiniz. Bu izlenecek yol, bir kod açıklamasında "yapılacaklar" sözcüğü her görüntülendiğinde gösterge kenar boşluğuna özel bir karakter ekler.
C# VSIX projesi oluşturun. (Yeni Proje iletişim kutusu, Visual C# / Genişletilebilirlik'i ve ardından VSIX Projesi'ni seçin.) Çözümü TodoGlyphTest
olarak adlandırın.
Düzenleyici Sınıflandırıcısı proje öğesi ekleyin. Daha fazla bilgi için bkz . Düzenleyici öğesi şablonuyla uzantı oluşturma.
Varolan sınıf dosyalarını silin.
Arabirimini çalıştırarak IGlyphFactory bir karakter tanımlayın.
Bir sınıf dosyası ekleyin ve adını verin TodoGlyphFactory
.
Bildirimleri kullanarak aşağıdaki kodu ekleyin.
using System.ComponentModel.Composition;
using System.Windows;
using System.Windows.Shapes;
using System.Windows.Media;
using System.Windows.Controls;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Text.Formatting;
using Microsoft.VisualStudio.Text.Tagging;
using Microsoft.VisualStudio.Utilities;
uygulayan IGlyphFactoryadlı TodoGlyphFactory
bir sınıf ekleyin.
Karakterin boyutlarını tanımlayan özel bir alan ekleyin.
Glif kullanıcı arabirimi (UI) öğesini tanımlayarak uygulayın GenerateGlyph
. TodoTag
daha sonra bu kılavuzda tanımlanır.
public UIElement GenerateGlyph(IWpfTextViewLine line, IGlyphTag tag)
{
// Ensure we can draw a glyph for this marker.
if (tag == null || !(tag is TodoTag))
{
return null;
}
System.Windows.Shapes.Ellipse ellipse = new Ellipse();
ellipse.Fill = Brushes.LightBlue;
ellipse.StrokeThickness = 2;
ellipse.Stroke = Brushes.DarkBlue;
ellipse.Height = m_glyphSize;
ellipse.Width = m_glyphSize;
return ellipse;
}
uygulayan IGlyphFactoryProvideradlı TodoGlyphFactoryProvider
bir sınıf ekleyin. Bu sınıfı "TodoGlyph", OrderAttribute After VsTextMarker, "ContentTypeAttributecode" ve TagTypeAttribute todoTag ile NameAttribute dışarı aktarın.
örneğini GetGlyphFactory ekleyerek TodoGlyphFactory
yöntemini uygulayın.
Önceki adımlarda tanımladığınız UI öğesi ile gösterge kenar boşluğu arasındaki ilişkiyi tanımlayın. Etiket türü oluşturun, etiketleyin ve bir etiketleme sağlayıcısı kullanarak dışarı aktarın.
Projeye yeni bir sınıf dosyası ekleyin ve olarak adlandırın TodoTagger
.
Aşağıdaki içeri aktarmaları ekleyin.
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using Microsoft.VisualStudio.Text;
using Microsoft.VisualStudio.Text.Tagging;
using Microsoft.VisualStudio.Text.Editor;
using Microsoft.VisualStudio.Text.Classification;
using Microsoft.VisualStudio.Utilities;
adlı TodoTag
bir sınıf ekleyin.
türünde TodoTag
uygulayan ITagger<T> adlı TodoTagger
sınıfını değiştirin.
sınıfına TodoTagger
, sınıflandırma aralıklarında bulunacak metin için ve IClassifier için özel alanlar ekleyin.
Sınıflandırıcıyı ayarlayan bir oluşturucu ekleyin.
GetTags Adları "açıklama" sözcüğünü içeren ve metni arama metnini içeren tüm sınıflandırma aralıklarını bularak yöntemini uygulayın. Arama metni her bulunduğunda, türünde yeni TagSpan<T> bir verim TodoTag
elde edin.
IEnumerable<ITagSpan<TodoTag>> ITagger<TodoTag>.GetTags(NormalizedSnapshotSpanCollection spans)
{
foreach (SnapshotSpan span in spans)
{
//look at each classification span \
foreach (ClassificationSpan classification in m_classifier.GetClassificationSpans(span))
{
//if the classification is a comment
if (classification.ClassificationType.Classification.ToLower().Contains("comment"))
{
//if the word "todo" is in the comment,
//create a new TodoTag TagSpan
int index = classification.Span.GetText().ToLower().IndexOf(m_searchText);
if (index != -1)
{
yield return new TagSpan<TodoTag>(new SnapshotSpan(classification.Span.Start + index, m_searchText.Length), new TodoTag());
}
}
}
}
}
Bir TagsChanged
olay bildirin.
uygulayan ITaggerProvideradlı TodoTaggerProvider
bir sınıf ekleyin ve bunu "code" ve TagTypeAttribute todoTag ile ContentTypeAttribute dışarı aktarın.
öğesini içeri aktarın IClassifierAggregatorService.
örneğini CreateTagger ekleyerek TodoTagger
yöntemini uygulayın.
Bu kodu test etmek için TodoGlyphTest çözümünü derleyin ve deneysel örnekte çalıştırın.
Çözümü oluşturun.
F5 tuşuna basarak projeyi çalıştırın. Visual Studio'nun ikinci bir örneği başlar.
Gösterge kenar boşluğunun gösterildiğinden emin olun. (Araçlar menüsünde Seçenekler'e tıklayın. Metin Düzenleyicisi sayfasında Gösterge kenar boşluğunun seçili olduğundan emin olun.)
Açıklamaları olan bir kod dosyası açın. Açıklama bölümlerinden birine "todo" sözcüğünü ekleyin.
Kod penceresinin solundaki gösterge kenar boşluğunda koyu mavi ana hatlı açık mavi bir daire görüntülenir.
Eğitim
Modül
C# dilinde kurallar, boşluklar ve açıklamalar ile okunabilir kod oluşturma - Training
Adlandırma kurallarını, açıklamaları ve boşlukları kullanarak kolayca okunabilen, güncelleştirilebilen ve desteklenebilen kod yazın.
Belgeler
Düzenleyici İçeri Aktarımları - Visual Studio (Windows)
Uzantınıza çekirdek düzenleyiciye farklı türlerde erişim sağlayan düzenleyici hizmetlerini, fabrikaları ve aracıları içeri aktarmayı öğrenin.
Düzenleyicinin İçinde - Visual Studio (Windows)
Düzenleyicinin alt sistemleri ve özellikleri hakkında bilgi edinin. Visual Studio düzenleyicisinin özelliklerini genişletebilirsiniz.
İzlenecek Yol: Metin Görünümünü Özelleştirme - Visual Studio (Windows)
Bu kılavuzu kullanarak düzenleyici biçimli haritasındaki çeşitli özelliklerden herhangi birini değiştirerek metin görünümünü özelleştirmeyi öğrenin.