Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Вопрос из любопытсва: как устроен редактор кода?   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
10-1146664383
delphi
2006-05-03 17:53
2008.05.25
COM(delphi) + DLL(C++)


2-1209299390
Азат
2008-04-27 16:29
2008.05.25
простая работа с графикой


15-1208149156
Wowders
2008-04-14 08:59
2008.05.25
Приветствие от новичка на форуме


15-1207729759
pavel_guzhanov
2008-04-09 12:29
2008.05.25
Умерла Надежда Румянцева


3-1197894306
Ангела
2007-12-17 15:25
2008.05.25
Вопрос по таблицам Access