public SemanticColorTagger(ITextBuffer buffer, IClassificationTypeRegistryService registry, IOccurrenceTaggingOptions options) { _buffer = buffer; _options = options; foreach (string key in typeof(TagTypes).GetFields(BindingFlags.Public | BindingFlags.Static).Where(f => f.FieldType == typeof(string)).Select(f => f.GetValue(null))) { _clasificationTypes[key] = registry.GetClassificationType(key); } _clasificationTypes[ClassificationTypeNames.ClassName] = registry.GetClassificationType(ClassificationTypeNames.ClassName); _clasificationTypes[ClassificationTypeNames.EnumName] = registry.GetClassificationType(ClassificationTypeNames.EnumName); _clasificationTypes[ClassificationTypeNames.StructName] = registry.GetClassificationType(ClassificationTypeNames.StructName); _clasificationTypes[ClassificationTypeNames.InterfaceName] = registry.GetClassificationType(ClassificationTypeNames.InterfaceName); _options.PropertyChanged += OnOptionsChanged; }
public OccurrenceTagger(ITextView view, ITextBuffer sourceBuffer, ITextSearchService textSearchService, ITextStructureNavigator textStructureNavigator, IClassificationTypeRegistryService registry, IOccurrenceTaggingOptions options) { _view = view; _sourceBuffer = sourceBuffer; _textSearchService = textSearchService; _textStructureNavigator = textStructureNavigator; _options = options; _dimSpans = new NormalizedSnapshotSpanCollection(); _highlightSpans = new NormalizedSnapshotSpanCollection(); _classificationTypes[TagTypes.Dim] = registry.GetClassificationType(TagTypes.Dim); _classificationTypes[TagTypes.Highlight] = registry.GetClassificationType(TagTypes.Highlight); view.LayoutChanged += LayoutChanged; view.Caret.PositionChanged += OnPositionChanged; _options.PropertyChanged += OnOptionsChanged; Update(_sourceBuffer.CurrentSnapshot); }