mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-05-21 12:15:00 +00:00
enhance: leave the current state until we got the new diff result to reduce flickering
This commit is contained in:
parent
2782ef4cc1
commit
340fe9e3ba
10 changed files with 158 additions and 227 deletions
59
src/SourceGit/Models/TextMateHelper.cs
Normal file
59
src/SourceGit/Models/TextMateHelper.cs
Normal file
|
@ -0,0 +1,59 @@
|
|||
using System.IO;
|
||||
|
||||
using Avalonia.Styling;
|
||||
|
||||
using AvaloniaEdit;
|
||||
using AvaloniaEdit.TextMate;
|
||||
|
||||
using TextMateSharp.Grammars;
|
||||
|
||||
namespace SourceGit.Models
|
||||
{
|
||||
public static class TextMateHelper
|
||||
{
|
||||
public static TextMate.Installation CreateForEditor(TextEditor editor)
|
||||
{
|
||||
if (App.Current?.ActualThemeVariant == ThemeVariant.Dark)
|
||||
{
|
||||
return editor.InstallTextMate(new RegistryOptions(ThemeName.DarkPlus));
|
||||
}
|
||||
else
|
||||
{
|
||||
return editor.InstallTextMate(new RegistryOptions(ThemeName.LightPlus));
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetThemeByApp(TextMate.Installation installation)
|
||||
{
|
||||
if (installation == null) return;
|
||||
|
||||
var reg = installation.RegistryOptions as RegistryOptions;
|
||||
if (App.Current?.ActualThemeVariant == ThemeVariant.Dark)
|
||||
{
|
||||
installation.SetTheme(reg.LoadTheme(ThemeName.DarkPlus));
|
||||
}
|
||||
else
|
||||
{
|
||||
installation.SetTheme(reg.LoadTheme(ThemeName.LightPlus));
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetGrammarByFileName(TextMate.Installation installation, string filePath)
|
||||
{
|
||||
if (installation == null) return;
|
||||
|
||||
var ext = Path.GetExtension(filePath);
|
||||
if (ext == ".h")
|
||||
{
|
||||
ext = ".cpp";
|
||||
}
|
||||
else if (ext == ".resx")
|
||||
{
|
||||
ext = ".xml";
|
||||
}
|
||||
|
||||
var reg = installation.RegistryOptions as RegistryOptions;
|
||||
installation.SetGrammar(reg.GetScopeByExtension(ext));
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue