Browse Source

Fixed SD2-736: When editing the C# highlighting, the Environment section cannot be changed

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1352 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
a9dcb57f75
  1. 9
      src/AddIns/Misc/HighlightingEditor/Project/Src/EditHighlightingPanel.cs
  2. 43
      src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs
  3. 7
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/AbstractNode.cs
  4. 7
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/DigitsNode.cs
  5. 27
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/EnvironmentNode.cs
  6. 24
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListNode.cs
  7. 6
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListsNode.cs
  8. 12
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkerNode.cs
  9. 6
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkersNode.cs
  10. 19
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/PropertiesNode.cs
  11. 42
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs
  12. 9
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetsNode.cs
  13. 42
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SchemeNode.cs
  14. 40
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs
  15. 6
      src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpansNode.cs
  16. 8
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs
  17. 4
      src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs

9
src/AddIns/Misc/HighlightingEditor/Project/Src/EditHighlightingPanel.cs

@ -190,8 +190,13 @@ namespace ICSharpCode.SharpDevelop.Gui.OptionPanels @@ -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);

43
src/AddIns/Misc/HighlightingEditor/Project/Src/EditorHighlightColor.cs

@ -22,7 +22,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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 @@ -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 @@ -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 @@ -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)

7
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/AbstractNode.cs

@ -36,11 +36,6 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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("&", "&amp;").Replace("<", "&lt;").Replace(">", "&gt;");
}
public abstract void WriteXml(XmlWriter writer);
}
}

7
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/DigitsNode.cs

@ -45,9 +45,12 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -45,9 +45,12 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
public override string ToXml()
public override void WriteXml(XmlWriter writer)
{
return "\t<Digits name=\"Digits\" " + color.ToXml() + "/>\n\n";
writer.WriteStartElement("Digits");
writer.WriteAttributeString("name", "Digits");
color.WriteXmlAttributes(writer);
writer.WriteEndElement();
}
}

27
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/EnvironmentNode.cs

@ -7,6 +7,7 @@ @@ -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 @@ -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 @@ -40,13 +39,22 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
}
}
foreach (KeyValuePair<string, HighlightColor> 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 @@ -54,14 +62,15 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
public override string ToXml()
public override void WriteXml(XmlWriter writer)
{
string str = "\t<Environment>\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</Environment>\n\n";
return str;
writer.WriteEndElement();
}
}

24
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListNode.cs

@ -57,7 +57,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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 @@ -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<KeyWords name=\"");
ret.Append(ReplaceXmlChars(name));
ret.Append("\" ");
////ret += color.ToXml() + ">\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<Key word=\"" + ReplaceXmlChars(str) + "\"/>\n";
ret.Append("\t\t\t\t<Key word=\"");
ret.Append(ReplaceXmlChars(str));
ret.Append("\"/>\n");
writer.WriteStartElement("Key");
writer.WriteAttributeString("word", str);
writer.WriteEndElement();
}
////ret += "\t\t\t</KeyWords>\n\n";
ret.Append("\t\t\t</KeyWords>\n\n");
return ret.ToString();
writer.WriteEndElement();
}
}

6
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/KeywordListsNode.cs

@ -37,13 +37,11 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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;
}
}

12
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkerNode.cs

@ -54,13 +54,13 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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<Mark" + (previous ? "Previous" : "Following") + " ";
ret += color.ToXml();
if (markMarker) ret += " markmarker=\"true\"";
ret += ">" + ReplaceXmlChars(what) + "</Mark" + (previous ? "Previous" : "Following") + ">\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 {

6
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/MarkersNode.cs

@ -36,13 +36,11 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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;
}
}

19
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/PropertiesNode.cs

