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
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Latest post of the previous page:

Aidar wrote:Странно, никогда не замечал такого в своих файлах. Может быть, приведёте весь файл и укажете версию FAR?
Без курсора
Без курсора
local_1.png (5.41 KiB) Viewed 7073 times
С курсором
С курсором
local_2.png (5.39 KiB) Viewed 7073 times
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Kerberos464 wrote:эти три строки - и есть весь файл, хотя можно даже ещё короче:
  1. local var1 = 1
  2.  
  3. local var2 = {}
слово local имеет разный цвет в первой и второй строке, даже когда курсор не находится на любой из этих строк.
far 3.0.3895 x86.
Скачал и установил Far30b3895.x86.20140512.7z (только со стандартными плагинами, FarColorer со стандартными схемами), в обоих файлах строки раскрашиваются нормально независимо от позиции курсора.
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Вот кусок схемы для lua:
  1. <block start="/^\M((local)) (?{Section}\s+ [_\w]+) \s* \= \s* \{/x"
  2.  
  3.            end="/^~local \s+ [_\w]+ \s* ((\=)) \s* \M \{/x" scheme="LuaCore"
  4.  
  5.            region01="Operator"  region11="Operator"
  6.  
  7.            region02="PairStart" region12="PairEnd"/>
Посмотрите цвет для Operator.
User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

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

Post by Kerberos464 »

оказывается, это у меня настройки колорера давали такой эффект, с каких-то времён осталось.
сбросил все настройки - всё стало хорошо =) спасибо за помощь.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

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

Post by AleXH »

, раскрашивающий скрипты по заголовкам в *.tmp файлах (из полей диалогов по F4), кладётся в папку Auto. Как в location link указать относительный путь к выше лежащему common.jar?
Например,

Code: Select all

<location link="../jar:common.jar!base/lua.hrc"/>
не работает.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Попробуйте jar:../common.jar!base/lua.hrc
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

после 3968 колорер циклится, при [x] Change Editor background.
  1. intptr_t WINAPI ProcessEditorEventW(const struct ProcessEditorEventInfo *pInfo)
  2.  
  3. {
  4.  
  5.   if (!editorSet){
  6.  
  7.     editorSet = new FarEditorSet();
  8.  
  9.   }
  10.  
  11.   return editorSet->editorEvent(pInfo);
  12.  
  13. };
приходит EE_READ, editorSet==nullptr, зовётся FarEditorSet(), зовётся ReloadBase, SetBgEditor, ACTL_SETARRAYCOLOR. последнее приводит к перерисовке всех окон и вызову ProcessEditorEventW, editorSet всё ещё nullptr. и всё повторяется по кругу.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Мне попался makefile с таким куском кода

Code: Select all

LINK_MODULES = \
    M1 \ # M1
    M2 \ # M2
"M2 \" подсвечено как ошибка колорером. Я не знаток мейкфайлов. Это действительно кривой синтаксис или схема недостаточно гибкая? Если комментарии убрать, то красится без ошибок.

(В одном проекте тут навалом таких мейкфайлов, в глазах рябит от ошибок раскраски. И комментарии нужны согласно соглашениям в проекте.)
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

Столкнулся с неочевидным.

Собственные настройки (схемы и стили) плагина располагаются отдельно от %FARHOME% и %FARPROFILE% в каталоге %FARPROFILE%/../FarColorer/.

Файл списка схем %FARPROFILE%/../FarColorer/hrc/proto.hrc. Пути до моих схем могу указывать относительно этого файла. Все работает.

Файл цветовых стилей %FARPROFILE%/../FarColorer/hrd/catalog.xml. Пути до моих стилей надо указывать абсолютные, то есть %FARPROFILE%/../FarColorer/hrd/имя-файла-стиля. Иначе стили не подключаются.

Подскажите, пожалуйста, это баг или я что-то упустил при настройке плагина.

Плагин из стабильных сборок (в других - не знаю, так как до этого свои схемы/стили не выносил в отдельный каталог)

Far30b3900.x86.20140513
Far30b4000.x86.20140714
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

siberia-man wrote:Файл цветовых стилей %FARPROFILE%/../FarColorer/hrd/catalog.xml.
Можно использовать сущность &hrd;, см. например catalog-console.xml

Или изучите опции плагина (Configure), там можно указать пути к собственным файлам.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

Сущности в данном случае бесполезны - они указывают всего лишь на имя подкаталога (hrc или hrd). А плагин рассматривает их относительно %FARHOME%/Plugins/FarColorer/base. Идея в том, чтобы вынести собственные настройки за пределы каталога %FARHOME%. Просто в случае с hrc можно указать имя файла схемы отностиельно файла списка схем, а в случае hrd - надо указывать полный путь до файла стиля.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

siberia-man wrote:а в случае hrd - надо указывать полный путь до файла стиля.
Что такое "в случае hrd"?
В catalog-console.xml например пути относительно catalog.xml, а вовсе не полные пути.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

Немного переделал, чтобы не вносить путаницу между стандартными и собственными каталогами hrc/hrd. Но проблема остается.

FAR лежит в каталоге %FARHOME%. Стандартные плагины, установленные "из коробки" лежат там же - %FARHOME%/Plugins.
Все, что доустановлено в FAR мной лично, лежит в отдельном каталоге в %FARPROFILE%.
Мои настройки для FarColorer лежат рядом - %FARPROFILE%/../FarColorer.

Вот мои настройки


Файл списка схем:
%FARPROFILE%/../FarColorer/schemes.hrc . Мои схемы лежат в подкаталоге schemes. В <location link=> путь относительный.

Файл списка стилей:
%FARPROFILE%/../FarColorer/styles.xml . Мои стили лежат в подкаталоге styles. Я не могу написать относительный путь <location link="styles/gentle-console.hrd">. Colorer не увидит файл стилей.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Сейчас колорер ожидает путь относительно catalog.xml, а путь к нему вы не настраивали.

То о чём вы говорите тоже понятно, посмотрим что ответит автор.

Сейчас же вы можете попробовать прямо в своём styles.xml определить новую сущность.
<!ENTITY myhrc "%FARPROFILE%/../FarColorer/styles">.
И использовать её в дальнейших определениях.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

Да. Путь до catalog.xml я не настраивал. Но схемы загружаются, стили - нет. Сущности не работают - при открытии редактора выдает ошибку парсинга styles.xml
tstr
Posts: 557
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

После билда 4040 при наличии плагина TrueTemplate (актуальная версия с PlugRing для FAR3) на чистом профиле и стандартных конфигах TrueTemplate и Colorer, в настройках Colorer ставим "[x] Change Editor background", во время открытия любого файла на редактирование падаем с трап-логом
FarTrap_20140813114112.7z
(21.14 KiB) Downloaded 78 times
на IA32 и AMD64 версиях поведение одинаковое.

Не исключено, что "виноват" плагин TrueTemplate, хотелось бы установить источник проблемы.
Post Reply

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