Отслеживать изменения текста при раскрашивании в редакторе
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Отслеживать изменения текста при раскрашивании в редакторе
Да, виноват. Вообще, похоже, какая-то концептуальная недоработка в принципах раскраски в Far. У меня тоже не получилось корректно обработать эту ситуацию в EdtFind. Более того - я вообще не могу себе представить как ее можно корректно обработать (может туплю, конечно...)
Last edited by Max Rusov on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка на исходную тему
Reason: Добавлена ссылка на исходную тему
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.
А это не особенности EE_CHANGE, случайно? Если плагин по-честному следит за измененными строками и перерисовывает только их, то могут быть неожиданные строки в EE_CHANGE (с человеческой точки зрения). Например (именно с энтер):
http://forum.farmanager.com/viewtopic.p ... 098#p90098
http://forum.farmanager.com/viewtopic.p ... 098#p90098
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.
Я вот чего не могу понять, может меня кто нибудь снимет с ручника: как плагин должен обновлять раскраску, в случае изменения текста?
Как мне кажется, он должен в EE_REDRAW:
1 Удалить то, что он ранее раскрасил.
2 Раскрасить заново то что надо.
Но как можно удалить свою старую раскраску, при условии что FAR сам смещает ее при модификации текста? Удаление делается по позициям, и старые позиции уже невалидны...
Или я чего то принципиально не понимаю?...
PS. Offtopic, конечно. Надо бы перенести в разработку...
Как мне кажется, он должен в EE_REDRAW:
1 Удалить то, что он ранее раскрасил.
2 Раскрасить заново то что надо.
Но как можно удалить свою старую раскраску, при условии что FAR сам смещает ее при модификации текста? Удаление делается по позициям, и старые позиции уже невалидны...
Или я чего то принципиально не понимаю?...
PS. Offtopic, конечно. Надо бы перенести в разработку...
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.
Мне кажется это практически реализовать очень сложно. Можно только удалить все с текущего экрана. Я так и делаю. И колорер вроде тоже. И за пределами экрана остается куча цветов, да (и "благодаря" этому факту успешно работает CopyColor). Где-то это уже обсуждалось (давно, еще для 2-ки, но этот аспект не поменялся).1 Удалить то, что он ранее раскрасил.
(да это можно бы в разработку отнести..)
-
- Posts: 3651
- Joined: Wed 23 Nov, 2005 11:11
- Location: Москва-Питер
- Has thanked: 2 times
- Been thanked: 19 times
Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.
Ну, в Far3 это, наверное, можно, потому как каждый плагин красит свой слой, и они друг-другу не мешают. А в Far2 как? Если бы каждый плагин так поступал, то оставалась раскраска только от одного - последнего?...NightRoman wrote:Мне кажется это практически реализовать очень сложно. Можно только удалить все с текущего экрана
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.
Как было в 2-ке лучше забыть. В RightWords мне приходилось вычислять *примерно*, есть колорер или нет. Если есть, то RightWords не чистил цвета (ибо: 1. колорер уже почистил; 2. чтоб цвета колорера не прибить), если колорера нет, то чистил RightWords. С еще одним дополнительным рисовальщиком был бы уже точно кошмар.