diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/EditHighlightingPanel.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/EditHighlightingPanel.cs
index 025a9a3f2f..98cc83ff9c 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/EditHighlightingPanel.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/EditHighlightingPanel.cs
@@ -190,8 +190,13 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels
DialogResult res = dlg.ShowDialog(ICSharpCode.SharpDevelop.Gui.WorkbenchSingleton.MainForm);
if (res == DialogResult.OK) {
- using (StreamWriter sw = new StreamWriter(item.FileName, false)) {
- sw.WriteLine(item.Node.ToXml().Replace("\n", "\r\n"));
+ using (XmlTextWriter writer = new XmlTextWriter(item.FileName, Encoding.UTF8)) {
+ writer.Formatting = Formatting.Indented;
+ writer.IndentChar = '\t';
+ writer.Indentation = 1;
+ writer.WriteStartDocument();
+ item.Node.WriteXml(writer);
+ writer.WriteEndDocument();
}
// refresh item text
userList.Items.RemoveAt(userList.SelectedIndex);
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
index 7221675bde..239ff26417 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
@@ -22,7 +22,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
bool hasForeColor = false;
bool hasBackColor = false;
-
+
Color foreColor;
bool sysForeColor = false;
string sysForeColorName = "";
@@ -105,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
el.Attributes["color"] == null &&
el.Attributes["bgcolor"] == null)
{
- noColor = true;
+ noColor = true;
return;
}
@@ -146,6 +146,11 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
}
+ public static EditorHighlightColor FromTextEditor(ICSharpCode.TextEditor.Document.HighlightColor color)
+ {
+ return new EditorHighlightColor(color.HasForgeground, color.Color, color.HasBackground, color.BackgroundColor, color.Bold, color.Italic);
+ }
+
public EditorHighlightColor(bool hascolor, Color Color, bool hasbackcolor, Color BackColor, bool bold, bool italic)
{
hasForeColor = hascolor;
@@ -209,38 +214,30 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
return Color.FromArgb(a, r, g, b);
}
- public string ToXml()
+ public void WriteXmlAttributes(XmlWriter writer)
{
- string str = "";
- str += "bold=\"" + bold.ToString().ToLowerInvariant() + "\" ";
- str += "italic=\"" + italic.ToString().ToLowerInvariant() + "\" ";
+ writer.WriteAttributeString("bold", bold.ToString().ToLowerInvariant());
+ writer.WriteAttributeString("italic", italic.ToString().ToLowerInvariant());
if (hasForeColor) {
- str += "color=\"";
if (sysForeColor) {
- str += "SystemColors." + sysForeColorName;
+ writer.WriteAttributeString("color", "SystemColors." + sysForeColorName);
} else {
- str += ReplaceColorName("#" + (foreColor.A != 255 ? foreColor.A.ToString("X2") : "") +
- foreColor.R.ToString("X2") +
- foreColor.G.ToString("X2") +
- foreColor.B.ToString("X2"));
+ writer.WriteAttributeString("color", ReplaceColorName("#" + (foreColor.A != 255 ? foreColor.A.ToString("X2") : "") +
+ foreColor.R.ToString("X2") +
+ foreColor.G.ToString("X2") +
+ foreColor.B.ToString("X2")));
}
-
- str += "\" ";
}
if (hasBackColor) {
- str += "bgcolor=\"";
if (sysBackColor) {
- str += "SystemColors." + sysBackColorName;
+ writer.WriteAttributeString("bgcolor", "SystemColors." + sysBackColorName);
} else {
- str += ReplaceColorName("#" + (backColor.A != 255 ? backColor.A.ToString("X2") : "") +
- backColor.R.ToString("X2") +
- backColor.G.ToString("X2") +
- backColor.B.ToString("X2"));
+ writer.WriteAttributeString("bgcolor", ReplaceColorName("#" + (backColor.A != 255 ? backColor.A.ToString("X2") : "") +
+ backColor.R.ToString("X2") +
+ backColor.G.ToString("X2") +
+ backColor.B.ToString("X2")));
}
-
- str += "\" ";
}
- return str;
}
Color ParseSysColor(string colorName)
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/AbstractNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/AbstractNode.cs
index 6ad7a8f25f..a6e0e8c443 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/AbstractNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/AbstractNode.cs
@@ -36,11 +36,6 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
public abstract void UpdateNodeText();
// should be made abstract when implementing ToXml()
- public virtual string ToXml() { return ""; }
-
- public static string ReplaceXmlChars(string str)
- {
- return str.Replace("&", "&").Replace("<", "<").Replace(">", ">");
- }
+ public abstract void WriteXml(XmlWriter writer);
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/DigitsNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/DigitsNode.cs
index 6adc8452ee..d2eeae3d96 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/DigitsNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/DigitsNode.cs
@@ -45,9 +45,12 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- return "\t\n\n";
+ writer.WriteStartElement("Digits");
+ writer.WriteAttributeString("name", "Digits");
+ color.WriteXmlAttributes(writer);
+ writer.WriteEndElement();
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/EnvironmentNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/EnvironmentNode.cs
index bd91669436..6b1f1e600c 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/EnvironmentNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/EnvironmentNode.cs
@@ -7,6 +7,7 @@
using System;
using System.Collections;
+using System.Collections.Generic;
using System.Windows.Forms;
using System.Drawing;
using System.Xml;
@@ -26,8 +27,6 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
public EnvironmentNode(XmlElement el)
{
-
-
ArrayList envColors = new ArrayList();
ArrayList envColorNames = new ArrayList();
ArrayList envColorDescriptions = new ArrayList();
@@ -40,13 +39,22 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
}
}
+
+ foreach (KeyValuePair pair in new DefaultHighlightingStrategy().EnvironmentColors) {
+ if (!envColorNames.Contains(pair.Key)) {
+ envColorNames.Add(pair.Key);
+ envColorDescriptions.Add("${res:Dialog.HighlightingEditor.EnvColors." + pair.Key + "}");
+ envColors.Add(EditorHighlightColor.FromTextEditor(pair.Value));
+ }
+ }
+
EnvironmentNode.ColorNames = (string[])envColorNames.ToArray(typeof(string));
this.ColorDescs = (string[])envColorDescriptions.ToArray(typeof(string));
this.Colors = (EditorHighlightColor[])envColors.ToArray(typeof(EditorHighlightColor));
StringParser.Parse(ColorDescs);
Text = ResNodeName("EnvironmentColors");
-
+
panel = new EnvironmentOptionPanel(this);
}
@@ -54,14 +62,15 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string str = "\t\n";
- for (int i = 0; i <= ColorNames.GetUpperBound(0); ++i) {
- str += "\t\t<" + ColorNames[i] + " " + Colors[i].ToXml() + "/>\n";
+ writer.WriteStartElement("Environment");
+ for (int i = 0; i < ColorNames.Length; i++) {
+ writer.WriteStartElement(ColorNames[i]);
+ Colors[i].WriteXmlAttributes(writer);
+ writer.WriteEndElement();
}
- str += "\t\n\n";
- return str;
+ writer.WriteEndElement();
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListNode.cs
index 4fd34fb144..4fea82c578 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListNode.cs
@@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
Text = ResNodeName("KeywordList");
panel = new KeywordListOptionPanel(this);
-
+
if (el == null) return;
color = new EditorHighlightColor(el);
@@ -88,23 +88,17 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
if (name != "") Text = name;
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- StringBuilder ret = new StringBuilder("\t\t\t\n";
- ret.Append(color.ToXml());
- ret.Append(">\n");
+ writer.WriteStartElement("KeyWords");
+ writer.WriteAttributeString("name", name);
+ color.WriteXmlAttributes(writer);
foreach(string str in words) {
- ////ret += "\t\t\t\t\n";
- ret.Append("\t\t\t\t\n");
+ writer.WriteStartElement("Key");
+ writer.WriteAttributeString("word", str);
+ writer.WriteEndElement();
}
- ////ret += "\t\t\t\n\n";
- ret.Append("\t\t\t\n\n");
- return ret.ToString();
+ writer.WriteEndElement();
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListsNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListsNode.cs
index ad07218879..6fe0fbe4d3 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListsNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListsNode.cs
@@ -37,13 +37,11 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string ret = "";
foreach (KeywordListNode node in Nodes) {
- ret += node.ToXml();
+ node.WriteXml(writer);
}
- return ret;
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkerNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkerNode.cs
index c724b23ffa..431cb84ce0 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkerNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkerNode.cs
@@ -54,13 +54,13 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
Text = what;
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string ret = "\t\t\t" + ReplaceXmlChars(what) + "\n\n";
- return ret;
+ writer.WriteStartElement("Mark" + (previous ? "Previous" : "Following"));
+ color.WriteXmlAttributes(writer);
+ if (markMarker) writer.WriteAttributeString("markmarker", "true");
+ writer.WriteString(what);
+ writer.WriteEndElement();
}
public string What {
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkersNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkersNode.cs
index c2fd039309..9a9a19306f 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkersNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkersNode.cs
@@ -36,13 +36,11 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string ret = "";
foreach (MarkerNode node in Nodes) {
- ret += node.ToXml();
+ node.WriteXml(writer);
}
- return ret;
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/PropertiesNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/PropertiesNode.cs
index 2bebf70ac1..0cd1559b3f 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/PropertiesNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/PropertiesNode.cs
@@ -33,20 +33,21 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
}
-
+
public override void UpdateNodeText()
{
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string ret = "\t\n";
+ writer.WriteStartElement("Properties");
foreach (DictionaryEntry de in Properties) {
- ret += "\t\t\n";
+ writer.WriteStartElement("Property");
+ writer.WriteAttributeString("name", (string)de.Key);
+ writer.WriteAttributeString("value", (string)de.Value);
+ writer.WriteEndElement();
}
- ret += "\t\n\n";
- return ret;
+ writer.WriteEndElement();
}
}
@@ -55,7 +56,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
private System.Windows.Forms.Button addBtn;
private System.Windows.Forms.Button editBtn;
private System.Windows.Forms.Button removeBtn;
- private System.Windows.Forms.ListView listView;
+ private System.Windows.Forms.ListView listView;
public PropertiesOptionPanel(PropertiesNode parent) : base(parent)
{
@@ -70,7 +71,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
listView = (ListView)ControlDictionary["listView"];
}
-
+
public override void StoreSettings()
{
PropertiesNode node = (PropertiesNode)parent;
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
index 05f211b785..b81729b349 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
@@ -69,8 +69,8 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
Nodes.Add(keywordNode);
Nodes.Add(spansNode);
Nodes.Add(prevMarkerNode);
- Nodes.Add(nextMarkerNode);
-
+ Nodes.Add(nextMarkerNode);
+
}
public RuleSetNode(string Name, string Delim, string Ref, bool noEsc, bool noCase)
@@ -89,7 +89,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
Nodes.Add(keywordNode);
Nodes.Add(spansNode);
Nodes.Add(prevMarkerNode);
- Nodes.Add(nextMarkerNode);
+ Nodes.Add(nextMarkerNode);
panel = new RuleSetOptionPanel(this);
}
@@ -101,25 +101,25 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- if (reference != "") return "\t\t\n\n";
-
- string ret = "\t\t\n";
-
- ret += "\t\t\t" + ReplaceXmlChars(delimiters) + "\n\n";
-
- ret += spansNode.ToXml();
- ret += prevMarkerNode.ToXml();
- ret += nextMarkerNode.ToXml();
- ret += keywordNode.ToXml();
-
- ret += "\t\t\n\n";
-
- return ret;
+ writer.WriteStartElement("RuleSet");
+ if (!isRoot)
+ writer.WriteAttributeString("name", name);
+ if (reference != "") {
+ writer.WriteAttributeString("reference", reference);
+ } else {
+ writer.WriteAttributeString("ignorecase", ignoreCase.ToString().ToLowerInvariant());
+ if (noEscapeSequences)
+ writer.WriteAttributeString("noescapesequences", "true");
+ if (delimiters != "")
+ writer.WriteElementString("Delimiters", delimiters);
+ spansNode.WriteXml(writer);
+ prevMarkerNode.WriteXml(writer);
+ nextMarkerNode.WriteXml(writer);
+ keywordNode.WriteXml(writer);
+ }
+ writer.WriteEndElement();
}
public string Delimiters {
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetsNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetsNode.cs
index 70778f6941..8530c34a30 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetsNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetsNode.cs
@@ -35,14 +35,13 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string ret = "\t\n";
+ writer.WriteStartElement("RuleSets");
foreach (RuleSetNode node in Nodes) {
- ret += node.ToXml();
+ node.WriteXml(writer);
}
- ret += "\t\n\n";
- return ret;
+ writer.WriteEndElement();
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SchemeNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SchemeNode.cs
index 31b8c8169c..4755c30986 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SchemeNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SchemeNode.cs
@@ -18,11 +18,21 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
string name;
string[] extensions;
+ string extends;
+
+ public string Extends {
+ get {
+ return extends;
+ }
+ set {
+ extends = value;
+ }
+ }
public string[] Extensions {
get {
return extensions;
- }
+ }
set {
extensions = value;
}
@@ -60,6 +70,8 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
extensions = el.Attributes["extensions"].InnerText.Split('|');
}
+ extends = el.GetAttribute("extends");
+
UpdateNodeText();
panel = new SchemeOptionPanel(this);
@@ -82,23 +94,23 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
Text = name;
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string str =
- "\n" +
- "\n\n" +
- "\n\n";
+ writer.WriteComment("This file was autogenerated by the #Develop highlighting editor.");
+ writer.WriteStartElement("SyntaxDefinition");
- str += envNode.ToXml();
- str += propNode.ToXml();
- str += digitsNode.ToXml();
- str += rulesetsNode.ToXml();
-
- str +=
- "\n";
+ writer.WriteAttributeString("name", name);
+ writer.WriteAttributeString("extensions", String.Join(";", extensions));
+ if (extends != "") {
+ writer.WriteAttributeString("extends", extends);
+ }
- return str;
-
+ envNode.WriteXml(writer);
+ propNode.WriteXml(writer);
+ digitsNode.WriteXml(writer);
+ rulesetsNode.WriteXml(writer);
+
+ writer.WriteEndElement();
}
}
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
index d701af5ad4..50a338f793 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
@@ -59,27 +59,32 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string ret = "";
- ret = "\t\t\t\n";
+ writer.WriteStartElement("Span");
+ writer.WriteAttributeString("name", name);
+ if (noEscapeSequences)
+ writer.WriteAttributeString("noescapesequences", "true");
+ if (rule != "")
+ writer.WriteAttributeString("rule", rule);
+ writer.WriteAttributeString("stopateol", stopEOL.ToString().ToLowerInvariant());
+ color.WriteXmlAttributes(writer);
- ret += "\t\t\t\t" + ReplaceXmlChars(begin) + "\n";
+ writer.WriteStartElement("Begin");
+ if (beginColor != null && !beginColor.NoColor)
+ beginColor.WriteXmlAttributes(writer);
+ writer.WriteString(begin);
+ writer.WriteEndElement();
if (end != "") {
- ret += "\t\t\t\t" + ReplaceXmlChars(end) + "\n";
+ writer.WriteStartElement("End");
+ if (endColor != null && !endColor.NoColor)
+ endColor.WriteXmlAttributes(writer);
+ writer.WriteString(end);
+ writer.WriteEndElement();
}
- ret += "\t\t\t\n\n";
- return ret;
+
+ writer.WriteEndElement();
}
public SpanNode(string Name)
@@ -91,6 +96,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
panel = new SpanOptionPanel(this);
}
+
public override void UpdateNodeText()
{
if (name != "") { Text = name; return; }
@@ -121,7 +127,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
public EditorHighlightColor BeginColor {
- get {
+ get {
return beginColor;
}
set {
diff --git a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpansNode.cs b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpansNode.cs
index 0bdc0b816e..c167ae1a5b 100644
--- a/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpansNode.cs
+++ b/src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpansNode.cs
@@ -35,13 +35,11 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
- public override string ToXml()
+ public override void WriteXml(XmlWriter writer)
{
- string ret = "";
foreach (SpanNode node in Nodes) {
- ret += node.ToXml();
+ node.WriteXml(writer);
}
- return ret;
}
}
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs
index 9f3027a1dc..6aefaf96b0 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs
@@ -24,6 +24,14 @@ namespace ICSharpCode.TextEditor.Document
List rules = new List();
Dictionary environmentColors = new Dictionary();
+
+ public IEnumerable> EnvironmentColors {
+ get {
+ return environmentColors;
+ }
+ }
+
+
Dictionary properties = new Dictionary();
string[] extensions;
diff --git a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs
index 0a508fbba3..6aecd4c068 100644
--- a/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs
+++ b/src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs
@@ -386,6 +386,10 @@ namespace ICSharpCode.SharpDevelop.Gui
public virtual void OnWindowSelected(EventArgs e)
{
+ if (viewTabControl != null) {
+ TabPage page = viewTabControl.TabPages[viewTabControl.TabIndex];
+ if (page.Controls.Count == 1 && !page.ContainsFocus) page.Controls[0].Focus();
+ }
if (WindowSelected != null) {
WindowSelected(this, e);
}