Browse Source

Remove CustomizableHighlightingColorizer.

newNRvisualizers
Daniel Grunwald 13 years ago
parent
commit
c9cc2ff077
  1. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  2. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditorControlService.cs
  3. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  4. 62
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizingHighlighter.cs
  5. 4
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DiffControl.xaml.cs
  6. 26
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj

@ -157,7 +157,7 @@
<Compile Include="Src\Commands\SortSelectionCommand.cs" /> <Compile Include="Src\Commands\SortSelectionCommand.cs" />
<Compile Include="Src\Commands\SurroundWithCommand.cs" /> <Compile Include="Src\Commands\SurroundWithCommand.cs" />
<Compile Include="Src\CustomCommands.cs" /> <Compile Include="Src\CustomCommands.cs" />
<Compile Include="Src\CustomizableHighlightingColorizer.cs" /> <Compile Include="Src\CustomizingHighlighter.cs" />
<Compile Include="Src\CustomizedHighlightingColor.cs" /> <Compile Include="Src\CustomizedHighlightingColor.cs" />
<Compile Include="Src\DocumentPrinter.cs" /> <Compile Include="Src\DocumentPrinter.cs" />
<Compile Include="Src\InlineUIElementGenerator.cs" /> <Compile Include="Src\InlineUIElementGenerator.cs" />

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditorControlService.cs

@ -52,7 +52,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
// add additional highlighters // add additional highlighters
highlighters.AddRange(SD.AddInTree.BuildItems<IHighlighter>(HighlighterDoozer.AddInPath, document, false)); highlighters.AddRange(SD.AddInTree.BuildItems<IHighlighter>(HighlighterDoozer.AddInPath, document, false));
var multiHighlighter = new MultiHighlighter(document, highlighters.ToArray()); var multiHighlighter = new MultiHighlighter(document, highlighters.ToArray());
return new CustomizableHighlightingColorizer.CustomizingHighlighter( return new CustomizingHighlighter(
document, CustomizedHighlightingColor.FetchCustomizations(def.Name), document, CustomizedHighlightingColor.FetchCustomizations(def.Name),
multiHighlighter); multiHighlighter);
} }

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs

