Browse Source

Changes in the highlighting are shown when closing the options box, no need to restart SharpDevelop anymore.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@601 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
e78818566c
  1. 17
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Resources/Boo.xshd
  2. 5
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingManager.cs
  3. 13
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs
  4. 1
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ISyntaxModeFileProvider.cs
  5. 5
      src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ResourceSyntaxModeProvider.cs
  6. 5
      src/Main/Base/Project/Src/TextEditor/Codons/AddInTreeSyntaxModeProvider.cs

17
src/AddIns/BackendBindings/Boo/BooBinding/Project/Resources/Boo.xshd

@ -44,24 +44,29 @@
<End >*/</End> <End >*/</End>
</Span> </Span>
<Span name="String" rule="str formatting" stopateol="true" bold="false" italic="false" color="Fuchsia" > <Span name="String" rule="str formatting" stopateol="true" bold="false" italic="false" color="Blue" >
<Begin >"</Begin> <Begin >"</Begin>
<End >"</End> <End >"</End>
</Span> </Span>
<Span name="MultiLineString" noescapesequences="true" rule="str formatting" stopateol="false" bold="false" italic="false" color="Fuchsia" > <Span name="MultiLineString" noescapesequences="true" rule="str formatting" stopateol="false" bold="false" italic="false" color="Blue" >
<Begin >"""</Begin> <Begin >"""</Begin>
<End >"""</End> <End >"""</End>
</Span> </Span>
<Span name="Char" stopateol="true" bold="false" italic="false" color="Fuchsia" > <Span name="Char" stopateol="true" bold="false" italic="false" color="Blue" >
<Begin >'</Begin> <Begin >'</Begin>
<End >'</End> <End >'</End>
</Span> </Span>
<Span name="RegEx" stopateol="true" bold="false" italic="false" color="#FF6600" > <Span name="MultiLineRegEx" stopateol="false" bold="false" italic="false" color="#FF6600">
<Begin >/@!/@</Begin> <Begin>@@/</Begin>
<End >/</End> <End>/</End>
</Span>
<Span name="RegEx" stopateol="true" bold="false" italic="false" color="#FF6600">
<Begin>/@! @@!/@</Begin>
<End>/</End>
</Span> </Span>
<MarkPrevious bold="false" italic="false" color="MidnightBlue" >(</MarkPrevious> <MarkPrevious bold="false" italic="false" color="MidnightBlue" >(</MarkPrevious>

5
src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/HighlightingManager.cs

@ -50,7 +50,7 @@ namespace ICSharpCode.TextEditor.Document
foreach (SyntaxMode syntaxMode in syntaxModeFileProvider.SyntaxModes) { foreach (SyntaxMode syntaxMode in syntaxModeFileProvider.SyntaxModes) {
highlightingDefs[syntaxMode.Name] = new DictionaryEntry(syntaxMode, syntaxModeFileProvider); highlightingDefs[syntaxMode.Name] = new DictionaryEntry(syntaxMode, syntaxModeFileProvider);
foreach (string extension in syntaxMode.Extensions) { foreach (string extension in syntaxMode.Extensions) {
extensionsToName[extension.ToUpper()] = syntaxMode.Name; extensionsToName[extension.ToUpperInvariant()] = syntaxMode.Name;
} }
} }
if (!syntaxModeFileProviders.Contains(syntaxModeFileProvider)) { if (!syntaxModeFileProviders.Contains(syntaxModeFileProvider)) {
@ -64,6 +64,7 @@ namespace ICSharpCode.TextEditor.Document
extensionsToName.Clear(); extensionsToName.Clear();
CreateDefaultHighlightingStrategy(); CreateDefaultHighlightingStrategy();
foreach (ISyntaxModeFileProvider provider in syntaxModeFileProviders) { foreach (ISyntaxModeFileProvider provider in syntaxModeFileProviders) {
provider.UpdateSyntaxModeList();
AddSyntaxModeFileProvider(provider); AddSyntaxModeFileProvider(provider);
} }
OnReloadSyntaxHighlighting(EventArgs.Empty); OnReloadSyntaxHighlighting(EventArgs.Empty);
@ -100,7 +101,7 @@ namespace ICSharpCode.TextEditor.Document
public IHighlightingStrategy FindHighlighterForFile(string fileName) public IHighlightingStrategy FindHighlighterForFile(string fileName)
{ {
string highlighterName = (string)extensionsToName[Path.GetExtension(fileName).ToUpper()]; string highlighterName = (string)extensionsToName[Path.GetExtension(fileName).ToUpperInvariant()];
if (highlighterName != null) { if (highlighterName != null) {
object def = highlightingDefs[highlighterName]; object def = highlightingDefs[highlighterName];
if (def is DictionaryEntry) { if (def is DictionaryEntry) {

13
src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/FileSyntaxModeProvider.cs

@ -28,6 +28,11 @@ namespace ICSharpCode.TextEditor.Document
public FileSyntaxModeProvider(string directory) public FileSyntaxModeProvider(string directory)
{ {
this.directory = directory; this.directory = directory;
UpdateSyntaxModeList();
}
public void UpdateSyntaxModeList()
{
string syntaxModeFile = Path.Combine(directory, "SyntaxModes.xml"); string syntaxModeFile = Path.Combine(directory, "SyntaxModes.xml");
if (File.Exists(syntaxModeFile)) { if (File.Exists(syntaxModeFile)) {
Stream s = File.OpenRead(syntaxModeFile); Stream s = File.OpenRead(syntaxModeFile);
@ -62,8 +67,8 @@ namespace ICSharpCode.TextEditor.Document
string name = reader.GetAttribute("name"); string name = reader.GetAttribute("name");
string extensions = reader.GetAttribute("extensions"); string extensions = reader.GetAttribute("extensions");
modes.Add(new SyntaxMode(Path.GetFileName(file), modes.Add(new SyntaxMode(Path.GetFileName(file),
name, name,
extensions)); extensions));
goto bailout; goto bailout;
default: default:
MessageBox.Show("Unknown root node in syntax highlighting file :" + reader.Name, "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1); MessageBox.Show("Unknown root node in syntax highlighting file :" + reader.Name, "Error", MessageBoxButtons.OK, MessageBoxIcon.Hand, MessageBoxDefaultButton.Button1);
@ -71,9 +76,9 @@ namespace ICSharpCode.TextEditor.Document
} }
} }
} }
bailout: bailout:
reader.Close(); reader.Close();
} }
} }
return modes; return modes;

1
src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ISyntaxModeFileProvider.cs

@ -18,5 +18,6 @@ namespace ICSharpCode.TextEditor.Document
} }
XmlTextReader GetSyntaxModeFile(SyntaxMode syntaxMode); XmlTextReader GetSyntaxModeFile(SyntaxMode syntaxMode);
void UpdateSyntaxModeList();
} }
} }

