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

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

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 (старые версии доступны тут)



Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
    Пример: viewtopic.php?p=160386#p160386
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.

User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

Latest post of the previous page:

ctapmex wrote: как только мы видим совпадающее имя, старый прототип удаляется полностью.
Определённо это не так.
Ведь пример 2мя постами выше рабочий, и особо обращаю внимание на то, что в прототипе из my.hrc отсутствует определение location.
И тем не менее он как-то работает, о чём уже давно сказано в шапке.

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

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

Post by NightRoman »

John Doe, то есть мерж предлагается? Смысл, может, и есть. Но будет ли проще, неясно. А еще это может поломать то, что уже сделано. Раньше не мержилось, а будет мержиться. Лишние данные из оригинального прототипа просочаться в переопределенный. Может, не надо ничего менять? Полное переопределение, может, и чуть больше работы требует, зато все четко, как надо, так и описываем.

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

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

Post by NightRoman »

Либо исключение сделать только для location. Если в новом определении не указано, то используется старое, именно старый путь уже вычисленный. Если именно это предлагается, то стоит подумать, наверное.

User avatar
ctapmex
Posts: 1063
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 10 times
Contact:

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

Post by ctapmex »

John Doe wrote:
ctapmex wrote: как только мы видим совпадающее имя, старый прототип удаляется полностью.
Определённо это не так.
Ведь пример 2мя постами выше рабочий, и особо обращаю внимание на то, что в прототипе из my.hrc отсутствует определение location.
И тем не менее он как-то работает, о чём уже давно сказано в шапке.
я конечно это проверю, но по коду идет явное удаление всего прототипа. без вариантов. имя совпало -удалили из всех массивов.
другой момент, что колорер не ругается на отсутствие location. нет, ну и ладно. работаю дальше.

User avatar
John Doe
Бюрократ
Posts: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

ctapmex wrote: другой момент, что колорер не ругается на отсутствие location. нет, ну и ладно. работаю дальше.
Не только не ругается, но и подхватывает location от предыдущего определения этого прототипа. В шапке даже есть рекомендация по этому поводу.
NightRoman wrote: то есть мерж предлагается?
Не предлагается, а всегда был.
Неважно мерж или что-то другое, лишь бы была переопределять отдельные элементы прототипа, т.к. практика этого требует (шапка не от фонаря писана).
NightRoman wrote: Лишние данные из оригинального прототипа просочаться в переопределенный.
Не представляю где это могло бы помешать.
Если нужно, при переопределении можно задать пустышки.

User avatar
ctapmex
Posts: 1063
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 10 times
Contact:

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: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

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

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

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

P.S.
location таким образом точно сохраняется, а остальное не знаю.
Проверил <parameters> — не сохраняется.

User avatar
ctapmex
Posts: 1063
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 10 times
Contact:

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: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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: 103
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 1 time
Been thanked: 5 times

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

Post by siberia-man »

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

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

Code: Select all

grep -v '^#' "$1"

User avatar
Sim
Posts: 405
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 3 times
Been thanked: 1 time
Contact:

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

Post by Sim »

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

так выглядит крест, видимо происходит смещение позиций из-за того что юникод символ состоит из нескольких байт а отображается как 1 символ.
Случайности не случайны.

2useven10
Posts: 4039
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 185 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: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 5 times
Contact:

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

Post by Alexey Samlyukov »

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

Post Reply

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