@ -538,7 +538,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
public void UpdateCustomizedHighlighting() public void UpdateCustomizedHighlighting()
{ {
string language = this.SyntaxHighlighting != null ? this.SyntaxHighlighting.Name : null; string language = this.SyntaxHighlighting != null ? this.SyntaxHighlighting.Name : null;
CustomizableHighlightingColorizer.ApplyCustomizationsToDefaultElements(this, FetchCustomizations(language)); CustomizingHighlighter.ApplyCustomizationsToDefaultElements(this, FetchCustomizations(language));
BracketHighlightRenderer.ApplyCustomizationsToRendering(this.bracketRenderer, FetchCustomizations(language)); BracketHighlightRenderer.ApplyCustomizationsToRendering(this.bracketRenderer, FetchCustomizations(language));
HighlightingOptions.ApplyToRendering(this, FetchCustomizations(language)); HighlightingOptions.ApplyToRendering(this, FetchCustomizations(language));
this.TextArea.TextView.Redraw(); // manually redraw if default elements didn't change but customized highlightings did this.TextArea.TextView.Redraw(); // manually redraw if default elements didn't change but customized highlightings did

62
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizableHighlightingColorizer.cs → src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CustomizingHighlighter.cs

@ -3,25 +3,23 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics;
using System.Linq; using System.Linq;
using System.Windows; using System.Windows;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Threading; using System.Windows.Threading;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Editing; using ICSharpCode.AvalonEdit.Editing;
using ICSharpCode.AvalonEdit.Highlighting; using ICSharpCode.AvalonEdit.Highlighting;
using ICSharpCode.AvalonEdit.Rendering; using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.NRefactory.Editor; using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
namespace ICSharpCode.AvalonEdit.AddIn namespace ICSharpCode.AvalonEdit.AddIn
{ {
/// <summary> /// <summary>
/// Applies a set of customizations to syntax highlighting. /// Wraps another <see cref="IHighlighter"/> and applies customizations
/// to the highlighting.
/// </summary> /// </summary>
public class CustomizableHighlightingColorizer : HighlightingColorizer public class CustomizingHighlighter : IHighlighter, IDisposable
{ {
#region ApplyCustomizationsToDefaultElements #region ApplyCustomizationsToDefaultElements
public const string DefaultTextAndBackground = "Default text/background"; public const string DefaultTextAndBackground = "Default text/background";
@ -123,38 +121,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
} }
#endregion #endregion
readonly IHighlightingDefinition highlightingDefinition;
readonly IEnumerable<CustomizedHighlightingColor> customizations;
[ObsoleteAttribute("Use a normal HighlightingColorizer with a CustomizingHighlighter instead")]
public CustomizableHighlightingColorizer(IHighlightingDefinition highlightingDefinition, IEnumerable<CustomizedHighlightingColor> customizations)
: base(highlightingDefinition)
{
if (customizations == null)
throw new ArgumentNullException("customizations");
this.highlightingDefinition = highlightingDefinition;
this.customizations = customizations;
}
protected override void DeregisterServices(TextView textView)
{
textView.Services.RemoveService(typeof(IHighlighter));
base.DeregisterServices(textView);
}
protected override void RegisterServices(TextView textView)
{
base.RegisterServices(textView);
// textView.Services.AddService(typeof(IHighlighter), (CustomizingHighlighter)textView.GetService(typeof(IHighlighter)));
}
protected override IHighlighter CreateHighlighter(TextView textView, TextDocument document)
{
return new CustomizingHighlighter(textView, customizations, base.CreateHighlighter(textView, document));
}
internal sealed class CustomizingHighlighter : IHighlighter, IDisposable
{
readonly TextView textView; readonly TextView textView;
readonly IEnumerable<CustomizedHighlightingColor> customizations; readonly IEnumerable<CustomizedHighlightingColor> customizations;
readonly IHighlighter baseHighlighter; readonly IHighlighter baseHighlighter;
@ -162,9 +128,12 @@ namespace ICSharpCode.AvalonEdit.AddIn
public CustomizingHighlighter(TextView textView, IEnumerable<CustomizedHighlightingColor> customizations, IHighlighter baseHighlighter) public CustomizingHighlighter(TextView textView, IEnumerable<CustomizedHighlightingColor> customizations, IHighlighter baseHighlighter)
{ {
Debug.Assert(textView != null); if (textView == null)
Debug.Assert(customizations != null); throw new ArgumentNullException("textView");
Debug.Assert(baseHighlighter != null); if (customizations == null)
throw new ArgumentNullException("customizations");
if (baseHighlighter == null)
throw new ArgumentNullException("baseHighlighter");
this.textView = textView; this.textView = textView;
this.document = textView.Document; this.document = textView.Document;
@ -175,8 +144,12 @@ namespace ICSharpCode.AvalonEdit.AddIn
public CustomizingHighlighter(IDocument document, IEnumerable<CustomizedHighlightingColor> customizations, IHighlighter baseHighlighter) public CustomizingHighlighter(IDocument document, IEnumerable<CustomizedHighlightingColor> customizations, IHighlighter baseHighlighter)
{ {
Debug.Assert(customizations != null); if (document == null)
Debug.Assert(baseHighlighter != null); throw new ArgumentNullException("document");
if (customizations == null)
throw new ArgumentNullException("customizations");
if (baseHighlighter == null)
throw new ArgumentNullException("baseHighlighter");
this.document = document; this.document = document;
this.customizations = customizations; this.customizations = customizations;
@ -275,7 +248,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
public HighlightingColor DefaultTextColor { public HighlightingColor DefaultTextColor {
get { get {
return GetNamedColor(CustomizableHighlightingColorizer.DefaultTextAndBackground); return GetNamedColor(CustomizingHighlighter.DefaultTextAndBackground);
} }
} }
@ -293,7 +266,6 @@ namespace ICSharpCode.AvalonEdit.AddIn
{ {
baseHighlighter.Dispose(); baseHighlighter.Dispose();
} }
}
internal static HighlightingColor CustomizeColor(HighlightingColor color, IEnumerable<CustomizedHighlightingColor> customizations) internal static HighlightingColor CustomizeColor(HighlightingColor color, IEnumerable<CustomizedHighlightingColor> customizations)
{ {

4
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DiffControl.xaml.cs

@ -48,13 +48,13 @@ namespace ICSharpCode.AvalonEdit.AddIn
{ {
string language = source.SyntaxHighlighting != null ? source.SyntaxHighlighting.Name : null; string language = source.SyntaxHighlighting != null ? source.SyntaxHighlighting.Name : null;
editor.TextArea.TextView.LineTransformers.RemoveAll(x => x is HighlightingColorizer); editor.TextArea.TextView.LineTransformers.RemoveAll(x => x is HighlightingColorizer);
var customizedHighlighter = new CustomizableHighlightingColorizer.CustomizingHighlighter( var customizedHighlighter = new CustomizingHighlighter(
editor.TextArea.TextView, editor.TextArea.TextView,
CustomizedHighlightingColor.FetchCustomizations(language), CustomizedHighlightingColor.FetchCustomizations(language),
new DocumentHighlighter(editor.Document, source.SyntaxHighlighting) new DocumentHighlighter(editor.Document, source.SyntaxHighlighting)
); );
editor.TextArea.TextView.LineTransformers.Insert(0, new HighlightingColorizer(customizedHighlighter)); editor.TextArea.TextView.LineTransformers.Insert(0, new HighlightingColorizer(customizedHighlighter));
CustomizableHighlightingColorizer.ApplyCustomizationsToDefaultElements(editor, CustomizedHighlightingColor.FetchCustomizations(language)); CustomizingHighlighter.ApplyCustomizationsToDefaultElements(editor, CustomizedHighlightingColor.FetchCustomizations(language));
HighlightingOptions.ApplyToRendering(editor, CustomizedHighlightingColor.FetchCustomizations(language)); HighlightingOptions.ApplyToRendering(editor, CustomizedHighlightingColor.FetchCustomizations(language));
editor.TextArea.TextView.Redraw(); // manually redraw if default elements didn't change but customized highlightings did editor.TextArea.TextView.Redraw(); // manually redraw if default elements didn't change but customized highlightings did
} }

26
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/Options/HighlightingOptions.xaml.cs

@ -279,7 +279,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
void CreateDefaultEntries(string language, out IHighlightingItem defaultText, IList<IHighlightingItem> items) void CreateDefaultEntries(string language, out IHighlightingItem defaultText, IList<IHighlightingItem> items)
{ {
// Create entry for "default text/background" // Create entry for "default text/background"
defaultText = new SimpleHighlightingItem(CustomizableHighlightingColorizer.DefaultTextAndBackground, ta => ta.Document.Text = "Normal text") { defaultText = new SimpleHighlightingItem(CustomizingHighlighter.DefaultTextAndBackground, ta => ta.Document.Text = "Normal text") {
Foreground = SystemColors.WindowTextColor, Foreground = SystemColors.WindowTextColor,
Background = SystemColors.WindowColor Background = SystemColors.WindowColor
}; };
@ -289,7 +289,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
// Create entry for "Selected text" // Create entry for "Selected text"
IHighlightingItem selectedText = new SimpleHighlightingItem( IHighlightingItem selectedText = new SimpleHighlightingItem(
CustomizableHighlightingColorizer.SelectedText, CustomizingHighlighter.SelectedText,
ta => { ta => {
ta.Document.Text = "Selected text"; ta.Document.Text = "Selected text";
ta.Selection = Selection.Create(ta, 0, 13); ta.Selection = Selection.Create(ta, 0, 13);
@ -304,7 +304,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
// Create entry for "Non-printable characters" // Create entry for "Non-printable characters"
IHighlightingItem nonPrintChars = new SimpleHighlightingItem( IHighlightingItem nonPrintChars = new SimpleHighlightingItem(
CustomizableHighlightingColorizer.NonPrintableCharacters, CustomizingHighlighter.NonPrintableCharacters,
ta => { ta => {
ta.Document.Text = " \r \r\n \n"; ta.Document.Text = " \r \r\n \n";
}) })
@ -317,7 +317,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
// Create entry for "Line numbers" // Create entry for "Line numbers"
IHighlightingItem lineNumbers = new SimpleHighlightingItem( IHighlightingItem lineNumbers = new SimpleHighlightingItem(
CustomizableHighlightingColorizer.LineNumbers, CustomizingHighlighter.LineNumbers,
ta => { ta => {
ta.Document.Text = "These are just" + Environment.NewLine + ta.Document.Text = "These are just" + Environment.NewLine +
"multiple" + Environment.NewLine + "multiple" + Environment.NewLine +
@ -402,7 +402,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
items.Add(foldingTextMarker); items.Add(foldingTextMarker);
IHighlightingItem linkText = new SimpleHighlightingItem( IHighlightingItem linkText = new SimpleHighlightingItem(
CustomizableHighlightingColorizer.LinkText, CustomizingHighlighter.LinkText,
ta => { ta => {
ta.Document.Text = "http://icsharpcode.net" + Environment.NewLine + "me@example.com"; ta.Document.Text = "http://icsharpcode.net" + Environment.NewLine + "me@example.com";
}) })
@ -502,7 +502,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
items.Add(currentStatementMarker); items.Add(currentStatementMarker);
IHighlightingItem columnRuler = new SimpleHighlightingItem( IHighlightingItem columnRuler = new SimpleHighlightingItem(
CustomizableHighlightingColorizer.ColumnRuler, CustomizingHighlighter.ColumnRuler,
ta => { ta => {
ta.Document.Text = "some line with a lot of text"; ta.Document.Text = "some line with a lot of text";
ta.TextView.Options.ColumnRulerPosition = 15; ta.TextView.Options.ColumnRulerPosition = 15;
@ -546,7 +546,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
XshdSyntaxDefinition xshd = (XshdSyntaxDefinition)languageComboBox.SelectedItem; XshdSyntaxDefinition xshd = (XshdSyntaxDefinition)languageComboBox.SelectedItem;
if (xshd != null) { if (xshd != null) {
var customizationsForCurrentLanguage = customizationList.Where(c => c.Language == null || c.Language == xshd.Name); var customizationsForCurrentLanguage = customizationList.Where(c => c.Language == null || c.Language == xshd.Name);
CustomizableHighlightingColorizer.ApplyCustomizationsToDefaultElements(textEditor, customizationsForCurrentLanguage); CustomizingHighlighter.ApplyCustomizationsToDefaultElements(textEditor, customizationsForCurrentLanguage);
ApplyToRendering(textEditor, customizationsForCurrentLanguage); ApplyToRendering(textEditor, customizationsForCurrentLanguage);
var item = (IHighlightingItem)listBox.SelectedItem; var item = (IHighlightingItem)listBox.SelectedItem;
TextView textView = textEditor.TextArea.TextView; TextView textView = textEditor.TextArea.TextView;
@ -556,7 +556,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
colorizer = null; colorizer = null;
if (item != null) { if (item != null) {
if (item.ParentDefinition != null) { if (item.ParentDefinition != null) {
var highlighter = new CustomizableHighlightingColorizer.CustomizingHighlighter( var highlighter = new CustomizingHighlighter(
textView, customizationsForCurrentLanguage, textView, customizationsForCurrentLanguage,
new DocumentHighlighter(textView.Document, item.ParentDefinition) new DocumentHighlighter(textView.Document, item.ParentDefinition)
); );
@ -704,7 +704,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
{ "Keyword", "VBNET.Keywords" }, { "Keyword", "VBNET.Keywords" },
{ "Keyword", "VBNET.FunctionKeywords" }, { "Keyword", "VBNET.FunctionKeywords" },
{ "Keyword", "VBNET.ContextKeywords" }, { "Keyword", "VBNET.ContextKeywords" },
{ "Line Numbers", CustomizableHighlightingColorizer.LineNumbers }, { "Line Numbers", CustomizingHighlighter.LineNumbers },
{ "MarkerFormatDefinition/HighlightedReference", "" }, { "MarkerFormatDefinition/HighlightedReference", "" },
{ "Number", "C#.NumberLiteral" }, { "Number", "C#.NumberLiteral" },
{ "Operator", "C#.Punctuation" }, { "Operator", "C#.Punctuation" },
@ -713,7 +713,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
{ "outlining.square", FoldingSelectedControls }, { "outlining.square", FoldingSelectedControls },
{ "outlining.verticalrule", "" }, { "outlining.verticalrule", "" },
{ "Plain Text", "" }, { "Plain Text", "" },
{ "Plain Text", CustomizableHighlightingColorizer.DefaultTextAndBackground }, { "Plain Text", CustomizingHighlighter.DefaultTextAndBackground },
{ "Preprocessor Keyword", "" }, { "Preprocessor Keyword", "" },
{ "Preprocessor Keyword", "C#.Preprocessor" }, { "Preprocessor Keyword", "C#.Preprocessor" },
{ "Razor Code", "" }, { "Razor Code", "" },
@ -724,12 +724,12 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
{ "Script Operator", "" }, { "Script Operator", "" },
{ "Script String", "" }, { "Script String", "" },
{ "Selected Text", "" }, { "Selected Text", "" },
{ "Selected Text", CustomizableHighlightingColorizer.SelectedText }, { "Selected Text", CustomizingHighlighter.SelectedText },
{ "String", "VBNET.String" }, { "String", "VBNET.String" },
{ "String", "C#.String" }, { "String", "C#.String" },
{ "String(C# @ Verbatim)", "" }, { "String(C# @ Verbatim)", "" },
{ "Syntax Error", "" }, { "Syntax Error", "" },
{ "urlformat", CustomizableHighlightingColorizer.LinkText }, { "urlformat", CustomizingHighlighter.LinkText },
{ "User Types", "" }, { "User Types", "" },
{ "User Types(Delegates)", "" }, { "User Types(Delegates)", "" },
{ "User Types(Enums)", "" }, { "User Types(Enums)", "" },
@ -760,7 +760,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.Options
{ "XML Name", "XML.XmlTag" }, { "XML Name", "XML.XmlTag" },
{ "XML Name", "XML.XmlDeclaration" }, { "XML Name", "XML.XmlDeclaration" },
{ "XML Name", "XML.DocType" }, { "XML Name", "XML.DocType" },
{ "XML Text", "XML." + CustomizableHighlightingColorizer.DefaultTextAndBackground }, { "XML Text", "XML." + CustomizingHighlighter.DefaultTextAndBackground },
}; };
Tuple<Color?, Color?, bool> ParseEntry(XElement element) Tuple<Color?, Color?, bool> ParseEntry(XElement element)

Loading…
Cancel
Save