You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.4 KiB
47 lines
1.4 KiB
1 year ago
|
using System;
|
||
|
using Avalonia.Markup.Xaml;
|
||
|
using Avalonia.Media;
|
||
|
using AvaloniaEdit.TextMate;
|
||
|
using StabilityMatrix.Avalonia.Controls;
|
||
|
using TextMateSharp.Grammars;
|
||
|
|
||
|
namespace StabilityMatrix.Avalonia.Views;
|
||
|
|
||
|
public partial class InferenceTextToImageView : UserControlBase
|
||
|
{
|
||
|
public InferenceTextToImageView()
|
||
|
{
|
||
|
InitializeComponent();
|
||
|
InitializeEditors();
|
||
|
}
|
||
|
|
||
|
private void InitializeEditors()
|
||
|
{
|
||
|
foreach (var editor in new[] {PromptEditor, NegativePromptEditor})
|
||
|
{
|
||
|
if (editor is not null)
|
||
|
{
|
||
|
var options = new RegistryOptions(ThemeName.DarkPlus);
|
||
|
|
||
|
// Config hyperlinks
|
||
|
editor.TextArea.Options.EnableHyperlinks = true;
|
||
|
editor.TextArea.Options.RequireControlModifierForHyperlinkClick = true;
|
||
|
editor.TextArea.TextView.LinkTextForegroundBrush = Brushes.Coral;
|
||
|
|
||
|
var textMate = editor.InstallTextMate(options);
|
||
|
var scope = options.GetScopeByLanguageId("log");
|
||
|
|
||
|
if (scope is null) throw new InvalidOperationException("Scope is null");
|
||
|
|
||
|
textMate.SetGrammar(scope);
|
||
|
textMate.SetTheme(options.LoadTheme(ThemeName.DarkPlus));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void InitializeComponent()
|
||
|
{
|
||
|
AvaloniaXamlLoader.Load(this);
|
||
|
}
|
||
|
}
|