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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

Far Colorer — плагин подсветки синтаксиса в редакторе, основанный на Colorer Library Игоря Русских.
  • Изначальный автор плагина — Игорь Русских (lomecb, он же cail).
  • После того как плагин портирован на Far 2, поддержкой занимается Алексей Добрунов (ctapmex, он же на форуме ctapmex).
  • Официальная поддержка осуществляется через google-группу colorer_ru (на форуме бывает только ctapmex).
  • Актуальные версии основаны на Colorer Library версии take5.
GitHub | Анонс | Старые домашние страницы библиотеки Colorer и плагина для FAR

Плагин входит в дистрибутив Far Manager с v3.0.2948 (старые версии доступны тут)
Поддержка Windows XP
Начиная с версии FarColorer 1.4.0 в плагине прекращена поддержка Windows XP. Полностью поддерживается и тестируется на Windows 10. Несколько версий Windows назад - по запросу. Но кажется, что всегда должно работать начиная с Windows 2008.
Far Manager 3.0.5797 (2021.05.10) и более новые в дистрибутиве содержат FarColorer версии 1.4.
Поддержка Windows XP осталась только на FarColorer 1.3.x. В данной ветке будут выходить только критичные исправления. Скачать можно на GitHub странице плагина. Последняя версия 1.3.30



Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.
Last edited by ctapmex on Mon 18 Oct, 2021 19:17, edited 5 times in total.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

Latest post of the previous page:

Sim, видимо колорер считает нужным пересчитывать полностью строку при внесении туда изменения, при этом создавая много redraw events, так как элементов в длинной стоке то много.
при загрузке видимо тоже самое, загружает строку, подсчитал ее частично, перерисовал полностью, пересчитал ее часть, перерисовал опять полностью, итд итп.
а на выходе куча наверное лишних евентов
Меня на эту мысль сам СтарМех и навел когда-то, когда он помог мне понять откуда берется моргание нарисованного через фар.Текст(...)
Может я в чем не прав, прастити мину те кто всегда прав
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

buniak_a_h wrote: Thu 15 Oct, 2020 11:11Займитесь, это же несложно!
да, я-то посмотрю еще раз
но у меня стало лучше при отключке макросов,
правда тогда не успел редактирование проверить
НО, большое НО
Даже если типа виноваты хэндлеры евентов
ЭТО ВСЕ РАВНО ЗНАЧИТ ЧТО СОЗДАЮТСЯ СЛИШКОМ МНОГО ЛИШНИХ ЭВЕНТОВ ОТ КОЛОРЕРА

Ну и стандартный дисклаймер прилагается:
Может я в чем не прав, прастити миню те кто всегда прав
Last edited by citRiks on Thu 15 Oct, 2020 11:23, edited 1 time in total.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

buniak_a_h, после очистки профиля я выяснил что виной был файл C:\Users\Sim\AppData\Roaming\Far Manager\Profile\PluginsData\D2F36B62-A470-418D-83A3-ED7A3710E5B5.db
Если его удалить, при запуске фара создастся новый и настройки FarColorer слетят, тормоза уменьшаются существенно, однако задержки полностью не ушли.
Вот файл, который вызывал жуткие тормоза по несколько минут:
D2F36B62-A470-418D-83A3-ED7A3710E5B5.db.7z
(1.71 KiB) Downloaded 35 times
Случайности не случайны.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

Sim wrote: Thu 15 Oct, 2020 11:25 после очистки профиля я выяснил что виной был файл C:\Users\Sim\AppData\Roaming\Far Manager\Profile\PluginsData\D2F36B62-A470-418D-83A3-ED7A3710E5B5.db
Если его удалить, при запуске фара создастся новый и настройки FarColorer слетят
Так этот файл и «принадлежит» именно плагину FarColorer (это легко узнать, включив режим панели, где есть Описания, например №6 или №7 в умолчательной конфигурации).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

HaRT, но остается вопрос почему мой старый файл вызывал тормоза, хотя из настроек в Colorer я почти ничего не менял, только выбрал стиль и изменил отображение креста, после таких же настроек с нуля тормоза не появились. Видимо какое-то повреждение в файле настроек Colorer мешало его нормальной работе.
Last edited by Sim on Thu 15 Oct, 2020 11:38, edited 1 time in total.
Случайности не случайны.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

Sim, ну имеет смысл теперь сравнить чего в этом файле, который в sqlite формате, отличается от свежесозданного.
там по идее небольшие таблицы sqlite с настройками должны быть
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

citRiks, там и есть таблицы SQLite. Напишете макрос, переводящий в текстовый вид? Или такое уже есть? Или можно ещё filter сделать для ExamDiff…
Sim, история развития колорера очень длинная; там могли остаться уже неактуальные настройки, к которым теперь нет доступа из диалога :-) Подробности, конечно, лучше знает стармех, но вообще я с таким сталкивался.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

buniak_a_h wrote: Thu 15 Oct, 2020 11:56 citRiks, там и есть таблицы SQLite. Напишете макрос, переводящий в текстовый вид? Или такое уже есть? Или можно ещё filter сделать для ExamDiff…
после сегодняшних наездов (я не говорю же чьих наездов, ОК?) я ничего не хочу уже писать никогда.
помогаю лишь людям по мере возможности, пока уж я еще здесь
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

citRiks wrote: Thu 15 Oct, 2020 11:22 Даже если типа виноваты хэндлеры евентов
ЭТО ВСЕ РАВНО ЗНАЧИТ ЧТО СОЗДАЮТСЯ СЛИШКОМ МНОГО ЛИШНИХ ЭВЕНТОВ ОТ КОЛОРЕРА

