Ответ 1
Я думаю, это зависит от того, сколько функций вы хотите реализовать в редакторе. Также, сколько работы вы готовы внести, чтобы продлить ее и сколько из кривой обучения вы готовы иметь дело.
Если вы нацеливаете Win32, и вы не против неуправляемой dll, я думаю, что Scintilla.NET не будет проблемой. Также вы можете легко разместить его в WPF как эта страница.
Лично я чувствовал, что Scintilla работает лучше, чем AvalonEdit. Также легче начать работу с базового редактора и обеспечить много из коробки, например, Scintilla предоставляет сводку кода из коробки.
С AvalonEdit вам нужно создать стратегию складывания и самостоятельно проанализировать документ. Это то, что я должен был сделать, чтобы поддерживать IronPython для AvalonEdit, который я еще не реализовал.
Все, что мне нужно для поддержки редактора IronPython в scintilla, это SciLexer.dll в пути поиска и сборки Scintilla.net и следующей конфигурации:
private void Form1_Load(object sender, EventArgs e)
{
this.scintilla1 = new ScintillaNet.Scintilla();
this.scintilla1.ConfigurationManager.Language = "python";
this.scintilla1.Indentation.ShowGuides = true;
this.scintilla1.Indentation.SmartIndentType = ScintillaNet.SmartIndent.Simple;
this.scintilla1.Location = new System.Drawing.Point(0, 0);
this.scintilla1.Margins.Margin0.Width = 40;
this.scintilla1.Margins.Margin2.Width = 20;
this.scintilla1.Name = "scintilla1";
this.scintilla1.TabIndex = 4;
this.scintilla1.Whitespace.Mode = ScintillaNet.WhitespaceMode.VisibleAfterIndent;
this.scintilla1.Dock = DockStyle.Fill;
this.Controls.Add(this.scintilla1);
}
Для AvalonEdit вам нужно загрузить внешний файл ярлыка, вы можете увидеть этот блог для получения дополнительной информации. Поэтому, если вам нужны основы (выделение, сворачивание для python + С#), мой вывод - schintilla проще и работает лучше. Хотя с AvalonEdit вы, возможно, сможете сделать больше в конце, если вы готовы приложить усилия и справиться с кривой обучения. В настоящий момент я использую Scintilla в качестве моего стабильного редактора и экспериментирую с Avalon как доказательство концепции. Возможно, я тоже сформирую новые мнения, так как я больше узнаю об редакторе.
Удачи.