Отслеживать изменения текста при раскрашивании в редакторе

Разработка Far.
Post Reply
Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 11 times

Отслеживать изменения текста при раскрашивании в редакторе

Post by Max Rusov »

Да, виноват. Вообще, похоже, какая-то концептуальная недоработка в принципах раскраски в Far. У меня тоже не получилось корректно обработать эту ситуацию в EdtFind. Более того - я вообще не могу себе представить как ее можно корректно обработать (может туплю, конечно...)
Last edited by Max Rusov on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка на исходную тему

User avatar
NightRoman
Posts: 5919
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 12 times
Been thanked: 14 times
Contact:

Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by NightRoman »

А это не особенности EE_CHANGE, случайно? Если плагин по-честному следит за измененными строками и перерисовывает только их, то могут быть неожиданные строки в EE_CHANGE (с человеческой точки зрения). Например (именно с энтер):
http://forum.farmanager.com/viewtopic.p ... 098#p90098

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 11 times

Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Max Rusov »

Я вот чего не могу понять, может меня кто нибудь снимет с ручника: как плагин должен обновлять раскраску, в случае изменения текста?
Как мне кажется, он должен в EE_REDRAW:
1 Удалить то, что он ранее раскрасил.
2 Раскрасить заново то что надо.

Но как можно удалить свою старую раскраску, при условии что FAR сам смещает ее при модификации текста? Удаление делается по позициям, и старые позиции уже невалидны...

Или я чего то принципиально не понимаю?...

PS. Offtopic, конечно. Надо бы перенести в разработку...

User avatar
NightRoman
Posts: 5919
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 12 times
Been thanked: 14 times
Contact:

Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by NightRoman »

1 Удалить то, что он ранее раскрасил.
Мне кажется это практически реализовать очень сложно. Можно только удалить все с текущего экрана. Я так и делаю. И колорер вроде тоже. И за пределами экрана остается куча цветов, да (и "благодаря" этому факту успешно работает CopyColor). Где-то это уже обсуждалось (давно, еще для 2-ки, но этот аспект не поменялся).

(да это можно бы в разработку отнести..)

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 11 times

Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by Max Rusov »

NightRoman wrote:Мне кажется это практически реализовать очень сложно. Можно только удалить все с текущего экрана
Ну, в Far3 это, наверное, можно, потому как каждый плагин красит свой слой, и они друг-другу не мешают. А в Far2 как? Если бы каждый плагин так поступал, то оставалась раскраска только от одного - последнего?...

User avatar
NightRoman
Posts: 5919
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 12 times
Been thanked: 14 times
Contact:

Re: Colorer — гибкая раскраска синтаксиса в редакторе и др.

Post by NightRoman »

Как было в 2-ке лучше забыть. В RightWords мне приходилось вычислять *примерно*, есть колорер или нет. Если есть, то RightWords не чистил цвета (ибо: 1. колорер уже почистил; 2. чтоб цвета колорера не прибить), если колорера нет, то чистил RightWords. :) С еще одним дополнительным рисовальщиком был бы уже точно кошмар.

Post Reply

Return to “Development”