Browse Source

Update text editor syntax highlighting when a filename is changed.

pull/18/head
Matt Ward 14 years ago
parent
commit
2e8a512fc9
  1. 4
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/CSharpRazorLanguageBinding.cs
  2. 5
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/HtmlLanguageBinding.cs
  3. 1
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/ITextEditorWithParseInformationFolding.cs
  4. 21
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/TextEditorWithParseInformationFolding.cs
  5. 4
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/VisualBasicRazorLanguageBinding.cs
  6. 4
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/WebFormsLanguageBinding.cs
  7. 10
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs
  8. 25
      src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlLanguageBinding.cs

4
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/CSharpRazorLanguageBinding.cs

@ -13,9 +13,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -13,9 +13,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding
new RazorFoldGeneratorFactory(".cshtml"))
{
}
public override string HighlightingSyntaxName {
get { return "C#/Razor"; }
}
}
}

5
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/HtmlLanguageBinding.cs

@ -8,7 +8,7 @@ using ICSharpCode.SharpDevelop.Editor; @@ -8,7 +8,7 @@ using ICSharpCode.SharpDevelop.Editor;
namespace ICSharpCode.AspNet.Mvc.Folding
{
public abstract class HtmlLanguageBinding : DefaultLanguageBinding
public class HtmlLanguageBinding : DefaultLanguageBinding
{
ITextEditorWithParseInformationFoldingFactory textEditorFactory;
IFoldGeneratorFactory foldGeneratorFactory;
@ -30,8 +30,6 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -30,8 +30,6 @@ namespace ICSharpCode.AspNet.Mvc.Folding
get { return LanguageProperties.None; }
}
public abstract string HighlightingSyntaxName { get; }
public override void Attach(ITextEditor editor)
{
Attach(textEditorFactory.CreateTextEditor(editor));
@ -40,7 +38,6 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -40,7 +38,6 @@ namespace ICSharpCode.AspNet.Mvc.Folding
void Attach(ITextEditorWithParseInformationFolding editor)
{
foldGenerator = foldGeneratorFactory.CreateFoldGenerator(editor);
editor.UpdateSyntaxHighlighting(HighlightingSyntaxName);
}
public override void Detach()

1
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/ITextEditorWithParseInformationFolding.cs

@ -15,6 +15,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -15,6 +15,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding
void UpdateFolds(IEnumerable<NewFolding> folds);
void InstallFoldingManager();
string GetTextSnapshot();
void UpdateSyntaxHighlighting(string highlightingSyntaxName);
}
}

21
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/TextEditorWithParseInformationFolding.cs

@ -73,26 +73,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -73,26 +73,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding
{
FoldingManager.Uninstall(foldingManager);
}
public void UpdateSyntaxHighlighting(string name)
{
if (!IsUsingSyntaxhighlighting(name)) {
ChangeSyntaxHighlighting(name);
}
}
bool IsUsingSyntaxhighlighting(string name)
{
IHighlightingDefinition highlighting = CodeEditorView.SyntaxHighlighting;
if (highlighting != null) {
return highlighting.Name == name;
}
return false;
}
void ChangeSyntaxHighlighting(string name)
{
CodeEditorView.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition(name);
}
}
}

4
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/VisualBasicRazorLanguageBinding.cs

@ -13,9 +13,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -13,9 +13,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding
new RazorFoldGeneratorFactory(".vbhtml"))
{
}
public override string HighlightingSyntaxName {
get { return "VBNET/Razor"; }
}
}
}

4
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/Folding/WebFormsLanguageBinding.cs

@ -21,9 +21,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding @@ -21,9 +21,5 @@ namespace ICSharpCode.AspNet.Mvc.Folding
: base(textEditorFactory, foldGeneratorFactory)
{
}
public override string HighlightingSyntaxName {
get { return "ASP/XHTML"; }
}
}
}

10
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditViewContent.cs

@ -136,8 +136,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -136,8 +136,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
isLoading = true;
try {
// BookmarksDetach();
codeEditor.SyntaxHighlighting =
HighlightingManager.Instance.GetDefinitionByExtension(Path.GetExtension(file.FileName));
UpdateSyntaxHighlighting(file.FileName);
if (!file.IsUntitled) {
codeEditor.PrimaryTextEditor.IsReadOnly = (File.GetAttributes(file.FileName) & FileAttributes.ReadOnly) == FileAttributes.ReadOnly;
@ -157,6 +156,12 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -157,6 +156,12 @@ namespace ICSharpCode.AvalonEdit.AddIn
}
}
void UpdateSyntaxHighlighting(FileName fileName)
{
codeEditor.SyntaxHighlighting =
HighlightingManager.Instance.GetDefinitionByExtension(Path.GetExtension(fileName));
}
protected override void OnFileNameChanged(OpenedFile file)
{
base.OnFileNameChanged(file);
@ -174,6 +179,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -174,6 +179,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
// processes the file name change
codeEditor.FileName = newFileName;
UpdateSyntaxHighlighting(newFileName);
ParserService.BeginParse(file.FileName, codeEditor.DocumentAdapter);
}

25
src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlLanguageBinding.cs

@ -23,8 +23,6 @@ namespace ICSharpCode.XmlEditor @@ -23,8 +23,6 @@ namespace ICSharpCode.XmlEditor
codeEditorView = editor.GetService(typeof(AvalonEdit.TextEditor)) as AvalonEdit.AddIn.CodeEditorView;
DisableParseInformationFolding();
UpdateHighlightingIfNotXml();
foldingManager = new XmlFoldingManager(editor);
foldingManager.UpdateFolds();
foldingManager.Start();
@ -32,29 +30,6 @@ namespace ICSharpCode.XmlEditor @@ -32,29 +30,6 @@ namespace ICSharpCode.XmlEditor
base.Attach(editor);
}
void UpdateHighlightingIfNotXml()
{
if (codeEditorView != null) {
if (!IsUsingXmlHighlighting()) {
ChangeHighlightingToXml();
}
}
}
bool IsUsingXmlHighlighting()
{
IHighlightingDefinition highlighting = codeEditorView.SyntaxHighlighting;
if (highlighting != null) {
return highlighting.Name == "XML";
}
return false;
}
void ChangeHighlightingToXml()
{
codeEditorView.SyntaxHighlighting = HighlightingManager.Instance.GetDefinition("XML");
}
public override void Detach()
{
foldingManager.Stop();

Loading…
Cancel
Save