Ну и стандартный дисклаймер прилагается:
Может я в чем не прав, прастити миню те кто всегда прав
ты (можно на ты ? ) не прав ;)
подход работы colorer - раскраска текста согласно контексту/месту. если ты редактируешь пятую строку из 100, то контекст меняется у всех строк , начиная с 5. и их необходимо переразобрать. На это и уходит много времени. Сама раскраска в редакторе и посылка ему сообщений она копеечная. там затруднения возникают только в случае, если редактируется конец длинной строки, т.к. необходимо в списке элементов найти элемент соответсвующий отображени. экрана.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

ctapmex wrote: Thu 15 Oct, 2020 13:04 ты (можно на ты ? ) не прав
да можно и нужно конечно, смысл бесед тут явно не в множественных числах в обращении :)
ctapmex wrote: Thu 15 Oct, 2020 13:04 Сама раскраска в редакторе и посылка ему сообщений она копеечная.
Согласен что самому колореру денег не стоит рассылать 1000 сообщений в секунду.
А получать эти сообщениям тоже денег не стоит?
Мне думается что будет стоить, обработчику же надо обработать это как-то..
Ну в нашем случае может больше виновата какая-то неправильнсоть в базе даных плагина.
но в остальном общем и целом.
может ли быть ситуация, когда шлются 1000 redraws в секунду например?
если да, то можно ли задать искуственный ограничитель,
чтобы скажем redraw слался не чаще чем раз в 200 милисекунд как например?
ctapmex wrote: Thu 15 Oct, 2020 13:04 там затруднения возникают только в случае, если редактируется конец длинной строки, т.к. необходимо в списке элементов найти элемент соответсвующий отображени. экрана.
это наверное не очень важно мне, но все же непонятно.
текст моноширинный, значит знaем все координаты экранные, реальные, табуляционные, элементарная арифметика без плавающих точек.
Где тут затруднения должны быть?
если затруднение и в долгих обьяснениях человеку с нуля, то можно и оставить эту тему :)
Last edited by citRiks on Thu 15 Oct, 2020 14:24, edited 1 time in total.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

ctapmex wrote: Thu 15 Oct, 2020 13:04 затруднения возникают только в случае, если редактируется конец длинной строки, т.к. необходимо в списке элементов найти элемент соответсвующий отображени. экрана.
в моем случае тормоза возникают одинаково, как при редактировании начала длинной строки, так и конца. Даже просто вставка пустой строки между строками или даже пробела или другого символа вызывает задержку в 7 секунд, хотя вводимый символ никак не влияет на отображение раскраски, может можно перерисовку делать не блокируя работу фара? Припоминаю была идея сделать работу колорера полностью в фоне в отдельном потоке, пусть раскраска тормозит, лишь бы не блокировался интерфейс на время раскраски, так чтобы работа с редактированием была такой же по скорости как с полностью отключенным плагином.
Случайности не случайны.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

о том, что вводимый символ никак не влияет на раскраску как узнать? никак. только перестраивать.
проблема была в сохраненных настройках. для defaut схемы сохранился параметр максимальной строки как "defaul-5000". а это строка, что вызвало использование значения по умолчанию 0 - нет ограничений. а в файле есть строки и по 160 тыс знаков.

фоновая обработка - это светлая мечта
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

ctapmex, а что если сделать возможность такого режима работы плагина: раскраска при открытии файла, а дальше отключить автоматическую раскраску (можно нажатием хоткея) и дать возможность спокойно отредактировать файл, а раскраску включить по нажатию хоткея тогда, когда она нужна для проверки синтаксиса?
Или еще вариант - сделать таймаут новой раскраски после любого редактирования, т.е. пока вводишь какой-то текст или удаляешь раскраска не меняется, а остановился на скажем 5 секунд и раскраска обновляется.
Last edited by Sim on Thu 15 Oct, 2020 22:01, edited 2 times in total.
Случайности не случайны.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

buniak_a_h wrote: Thu 15 Oct, 2020 11:56 citRiks, там и есть таблицы SQLite. Напишете макрос, переводящий в текстовый вид? Или такое уже есть?
Мой DBEdit умеет экспортировать БД плагина в файл. Формат текстовый, читабельный.
Pasha_ZZZ
Posts: 425
Joined: Mon 12 Jun, 2006 14:58
Has thanked: 1 time
Been thanked: 27 times
Contact:

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

Post by Pasha_ZZZ »

Давно уже замечал, думал само поправится: Colorer считает, что в bat/cmd обратный слэш экранирует кавычки (а это не так). Например, ввести строку if "123\"=="456\"
Last edited by Pasha_ZZZ on Sat 17 Oct, 2020 04:45, edited 1 time in total.
pepak
Posts: 604
Joined: Sun 13 Jul, 2008 11:18
Has thanked: 17 times
Been thanked: 54 times

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

Post by pepak »

Would it be possible to add config support for selectively disabling certain built-in syntaxes? I used to use my own modified catalog, but that always seemed like a hack more than anything and it finally stopped working in recent versions of FAR. A built-in support for enabling/disabling filters could be very useful, particularly in case of XML files where some specializations often take over what should be a regular file (e.g. "Ant's build.xml" gets used while plain "xml" would be more apropriate; since I never use the former, I could simply disable it to get the desired result). Thanks.
Post Reply

Return to “Обсуждение плагинов”