Myślę, że zależy to od liczby funkcji, które chcesz zaimplementować w edytorze. Również ile pracy chcesz poświęcić na jej przedłużenie i ile krzywej uczenia się chcesz sobie poradzić.
Jeśli celujesz w Win32 i nie masz nic przeciwko niezarządzanej dll to myślę, że Scintilla.NET nie będzie problemem. Możesz także łatwo go hostować w WPF, jak sugeruje strona this.
Osobiście czułem, że Scintilla działa lepiej niż AvalonEdit. Łatwiej jest także rozpocząć pracę z podstawowym edytorem i zapewnia on wiele dodatkowych opcji, na przykład Scintilla zapewnia składanie kodu poza zestaw.
Z AvalonEdit trzeba utworzyć strategię składania i samemu przeanalizować dokument. To właśnie musiałem zrobić, aby obsługiwać IronPython dla AvalonEdit, którego jeszcze nie zaimplementowałem.
Wszystko co potrzebne do obsługi edytora IronPython w scintilla był SciLexer.dll w ścieżce wyszukiwania i montaż Scintilla.net i następująca konfiguracja:
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);
}
Dla AvalonEdit trzeba załadować zewnętrznego wyróżnienia plik, możesz zobaczyć post na blogu this, aby uzyskać więcej informacji. Więc jeśli chcesz podstawy (podświetlanie, składanie dla Pythona + C#), mój wniosek jest taki, że schintilla jest łatwiejsza i działa lepiej. Chociaż z AvalonEdit możesz w końcu zrobić więcej, jeśli chcesz włożyć wysiłek i opanować krzywą uczenia się. W tej chwili używam Scintilla jako mojego stabilnego edytora i eksperymentuję z Avalonem jako dowód koncepcji. Być może będę również tworzyć nowe opinie, ponieważ dowiem się więcej o edytorze.
Powodzenia
Bhuvan, na co się ostatecznie zdecydowałeś? (teraz, prawie 2 lata później) – Goswin
Nie użyłem jako komponentu w moim kodzie źródłowym, ale użyłem dwóch produktów opartych na każdym ('QuickSharp' opartym na' ScintillaNET' i 'SharpDevelop' opartym na' AvalonEdit') jako alternatywny lekki edytor C#. Imo, 'SharpDevelop' był bardziej funkcjonalny i łatwiejszy w obsłudze. – nawfal