@ -33,20 +33,21 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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<Properties>\n";
writer.WriteStartElement("Properties");
foreach (DictionaryEntry de in Properties) {
ret += "\t\t<Property name=\"" + ReplaceXmlChars((string)de.Key)
+ "\" value=\"" + ReplaceXmlChars((string)de.Value) + "\"/>\n";
writer.WriteStartElement("Property");
writer.WriteAttributeString("name", (string)de.Key);
writer.WriteAttributeString("value", (string)de.Value);
writer.WriteEndElement();
}
ret += "\t</Properties>\n\n";
return ret;
writer.WriteEndElement();
}
}
@ -55,7 +56,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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 @@ -70,7 +71,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
listView = (ListView)ControlDictionary["listView"];
}
public override void StoreSettings()
{
PropertiesNode node = (PropertiesNode)parent;

42
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetNode.cs

@ -69,8 +69,8 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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 @@ -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 @@ -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<RuleSet name=\"" + ReplaceXmlChars(name) + "\" reference=\"" + ReplaceXmlChars(reference) + "\"></RuleSet>\n\n";
string ret = "\t\t<RuleSet ignorecase=\"" + ignoreCase.ToString().ToLowerInvariant() + "\" ";
if (noEscapeSequences) ret += "noescapesequences=\"true\" ";
if (!isRoot) ret += "name=\"" + ReplaceXmlChars(name) + "\" ";
ret += ">\n";
ret += "\t\t\t<Delimiters>" + ReplaceXmlChars(delimiters) + "</Delimiters>\n\n";
ret += spansNode.ToXml();
ret += prevMarkerNode.ToXml();
ret += nextMarkerNode.ToXml();
ret += keywordNode.ToXml();
ret += "\t\t</RuleSet>\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 {

9
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/RuleSetsNode.cs

@ -35,14 +35,13 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -35,14 +35,13 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
{
}
public override string ToXml()
public override void WriteXml(XmlWriter writer)
{
string ret = "\t<RuleSets>\n";
writer.WriteStartElement("RuleSets");
foreach (RuleSetNode node in Nodes) {
ret += node.ToXml();
node.WriteXml(writer);
}
ret += "\t</RuleSets>\n\n";
return ret;
writer.WriteEndElement();
}
}

42
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SchemeNode.cs

@ -18,11 +18,21 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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 @@ -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 @@ -82,23 +94,23 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
Text = name;
}
public override string ToXml()
public override void WriteXml(XmlWriter writer)
{
string str =
"<?xml version=\"1.0\"?>\n" +
"<!-- This file was autogenerated by the #Develop highlighting editor. -->\n\n" +
"<SyntaxDefinition name=\"" + ReplaceXmlChars(name) + "\" extensions=\"" + String.Join("|", extensions) + "\">\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 +=
"</SyntaxDefinition>\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();
}
}

40
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpanNode.cs

@ -59,27 +59,32 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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<Span name=\"" + ReplaceXmlChars(name) + "\" ";
if (noEscapeSequences) ret += "noescapesequences=\"true\" ";
if (rule != "") ret += "rule=\"" + ReplaceXmlChars(rule) + "\" ";
ret += "stopateol=\"" + stopEOL.ToString().ToLowerInvariant() + "\" ";
ret += color.ToXml();
ret += ">\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<Begin ";
if (beginColor != null && !beginColor.NoColor) ret += beginColor.ToXml();
ret += ">" + ReplaceXmlChars(begin) + "</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<End ";
if (endColor != null && !endColor.NoColor) ret += endColor.ToXml();
ret += ">" + ReplaceXmlChars(end) + "</End>\n";
writer.WriteStartElement("End");
if (endColor != null && !endColor.NoColor)
endColor.WriteXmlAttributes(writer);
writer.WriteString(end);
writer.WriteEndElement();
}
ret += "\t\t\t</Span>\n\n";
return ret;
writer.WriteEndElement();
}
public SpanNode(string Name)
@ -91,6 +96,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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 @@ -121,7 +127,7 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes
}
public EditorHighlightColor BeginColor {
get {
get {
return beginColor;
}
set {

6
src/AddIns/Misc/HighlightingEditor/Project/Src/Nodes/SpansNode.cs

@ -35,13 +35,11 @@ namespace ICSharpCode.SharpDevelop.AddIns.HighlightingEditor.Nodes @@ -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;
}
}

8
src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/DefaultHighlightingStrategy.cs

@ -24,6 +24,14 @@ namespace ICSharpCode.TextEditor.Document @@ -24,6 +24,14 @@ namespace ICSharpCode.TextEditor.Document
List<HighlightRuleSet> rules = new List<HighlightRuleSet>();
Dictionary<string, HighlightColor> environmentColors = new Dictionary<string, HighlightColor>();
public IEnumerable<KeyValuePair<string, HighlightColor>> EnvironmentColors {
get {
return environmentColors;
}
}
Dictionary<string, string> properties = new Dictionary<string, string>();
string[] extensions;

4
src/Main/Base/Project/Src/Gui/Workbench/Layouts/SdiWorkspaceWindow.cs

@ -386,6 +386,10 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -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);
}

Loading…
Cancel
Save