c# — идеальная подсветка синтаксиса

Я ищу RichTextBox с подсветкой синтаксиса! Звучит просто, но я искал несколько месяцев и не нашел того, что мне нужно.

Сначала я начал делать это сам... Плохая идея...

Я пытался использовать это: http://blogs.microsoft.co.il/blogs/tamir/archive/2006/12/14/RichTextBox-syntax-highlighting.aspx

но этот код не обрабатывает загрузку файлов или вставку, поэтому я начал писать функцию выделения для вставки текстовых блоков. Этот учебник и мой код сначала работали нормально, но потом я увидел множество крошечных ошибок, а загрузка больших файлов занимала слишком много времени.

Затем я нашел много похожих руководств/кодов на codeproject.com, например: http://www.codeproject.com/KB/edit/SyntaxHighlighting.aspx

Но там у меня тоже проблемы, если файл становится большим. Вставка и загрузка файлов займет некоторое время...

Кажется, я ищу что-то вроде этого: http://www.aqistar.com/

Но я не могу тратить деньги, и я хочу продать свою программу, возможно, поэтому код/управление должны быть бесплатными.

Кто-нибудь может мне помочь?


person zee    schedule 05.09.2009    source источник


Ответы (2)


AvalonEdit — это текстовый редактор на основе WPF, используемый в SharpDevelop 4.0. Он имеет встроенную поддержку подсветки синтаксиса для нескольких языков, и вы можете добавлять новые определения подсветки, используя формат файла на основе XML.

AvalonEdit имеет открытый исходный код, но также может использоваться в коммерческих приложениях (лицензия MIT начиная с AvalonEdit 5.0).

Если вы не хотите использовать WPF, вы также можете использовать ICSharpCode.TextEditor, старый текстовый редактор Windows Forms из SharpDevelop 3.x.

person Daniel    schedule 05.09.2009
comment
Могу ли я использовать WPF AvalonEdit в своем приложении winforms?? какие-нибудь советы ?? - person Kiquenet; 12.01.2011
comment
Можно ли его использовать в Xamarin.Android - person choza rajan; 29.12.2017
comment
@Daniel, у меня есть вопрос: есть ли способ создать подсветку синтаксиса FROM RichTextBox? Я предпочитаю не использовать сторонние API или пакеты, потому что часто создаю свои приложения для коммерческого использования. Любые идеи? Спасибо :) - person Momoro; 31.03.2020

Взгляните на эти проекты с открытым исходным кодом:

person Christian C. Salvadó    schedule 05.09.2009
comment
ScintillaNet переехал на github.com/jacobslusser/ScintillaNET. - person mgruber4; 07.03.2021