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.
01ssv
Posts: 50
Joined: Fri 29 May, 2009 04:01
Location: Барнаул

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

Post by 01ssv »

Latest post of the previous page:

Мелкий баг в раскраске php файла. Я думаю зеленого быть не должно
Last edited by 01ssv on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан избыточный снимок экрана
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 »

Кто может описать для FAQ процесс переопределения существующей схемы?
Должно ли новое определение обязательно идти до штатного?
Уникальным идентификатором прототипа является атрибут 'name'?
Что происходит когда есть 2 прототипа с совпадающим именем? Используется какой-то один (целиком), или они могут дополнять друг друга (переопределяя содержимое отдельных тагов/атрибутов)?

Как правильнее всего "отключить" штатную схему, если она мешает?
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

новое определение должно идти после штатного.
тип уникально идентифицируется по имени - name.
при совпадении имен типа, старый удаляется (из памяти) и зачитывается новый.
John Doe wrote: Как правильнее всего "отключить" штатную схему, если она мешает?
что значит мешает? надо чтобы она не мешала определять другие типы с похожими правилами определения типа, но работала при выборе через меню. или надо чтобы "как будто и не было её"?
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 »

Давайте рассмотрим рекомендации по обоим вариантам
https://t.me/FarManager — Telegram чат
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 »

ctapmex wrote:
John Doe wrote: Как правильнее всего "отключить" штатную схему, если она мешает?
что значит мешает? надо чтобы она не мешала определять другие типы с похожими правилами определения типа, но работала при выборе через меню. или надо чтобы "как будто и не было её"?
С первым понятно: достаточно скопировать прототип, изменив в нём 'условие срабатывания' (или как это грамотно назвать):<filename> и/или <firstline>.
Часто достаточно подкорректировать атрибут weight='2', изменив умолчательное значение (2) в ту или иную сторону.

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

P.S.
В шапке устаревшая информация: сказано будто нельзя переопределить типы через папку 'auto'. Проверено: работает.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

оказывается можно все.
переделываем тип в пакет и вуаля. в меню нет, зависимые от него работают.

Code: Select all

   <package name="ant" description=" ">
    <location link="jar:common.jar!scripts/gen/ant.hrc"/>
  </package>
Sergious
Posts: 3
Joined: Wed 26 Mar, 2014 13:17

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

Post by Sergious »

Подскажите, как сделать своим, а не черным при редактировании .php файлов???
Sergious
Posts: 3
Joined: Wed 26 Mar, 2014 13:17

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

Post by Sergious »

фон имелось ввиду..
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

Sergious wrote:Подскажите, как сделать своим, а не черным при редактировании .php файлов???
поменяй цветовой стиль в настройках, например на "Classic take4 like by Sim"
Случайности не случайны.
Sergious
Posts: 3
Joined: Wed 26 Mar, 2014 13:17

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

Post by Sergious »

а да, спасибо, чего-то не увидел вначале настроек colorer'а а сейчас нашел..
monsoon
Posts: 15
Joined: Thu 09 Oct, 2008 13:05

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

Post by monsoon »

Попробовал добавить в text.hrc раскраску комментариев html для текстовых файлов:

Code: Select all

<block start="/<!--/" end="/-->/" scheme="text" region="Comment" region00="PairStart" region10="PairEnd"/>
Она работает.
Но не получается выделить по аналогии цитаты между тегами [q] и [/q]
Пробовал start и end указывать по-разному:

Code: Select all

start="/\[q\]/" end="/\[\/q\]/"
или
start="/&#91;q&#93;/" end="/&#91;\/q&#93;/"
Пробовал также block scheme с использованием в <start> и <end> CDATA
Что-то отдаленно похожее удалось получить с regexp match:

Code: Select all

<regexp match="/[\S\s]*\m\[q\]([\S\s]*?)\[\/q\]/i" region="String"/>
\m добавлен т.к., если его нет, раскрашивается также текст на этой же строке перед блоком.
Но в итоге не раскрашивается, если открывающий тег начинается с начала строки (пробовал добавлять ^, но безуспешно) и когда закрывающий тег [/q] находится на другой строке. Кроме того, если есть вложенный блок, то выделяется только он.

Может кто знает как сделать? Выделение цветом вместе с тегами или только внутри них - не принципиально.
Также может быть подскажете, почему не работает модификация самого первого варианта?
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 »

Видимо, надо добавить нужное перед строкой

Code: Select all

<regexp match="/([A-Za-z\x80-\xFF][A-Za-z\x80-\xFF\s]+)\M [\s;=+-*&\|^\(\)\[\],\.\-!\~\%\{\}?_]|$/x" region1="Syntax"/>
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

Как бы сделать чтобы colorer не тормозил при раскраске длинных строк? как это меня достало уже...
Случайности не случайны.
User avatar
HaRT
Moderator
Posts: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Sim wrote:Как бы сделать чтобы colorer не тормозил при раскраске длинных строк? как это меня достало уже...
Натравите на него профилировщик, проанализируйте результат, расшейте узкие места и предложите патч.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

HaRT wrote:
Sim wrote:Как бы сделать чтобы colorer не тормозил при раскраске длинных строк? как это меня достало уже...
Натравите на него профилировщик, проанализируйте результат, расшейте узкие места и предложите патч.
К сожалению, я этого всего не умею делать.
Случайности не случайны.
kobri
Posts: 19
Joined: Fri 15 Nov, 2013 14:42
Been thanked: 1 time

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

Post by kobri »

HaRT wrote:Натравите на него профилировщик, проанализируйте результат, расшейте узкие места и предложите патч.
Патч делать не возьмусь, но, судя по профилировщику, основные тормоза в движке регэкспов идут:

Code: Select all

Function Name            Inclusive Samples   Exclusive Samples   Inclusive Samples %  Exclusive Samples %
CRegExp::lowParse        1202                663                 39,92                22,02
TextParserImpl::searchRE 2705                653                 89,84                21,69
TextParserImpl::searchKW 464                 246                 15,41                8,17
DString::operator[]      244                 241                 8,10                 8,00
CRegExp::parseRE         1466                214                 48,69                7,11
CRegExp::insert_stack    144                 144                 4,78                 4,78
VTList::pushvirt         88                  88                  2,92                 2,92
CRegExp::isWordBoundary  136                 85                  4,52                 2,82
String::compareTo        140                 64                  4,65                 2,13
dlfree                   54                  54                  1,79                 1,79
SString::operator[]      47                  47                  1,56                 1,56
Интересно насколько сложно будет подключить PCRE вместо встроенного движка, со включенным JIT он должен быстрее работать.
Post Reply

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