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

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

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

Post by ctapmex » Wed 04 May, 2005 14:45

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
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.

01ssv
Posts: 50
Joined: Fri 29 May, 2009 04:01
Location: Барнаул

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

Post by 01ssv » Tue 18 Mar, 2014 03:37

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: 12519
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 228 times

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

Post by John Doe » Thu 20 Mar, 2014 11:00

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

Как правильнее всего "отключить" штатную схему, если она мешает?

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

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

Post by ctapmex » Thu 20 Mar, 2014 16:15

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

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

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

Post by John Doe » Thu 20 Mar, 2014 18:01

Давайте рассмотрим рекомендации по обоим вариантам

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

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

Post by John Doe » Fri 21 Mar, 2014 14:22

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

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

P.S.
В шапке устаревшая информация: сказано будто нельзя переопределить типы через папку 'auto'. Проверено: работает.

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

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

Post by ctapmex » Sat 22 Mar, 2014 15:38

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

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 » Wed 26 Mar, 2014 13:22

Подскажите, как сделать своим, а не черным при редактировании .php файлов???

Sergious
Posts: 3
Joined: Wed 26 Mar, 2014 13:17

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

Post by Sergious » Wed 26 Mar, 2014 13:22

фон имелось ввиду..

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

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

Post by Sim » Wed 26 Mar, 2014 13:24

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

Sergious
Posts: 3
Joined: Wed 26 Mar, 2014 13:17

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

Post by Sergious » Wed 26 Mar, 2014 13:56

а да, спасибо, чего-то не увидел вначале настроек colorer'а а сейчас нашел..

monsoon
Posts: 15
Joined: Thu 09 Oct, 2008 13:05

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

Post by monsoon » Thu 03 Apr, 2014 08:54

Попробовал добавить в 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 » Thu 03 Apr, 2014 11:08

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

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: 404
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 3 times
Been thanked: 1 time
Contact:

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

Post by Sim » Thu 03 Apr, 2014 11:17

Как бы сделать чтобы colorer не тормозил при раскраске длинных строк? как это меня достало уже...
Случайности не случайны.

User avatar
HaRT
Moderator
Posts: 9139
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 173 times

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

Post by HaRT » Thu 03 Apr, 2014 11:41

Sim wrote:Как бы сделать чтобы colorer не тормозил при раскраске длинных строк? как это меня достало уже...
Натравите на него профилировщик, проанализируйте результат, расшейте узкие места и предложите патч.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by Sim » Thu 03 Apr, 2014 13:11

HaRT wrote:
Sim wrote:Как бы сделать чтобы colorer не тормозил при раскраске длинных строк? как это меня достало уже...
Натравите на него профилировщик, проанализируйте результат, расшейте узкие места и предложите патч.
К сожалению, я этого всего не умею делать.
Случайности не случайны.

kobri
Posts: 15
Joined: Fri 15 Nov, 2013 14:42
Been thanked: 1 time

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

Post by kobri » Sat 05 Apr, 2014 14:00

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 он должен быстрее работать.

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

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

Post by ctapmex » Sun 06 Apr, 2014 04:41

kobri wrote: Интересно насколько сложно будет подключить PCRE вместо встроенного движка, со включенным JIT он должен быстрее работать.
с сохранением всех текущих возможностей - сложно.
текущий движок регекс простой, тормоза не из-за его скорости. скорее от того как оно все используется.

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

Post Reply

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