Реализация выделения кода - PullRequest
3 голосов
/ 15 апреля 2011

У меня есть стек-ориентированный язык программирования, для которого мне нужно написать очень простой редактор с подсветкой кода.Было бы предпочтительнее сделать это с RichTextBox

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

Есть получено чтобы быть лучше.Очевидно, Visual Studio делает это безупречно ...

Итак, какой метод мне следует использовать?

(псевдокод или даже просто общая концепция макета подойдет для ответа)

Ответы [ 3 ]

3 голосов
/ 15 апреля 2011

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

Примеры приложений, которые его используют:

2 голосов
/ 15 апреля 2011

Scintilla используется в a lot различных редакторов. Блокнот ++ является одним из них.

Вот оболочка .Net: http://scintillanet.codeplex.com/

enter image description here

1 голос
/ 15 апреля 2011

Не уверен, что если вы действительно хотите написать свой собственный, я использовал AvalonEdit , редактор из SharpDevelop для чего-то похожего, работает довольно хорошо. Хотя это WPF, вы не сказали, на какой технологии пользовательского интерфейса вы работаете. Вы даже можете использовать его в коммерческом программном обеспечении с лицензией.

GJ

...