internal static ClassificationTypeDefinition CommaClassificationDefinition = null; // Set via MEF #endregion #region IDlrClassifierProvider public IClassifier GetClassifier(ITextBuffer buffer) { IDlrClassifier existing; if (buffer.Properties.TryGetProperty <IDlrClassifier>(typeof(IDlrClassifier), out existing)) { return(existing); } if (_categoryMap == null) { _categoryMap = FillCategoryMap(_classificationRegistry); } var specificContentType = ContentType; DlrClassifier res = null; if (specificContentType == null || buffer.ContentType == specificContentType) { res = new DlrClassifier(this, Engine, buffer); } else { foreach (var baseType in buffer.ContentType.BaseTypes) { if (baseType == specificContentType) { res = new DlrClassifier(this, Engine, buffer); break; } } } if (res != null) { buffer.Properties.AddProperty(typeof(IDlrClassifier), res); } return(res); }
public IClassifier GetClassifier(ITextBuffer buffer) { IDlrClassifier existing; if (buffer.Properties.TryGetProperty<IDlrClassifier>(typeof(IDlrClassifier), out existing)) { return existing; } if (_categoryMap == null) { _categoryMap = FillCategoryMap(_classificationRegistry); } var specificContentType = ContentType; DlrClassifier res = null; if (specificContentType == null || buffer.ContentType == specificContentType) { res = new DlrClassifier(this, Engine, buffer); } else { foreach (var baseType in buffer.ContentType.BaseTypes) { if (baseType == specificContentType) { res = new DlrClassifier(this, Engine, buffer); break; } } } if (res != null) { buffer.Properties.AddProperty(typeof(IDlrClassifier), res); } return res; }