Этот проект представляет собой порт Авалонедит, текстовый редактор на основе WPF для Avalonia.
Avaloniaedit поддерживает такие функции, как:
И много, много!
Avaloniaedit в настоящее время состоит из 2 пакетов
<PackageReference Include="Avalonia.AvaloniaEdit" Version="xyzt" /><Application.Styles> в вашем App.xaml :0.10.xy <StyleInclude Source="avares://AvaloniaEdit/AvaloniaEdit.xaml" />11.xy , включите <StyleInclude Source="avares://AvaloniaEdit/Themes/Fluent/AvaloniaEdit.xaml" />< Window xmlns = " https://github.com/avaloniaui "
...
xmlns : AvaloniaEdit = " clr-namespace:AvaloniaEdit;assembly=AvaloniaEdit "
...>
...
< AvaloniaEdit : TextEditor Text = " Hello AvaloniaEdit! "
ShowLineNumbers = " True "
FontFamily = " Cascadia Code,Consolas,Menlo,Monospace " />
...
</ Window >Вы можете увидеть демонстрационное приложение как ссылку.
Прежде всего, если вы хотите использовать грамматики, поддерживаемые Textmatesharp, должны установить следующие пакеты:
В качестве альтернативы, если вы хотите поддержать свою собственную грамматику, вам просто нужно установить пакет avaloniaedit.textmate и реализовать интерфейс iRegistryoptions, который в настоящее время является самым простым способом, если вы хотите использовать AvaloniaEdit с набором грамматов, отличных от Grammars, отличных от TextmateSharp.grammars.
//First of all you need to have a reference for your TextEditor for it to be used inside AvaloniaEdit.TextMate project.
var _textEditor = this . FindControl < TextEditor > ( "Editor" ) ;
//Here we initialize RegistryOptions with the theme we want to use.
var _registryOptions = new RegistryOptions ( ThemeName . DarkPlus ) ;
//Initial setup of TextMate.
var _textMateInstallation = _textEditor . InstallTextMate ( _registryOptions ) ;
//Here we are getting the language by the extension and right after that we are initializing grammar with this language.
//And that's all ?, you are ready to use AvaloniaEdit with syntax highlighting!
_textMateInstallation . SetGrammar ( _registryOptions . GetScopeByLanguageId ( _registryOptions . GetLanguageByExtension ( ".cs" ) . Id ) ) ; 