Форум: "Прочее";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
ВнизВопрос из любопытсва: как устроен редактор кода? Найти похожие ветки
← →
TStas © (2008-04-08 21:14) [0]Он ведь, похоже, сразу от Tedit наследует. Ведь он совершенно не моргает, а на изменение текста реагирует сразу, делая жирным нужные слова. Не похоже на RichEdit. Понятно, что парсят текст из него в отдельном потоке. Но все равно... Вот ворд. Пишешь в нем что-то, а он очень не скоро подчеркивает неправильные слова и т. д. А дельфи сразу. Понятно, что дельфям надо только зарезервированные слова выделять, а их мало, а ворду вообще весь словарь смотреть, а он весьма большой. Но всё равно. Или его от мемы наследовали, а процедуру рисования перекрыли? Тоже ведь нет. И курсор совсем иначе себя ведёт. Как он всё-таки устроен?
← →
TUser © (2008-04-08 21:19) [1]Если реально интересно, как такое может быть, то есть набор компонентов SynEdit с такими же ТТХ и открытым исходным кодом.
← →
Rouse_ © (2008-04-08 21:19) [2]Посмотри Scintilla или SynEdit - два ярких представителя редакторов с поддержкой синтаксиса. Мне больше нравиться движок Scintilla, он правда под VC++, но достаточно просто дружится и с Дельфи.
← →
TStas © (2008-04-08 21:57) [3]Вот SynEdit качнул. Меня не сама поддержка синтаксиса интересует, а как реализована она. Поддержка очевидно - парсер, который трудится в отдельном потоке.
← →
Игорь Шевченко © (2008-04-08 22:41) [4]У ворда и у delphi задачи несколько разные. Поэтому ворд может с проверкой орфографии и подождать, пустив поток, ответственный за орфографию, с пониженнм приоритетом.
← →
Loginov Dmitry © (2008-04-08 23:08) [5]> Вот SynEdit качнул. Меня не сама поддержка синтаксиса интересует,
> а как реализована она. Поддержка очевидно - парсер, который
> трудится в отдельном потоке.
Насчет очевидности - посмотри исходники. Мне, например, наличие доп. потока совершенно неочевидно. К тому же моментальное время реакции на любые изменения говорит скорее об отсутствии доп. потока.
← →
Rouse_ © (2008-04-08 23:30) [6]
> говорит скорее об отсутствии доп. потока.
...или о хорошей оптимизации оного ;)
← →
PEAKTOP © (2008-04-09 00:48) [7]> Rouse_ © (08.04.08 23:30) [6]
> > говорит скорее об отсутствии доп. потока.
> ...или о хорошей оптимизации оного ;)
Угу-мс. Чего только стоят замена ключевых слов прямо сразу на хэши в парсере (TSynHighliter....) Паскаля и Си.
← →
TStas © (2008-04-09 11:28) [8]>Угу-мс. Чего только стоят замена ключевых слов прямо сразу на хэши в парсере Ну, так очевидно же, что так быстрее будет работать. Парсер выделил идентификаторы и сразу заменил их на ключе6вые слова. Ясно же, что один раз проверить на ключевое слово гораздо быстрее, чем потом синт. анализатор будет одно и тоже по сто раз проверять и откатываться. Разве это не самоочевидный приём? Ведь ключевое слово, такая же териминальная лексема, как любая другая, чего ж в этом удивительного.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c