5
src/Libraries/ICSharpCode.TextEditor/Project/Src/Document/HighlightingStrategy/SyntaxModes/ResourceSyntaxModeProvider.cs

@ -39,5 +39,10 @@ namespace ICSharpCode.TextEditor.Document
Assembly assembly = typeof(SyntaxMode).Assembly; Assembly assembly = typeof(SyntaxMode).Assembly;
return new XmlTextReader(assembly.GetManifestResourceStream("ICSharpCode.TextEditor.Resources." + syntaxMode.FileName)); return new XmlTextReader(assembly.GetManifestResourceStream("ICSharpCode.TextEditor.Resources." + syntaxMode.FileName));
} }
public void UpdateSyntaxModeList()
{
// resources don't change during runtime
}
} }
} }

5
src/Main/Base/Project/Src/TextEditor/Codons/AddInTreeSyntaxModeProvider.cs

@ -42,5 +42,10 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Codons
Debug.Assert(syntaxMode is AddInTreeSyntaxMode); Debug.Assert(syntaxMode is AddInTreeSyntaxMode);
return ((AddInTreeSyntaxMode)syntaxMode).CreateTextReader(); return ((AddInTreeSyntaxMode)syntaxMode).CreateTextReader();
} }
public void UpdateSyntaxModeList()
{
// addintree doesn't change during runtime
}
} }
} }

Loading…
Cancel
Save