예제 #1
0
 public TextViewDocumentHighlighter(HighlightingColorizer colorizer, TextView textView, TextDocument document, HighlightingRuleSet baseRuleSet)
     : base(document, baseRuleSet)
 {
     Debug.Assert(colorizer != null);
     Debug.Assert(textView != null);
     this.colorizer = colorizer;
     this.textView  = textView;
 }
예제 #2
0
        /// <inheritdoc/>
        protected override void ColorizeLine(DocumentLine line)
        {
            var sections = richTextModel.GetHighlightedSections(line.Offset, line.Length);

            foreach (HighlightedSection section in sections)
            {
                if (HighlightingColorizer.IsEmptyColor(section.Color))
                {
                    continue;
                }
                ChangeLinePart(section.Offset, section.Offset + section.Length,
                               visualLineElement => HighlightingColorizer.ApplyColorToElement(visualLineElement, section.Color, CurrentContext));
            }
        }
예제 #3
0
		void OnSyntaxHighlightingChanged(IHighlightingDefinition newValue)
		{
			if (colorizer != null) {
				this.TextArea.TextView.LineTransformers.Remove(colorizer);
				colorizer = null;
			}
			if (newValue != null) {
				TextView textView = this.TextArea.TextView;
				colorizer = new HighlightingColorizer(textView, newValue.MainRuleSet);
				textView.LineTransformers.Insert(0, colorizer);
			}
		}
		void UpdatePreview()
		{
			XshdSyntaxDefinition xshd = (XshdSyntaxDefinition)languageComboBox.SelectedItem;
			if (xshd != null) {
				var customizationsForCurrentLanguage = customizationList.Where(c => c.Language == null || c.Language == xshd.Name);
				CustomizingHighlighter.ApplyCustomizationsToDefaultElements(textEditor, customizationsForCurrentLanguage);
				ApplyToRendering(textEditor, customizationsForCurrentLanguage);
				var item = (IHighlightingItem)listBox.SelectedItem;
				TextView textView = textEditor.TextArea.TextView;
				foldingManager.Clear();
				textMarkerService.RemoveAll(m => true);
				textView.LineTransformers.Remove(colorizer);
				colorizer = null;
				if (item != null) {
					if (item.ParentDefinition != null) {
						var highlighter = new CustomizingHighlighter(
							new DocumentHighlighter(textView.Document, item.ParentDefinition),
							customizationsForCurrentLanguage
						);
						colorizer = new HighlightingColorizer(highlighter);
						textView.LineTransformers.Add(colorizer);
					}
					textEditor.Select(0, 0);
					bracketHighlighter.SetHighlight(null);
					item.ShowExample(textEditor.TextArea);
					ITextMarker m = textMarkerService.TextMarkers.SingleOrDefault();
					if (m != null && m.Tag != null) {
						((Action<IHighlightingItem, ITextMarker>)m.Tag)(item, m);
					}
				}
			}
		}
예제 #5
0
 public TextViewDocumentHighlighter(HighlightingColorizer colorizer, TextView textView, TextDocument document, HighlightingRuleSet baseRuleSet)
     : base(document, baseRuleSet)
 {
     Debug.Assert(colorizer != null);
     Debug.Assert(textView != null);
     this.colorizer = colorizer;
     this.textView = textView;
 }