Плагин входит в дистрибутив 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
Опционально плагин способен отображать текст в RGB режиме, и используя разные стили (bold/italic/underlined).
Этот режим называется TrueMod, для его работы в FAR 3 требуются специальный эмулятор консоли: Conemu.
Скриншоты можно глянуть странице проекта (актуальны только изображения, а описание немного устарело, в частности Console2 больше не поддерживается).
Или подключить пользовательские *.hrd в пользовательском catalog.xml
Внимание: в пользовательском файле цветовых стилей пути вычисляются относительно catalog.xml
В настройках плагина указать путь к файлу: Users file of schemes.
(Структура файла аналогична hrc\proto.hrc)
используя папку auto:
Два варианта:
Cоздать свой аналог proto.hrc и прописать туда прототипы, а в папку types положить сами схемы.
Минимальный (пустой) пример файла прототипов есть в дистрибутиве: auto/empty.hrc.
Внимание:empty.hrc служит для примера, изменять его не рекомендуется, т.к. при обновлении изменения потеряются.
Можно обойтись без отдельного файла прототипов, а разместить схемы непосредственно в папке auto.
Прототип в этом случае должен быть определён в самой схеме после тега <hrc>, без указания location
через пользовательский catalog.xml:
Вместо штатного base/catalog.xml можно использовать свой файл, указав путь к нему в настройках плагина.
В своём каталоге можно указать откуда загружать пользовательские прототипы и схемы.
Чтобы переопределять дистрибутивные схемы собственными надо пользовательский файл прототипов подключать после штатного proto.hrc:
Также в catalog.xml можно добавить пользовательские цветовые стили, см. <hrd-sets>
Как переопределить существующую схему
Для этого достаточно подключить собственную схему с тем же именем (name).
Если требуется изменить только параметры схемы (filename, firstline, parameters), то достаточно прототипа, как он указан в common.zip!hrc/proto.hrc. location схемы при этом нужно указать примерно так (для hrc-файла, находящегося в папке FarColorer\base\auto):
Как правильно "удалить" какую-либо стандартную схему
Чтобы какая-либо из стандартных схем исчезла из меню, надо в пользовательском файле прототипов "переделать" схему в пакет с тем же именем (name), например:
Кроме имени важно также сохранить значение location, потому как даже если эта схема вам не нужна, но от неё могут зависеть другие, нужные вам.
Как использовать относительные пути и переменные окружения
В настройках плагина при указании пути к catalog.xml удобно использовать переменные окружения, такие как %FARHOME%, %FARPROFILE%.
Переменные можно использовать и в самом файле catalog.xml, и в определениях прототипов.
Кроме того поддерживаются относительные пути во всех hrc файлах (путь вычисляется относительно файла, в котором он указан). Внимание: в пользовательском файле цветовых стилей (hrd) пути вычисляются относительно catalog.xml
Если раскраска неправильна:
В первую очередь нужно убедиться что тип файла определён верно (F11/FarColorer/List types).
В случае если определился не тот тип, что требуется, можно выбрать из списка более подходящий.
Или же переопределить типы, подкорректировав "условия срабатывания" схемы, заданные в атрибутах <filename> и/или <firstline>.
Часто достаточно подкорректировать атрибут weight='2', изменив умолчательное значение (2) в ту или иную сторону.
Не рекомендуется редактировать штатные прототипы и схемы, т.к. при обновлении изменения потеряются.
Как правильно переопределить схемы описано в других пунктах данного FAQ
Тонкая настройка подсветки для отдельной схемы: в теме.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 17:44
by 2useven10
Latest post of the previous page:
buniak_a_h, FarColorer какой (take5 или take44ever)?
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 17:46
by 2useven10
ctapmex wrote: ↑Wed 23 Jan, 2019 17:41
что в плагин не приходят события "пустышки"
Не приходят. zg настаивает, что плагин сам должен о себе позаботится - timer, ACTL_SYNCHRO, ProcessSynchroEventW() ...
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 17:53
by ctapmex
ну да, так и есть zg 15.03.2015 03:02:46 +0200 - build 4305
1. в ProcessEditorInput не посылаются псевдоклавиши KEY_IDLE и KEY_NONE.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 18:05
by zg
2useven10 wrote: ↑Wed 23 Jan, 2019 17:46Не приходят. zg настаивает, что плагин сам должен о себе позаботится - timer, ACTL_SYNCHRO, ProcessSynchroEventW() ...
ну реально, запустить тред в котором крутить цикл while(true){Info.AdvControl(ACTL_SYNCHRO);Sleep(1000);} и в ProcessSynchroEventW дёргать уже готовый обработчик idle не должно занять сильно больше времени, чем потрачено на обсуждение этого здесь, не?
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 18:22
by 2useven10
Если сохранять текщую логику, в обработчике надо проверять как давно была нажата 'нормальная' клавиша.
Но да, всё делается не так уж сложно.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 19:06
by ctapmex
в ночном билде проверяйте.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 19:13
by buniak_a_h
2useven10 wrote: ↑Wed 23 Jan, 2019 17:44buniak_a_h, FarColorer какой (take5 или take44ever)?
Я не понял, про какой Вы спрашиваете. Но:
Far 3.0.5355 x64 с FarColorer версии 1.2.9 (build 1) - пока не докрасит, редактор "висит" (недоступен).
Far 1.75 с Colorer видимо Take5 (не знаю, как в 1-м ФАРе получить версию плагина, но архив назывался farcolorer-take5.beta2.zip - докрашивает в фоне (но намного дольше).
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 20:04
by Garrett
Еще заметил такой баг. Допустим открыл файл, раскраска есть. Поискал что-то через research, найденное выделилось, а раскраска пропала. если сдвинуть курсор, чтобы выделение пропало, то раскраска возвращается.
На 1.75 такого не было, хотя я там пользовался SandR от Спинозы.
Использую в старом Фаре colorer4ever.far.rar и colorer4ever.lib.rar от 2001г.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 20:08
by Garrett
Пробовал как-то на старом Фаре такую библиотеку, Colorer-take5.beta4, но нужная мне раскраска там сменилась, а сам Игорь не смог доделать её по моим пожеланиям, и я вернулся на старую, безукоризненную библиотеку.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 20:11
by buniak_a_h
Garrett wrote: ↑Wed 23 Jan, 2019 20:04
Еще заметил такой баг
Видимо, тот же баг:
Есть файл qqq.qqq, внутри - текст на LUA. "Насильно" назначаем из списка тип файла lua. Раскраска "проявится" только после любой клавиши. Как будто refresh не выполняется.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 20:16
by buniak_a_h
Garrett wrote: ↑Wed 23 Jan, 2019 20:08
Пробовал как-то на старом Фаре такую библиотеку, Colorer-take5.beta4, но нужная мне раскраска там сменилась, а сам Игорь не смог доделать её по моим пожеланиям, и я вернулся на старую, безукоризненную библиотеку.
А сравнить ...\hrc\common.jar от обеих версий и поправить в новом то, что Вам надо - не? Там, вроде, стандартные xml-файлы с регэкспами...
Colorer — гибкая раскраска синтаксиса в редакторе и др.
У версий 4ever и take5 существенно разная XML-схема, т.е. раскраска описывается во многом по-другому.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 22:13
by 2useven10
ctapmex,
zg wrote: ↑Wed 23 Jan, 2019 18:05
ну реально, запустить тред в котором крутить цикл
Imho таймер более подходящий инструмент. Тем более исполнено буквально - неубиваемый поток, 'неаккуратнеько'.
Может лучше при создании EditorSet запустить таймер (например: CreateTimerQueue(), CreateTimerQueueTimer()),
а при уничтожении - DeleteTimerQueueEx() ?
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Wed 23 Jan, 2019 22:50
by buniak_a_h
John Doe wrote: ↑Tue 22 Jan, 2019 13:22
Давно есть запись.
Что-то я нашёл только запись от 23.01.19 ... Наверно, хотели поместить, да забыли. Может, потому и не исправляется?
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Thu 24 Jan, 2019 05:46
by ctapmex
2useven10 wrote: ↑Wed 23 Jan, 2019 22:13ctapmex,
Imho таймер более подходящий инструмент. Тем более исполнено буквально - неубиваемый поток, 'неаккуратнеько'.
Может лучше при создании EditorSet запустить таймер (например: CreateTimerQueue(), CreateTimerQueueTimer()),
а при уничтожении - DeleteTimerQueueEx() ?
попробую с таймером. но разницы с точки зрения "неубиваемо" не будет. EditorSet - общий класс, уничтожается только при выгрузке плагина/остановке фара.
Colorer — гибкая раскраска синтаксиса в редакторе и др.
Posted: Thu 24 Jan, 2019 06:50
by ctapmex
да, с таймером лучше получилось, судя по process explorer