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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1241
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
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

ctapmex wrote: как только мы видим совпадающее имя, старый прототип удаляется полностью.
Определённо это не так.
Ведь пример 2мя постами выше рабочий, и особо обращаю внимание на то, что в прототипе из my.hrc отсутствует определение location.
И тем не менее он как-то работает, о чём уже давно сказано в шапке.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

John Doe, то есть мерж предлагается? Смысл, может, и есть. Но будет ли проще, неясно. А еще это может поломать то, что уже сделано. Раньше не мержилось, а будет мержиться. Лишние данные из оригинального прототипа просочаться в переопределенный. Может, не надо ничего менять? Полное переопределение, может, и чуть больше работы требует, зато все четко, как надо, так и описываем.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Либо исключение сделать только для location. Если в новом определении не указано, то используется старое, именно старый путь уже вычисленный. Если именно это предлагается, то стоит подумать, наверное.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

John Doe wrote:
ctapmex wrote: как только мы видим совпадающее имя, старый прототип удаляется полностью.
Определённо это не так.
Ведь пример 2мя постами выше рабочий, и особо обращаю внимание на то, что в прототипе из my.hrc отсутствует определение location.
И тем не менее он как-то работает, о чём уже давно сказано в шапке.
я конечно это проверю, но по коду идет явное удаление всего прототипа. без вариантов. имя совпало -удалили из всех массивов.
другой момент, что колорер не ругается на отсутствие location. нет, ну и ладно. работаю дальше.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

ctapmex wrote: другой момент, что колорер не ругается на отсутствие location. нет, ну и ладно. работаю дальше.
Не только не ругается, но и подхватывает location от предыдущего определения этого прототипа. В шапке даже есть рекомендация по этому поводу.
NightRoman wrote: то есть мерж предлагается?
Не предлагается, а всегда был.
Неважно мерж или что-то другое, лишь бы была переопределять отдельные элементы прототипа, т.к. практика этого требует (шапка не от фонаря писана).
NightRoman wrote: Лишние данные из оригинального прототипа просочаться в переопределенный.
Не представляю где это могло бы помешать.
Если нужно, при переопределении можно задать пустышки.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

John Doe
ты не прав.
делаем следующий эксперимент. берем тип файлов, который не пересекается с другими по формату, чтобы не было наводок. например такое: , сохранив под именем Faithless.cue

открываем его на редактирование, убеждаемся, что он раскрашен и тип выбрался CUE.
далее, в папке auto в файл empty.hrc добавляем блок как в оригинальном prototype: , убрав location. сохраняем, перезагружаем схемы и видим, что файл не раскрасился. но тип его определился как CUE. это подтверждает, что НЕТ наследования от предыдущего одноименного прототипа, который объявлен в proto.hrc.
так было ровно с того момента, как было разрешено добавлять одноименные прототипы, для переопределения оригинальных.

что касается механизма дополнения прототипа. даже в части filename и firstline это не целесообразно, про location нереально дополнять вторым. вы дополнили параметры относительно базовых настроек. базовые сменились - вам снова менять настройки?
но если есть аргументы за это, можно добавить ключ - дополни.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

ctapmex wrote: ты не прав.
А как насчёт посмотреть в лог на предмет ошибок?

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

А вот если ваш empty.hrc положить рядом с proto.hrc и подключить через опцию в настройках, то всё чудесным образом заработает.

P.S.
location таким образом точно сохраняется, а остальное не знаю.
Проверил <parameters> — не сохраняется.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

если мы положим мой оригинальный empty.hrc, который не содержит location, рядом с proto.hrc , то ничего ровным счетом не произойдет. в логах будет
warn : Duplicate prototype 'cue'
error: Can't open stream for type without location attribute
ну а если мы location добавим, то просто переопределим прототип, указав новые настройки, но старый файл схем.

или я что-то не понимаю. и мы не о том ?
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

ctapmex wrote: так было ровно с того момента, как было разрешено добавлять одноименные прототипы, для переопределения оригинальных.
Да, похоже действительно так..
ctapmex wrote: что касается механизма дополнения прототипа. даже в части filename и firstline это не целесообразно, про location нереально дополнять вторым. вы дополнили параметры относительно базовых настроек. базовые сменились - вам снова менять настройки?
Про "дополнение" я даже не думал..
Речь о том, чтобы полностью заменить значение того или иного параметра (filename/firstline), например указав в новом определении новую маску:

Code: Select all

<filename>/\.(cue|cue2)$/</filename>
valepakh
Posts: 4
Joined: Sun 06 Mar, 2016 17:52

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

Post by valepakh »

В подсветке скриптов bash есть баг: если в строчке, заключённой в обратные кавычки, есть решётка, то дальше всё считается комментарием
Пример

Code: Select all

    for str in `grep -v ^# $1` ; do
        prop=${str%%=*}
Что с этим можно сделать?
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

Разве bash нормально выполняет эту команду? Подохреваю, что он выводит ошибку.

Оберните строку поиска в кавычки/апострофы

Code: Select all

grep -v '^#' "$1"
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 »

Я конечно редко редактирую файлы с unicode символами, но думаю что было бы полезно исправить это:

так выглядит крест, видимо происходит смещение позиций из-за того что юникод символ состоит из нескольких байт а отображается как 1 символ.
Случайности не случайны.
2useven10
Posts: 5231
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 315 times

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

Post by 2useven10 »

Sim wrote: юникод символ состоит из нескольких байт а отображается как 1 символ.
Проблема в том, что один юникод символ (иероглиф) занимает 2 знакоместа в консоли.
Для стандартной консоли нормального решения нет.
valepakh
Posts: 4
Joined: Sun 06 Mar, 2016 17:52

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

Post by valepakh »

siberia-man wrote:Разве bash нормально выполняет эту команду? Подохреваю, что он выводит ошибку.

Оберните строку поиска в кавычки/апострофы

Code: Select all

grep -v '^#' "$1"
Это совершенно нормальный регэксп, решётка - это обычный символ.
Спасибо, обернуть помогает.
Только это не всегда возможно, проблема никуда не денется.
valepakh
Posts: 4
Joined: Sun 06 Mar, 2016 17:52

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

Post by valepakh »

valepakh wrote:
Спасибо, обернуть помогает.
Только это не всегда возможно, проблема никуда не денется.
Хмм, погонял немножко bash, да, действительно без кавычек иногда не работает, забавно.
Last edited by valepakh on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Оверквотинг
User avatar
Alexey Samlyukov
Posts: 1765
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 7 times
Contact:

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

Post by Alexey Samlyukov »

плагин стабильно валится с таким логом
Attachments
FarTrap_20160426190020.log
(42.74 KiB) Downloaded 108 times
Post Reply

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