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;
        }
Beispiel #2
0
 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);
 }