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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1099
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 25 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: 12883
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 294 times

Re: FarColorer - Документация, FAQ - где? Как им пользоваться, как настраивать?

Post by John Doe »

Latest post of the previous page:

>TrueMod включен, если меняю там - меняется. Это что, два перпендикулярных способа настройки?
Да. TrueMod надо отключить.

Краткий FAQ есть в теме колорера.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Re: FarColorer - Документация, FAQ - где? Как им пользоваться, как настраивать?

Post by Marty »

>попробовал, схема появилась.
А, нашел - почему-то появилась в конце, я ее ожидал увидеть рядом с оригинальной :)

>> А как определяется, что использовать? Far/Colorer сам детектит, под ConEmu он запущен или нет?
>TrueMod подхватывает rgb-тему, кажется.

Получается, есть просто два разных варианта раскраски - без TrueMod и с ним, а ConEmu или нет не зависит, только галочка у режима TrueMod определяет?

>> Так там только ссылки на эти hrd-схемы, а как они связываются с раскраской синтаксиса, что-то не понял.

>Там перечисление цветовых схем, где определяются псевдонимы для цветов, а эти псевдонимы уже используются в синтаксических схемах.

Ну, вот и хочется на них глянуть :) Их бы я тоже поковырял. Похоже, они в common.jar лежат - нафига обычный ZIP JAR-ом обозвали? :)
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

Re: FarColorer - Документация, FAQ - где? Как им пользоваться, как настраивать?

Post by Marty »

>Краткий FAQ есть в теме колорера.

Как всегда, спасибо за ссылку :)
User avatar
John Doe
Бюрократ
Posts: 12883
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 294 times

Re: FarColorer - Документация, FAQ - где? Как им пользоваться, как настраивать?

Post by John Doe »

Наверно вы полагаете что у меня тут в кармане набор ссылок на все случаи жизни, и они сами как блохи должны запрыгивать в сообщение?
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

Ну уверен, что правильно выбрал место, куда писать, но если что, модератор надеюсь перекинет куда надо :)
Не понял, то, что в начале тему это весь FAQ, который есть? Как-то не густо. Или я где-то что-то пропустил?

Не понял, как подправить раскраску.
Нужно изменить цвет препроцессора для C/C++. Скопировал dnlike.hrd с новым именем, добавил в catalog-console.xml.

Code: Select all

<assign name="def:Directive" fore="#5"/>
В документации http://colorer.sourceforge.net/hrc-ref/index.html выяснил, что в name надо задавать регион - type:name. Где их брать - не понятно. Распаковал zip common.jar (нафига так извратились?), поковырялся, common.jar/base/c.hrc.
Нашел:

Code: Select all

  <region name="Preproc"     parent="def:DirectiveContent"/>
  <region name="PreprocPref" parent="def:DirectiveEdge"/> <!-- # -->
  <region name="PreprocSpec" parent="def:KeywordStrong"/>
  <region name="PreprocWord" parent="def:Directive"/> <!-- !!EE: def:Keyword -->
  <region name="PreprocInclude" parent="def:Path"/>
  <region name="PreprocIncludeEdge" parent="def:StringEdge"/>
Не понятно, те это регионы, или не те :?

В мой hrd добавил

Code: Select all

  <assign name="Preproc" fore="#A"/>
  ...
Не работает.

Так:

Code: Select all

  <assign name="def:Preproc" fore="#A"/>
  ...
Тоже не работает

В начале c.hrc нашел открывающий тэг type - о, вроде оно.

Code: Select all

  <assign name="c:Preproc" fore="#A"/>
  ...
Так тоже не работает.
Все, больше идей нет, что делать - :? .

Документация вроде большая, а толка мало. Чтобы чутка что-то поменять, нужно вникать во все концепции, внимательно прочитать все 158 страниц - и все равно не понять ни черта.

По тем именам, что есть -

Code: Select all

  <assign name="def:String" fore="#C"/>
  <assign name="def:StringContent" fore="#C"/>
  <assign name="def:StringEdge" fore="#C"/>
  <assign name="def:Character" fore="#C"/>
  <assign name="def:CharacterContent" fore="#C"/>

  <assign name="def:Comment" fore="#3"/>
  <assign name="def:CommentContent" fore="#B"/>
  <assign name="def:CommentEdge"    fore="#3"/>
  <assign name="def:CommentDoc"     fore="#3"/>
  <assign name="def:CommentDocContent" fore="#B"/>
  <assign name="def:CommentDocEdge" fore="#3"/>
def:Comment, def:CommentContent, def:String, def:StringContent, def:CommentEdge - Content - наверно что внутри - строка, просто Comment, String - может, то, что НЕ внутри - скобки там обрамляющие? А что тогда Edge - что за "ребро"?

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

Руками шерстить все скрипты раскараски - это мрак, господа. В принципе, если бы колорер пробежался по всем настройкам, прочитал бы все type, выдрал бы оттуда annotation/documentation, добавил бы все расширения имен файлов, которые к типу относятся, пробежался бы по каждому типу, составил бы список регионов и потом вывел бы все собранные сведения в сводный документ хотя бы без описания регионов - уже было бы круто по сравнению с тем, что есть. А в идеале в такую автоматизацию добавить inline аннотации для регионов - и их тоже выдирать. И все - великолепный справочник готов.

Как перегрузить/применить изменения? Раньше была кнопка "Напрячься" - перегружала настройки колорера. Сейчас как - :?
Пробовал ставить другую схему - Ок, вышел, зашел - моя схема - Ок, иду проверять. Или из фара надо выходить?

Так же непонятно, как что и где прописывать, если нужно создать новую схему для неподдерживаемого языка, или как правильно расширить существующую
User avatar
John Doe
Бюрократ
Posts: 12883
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 294 times

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

Post by John Doe »

>Не понял, то, что в начале тему это весь FAQ, который есть? Как-то не густо
Да.
Можете добавить, если хотите.

>Как перегрузить/применить изменения
Кнопка есть в настройках.

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

А прочие предложения рекомендую оформить на мантис, чтобы не потерялись.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

>>Не понял, то, что в начале тему это весь FAQ, который есть? Как-то не густо
>Да.
Можете добавить, если хотите.
Когда будет что добавлять, может и добавлю. Но пока сам ничего не понимаю ;(

>>Как перегрузить/применить изменения
>Кнопка есть в настройках.
Как называется? "Тест библиотеки схем" - это она? А я подумал, что это тест какой-то - ну, тестит корректность схем, на ошибки там всякие.

>>Так же непонятно, как что и где прописывать, если нужно создать новую схему для неподдерживаемого языка
>>как правильно расширить существующую
>Из шапки должно быть понятно.
Мне не понятно ничего ;(
Вопрос такой - как поменять цвет директив препроцессора на зеленый для C/C++? Сможете на него ответить при помощи FAQ из шапки темы? Ну, или используя собственные дополнительные знания, мне в общем-то, не принципиально :)

>А прочие предложения рекомендую оформить на мантис, чтобы не потерялись.
Можно и на мантис, это не проблема. Имелось в виду мое предложение по справочнику по колореру? Ок
А предложения/просьбы по расширению FAQ куда можно добавить?
User avatar
John Doe
Бюрократ
Posts: 12883
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 294 times

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

Post by John Doe »

>Кнопка есть в настройках.
Не в настройках, а в меню плагинов
R Перезагрузить библиотеку схем

>Вопрос такой - как поменять цвет директив препроцессора на зеленый для C/C++?
Например достать схему из jar, изменить на свой вкус, и далее в шапке (Как переопределить существующую схему).
Там кратко, да.

>Имелось в виду мое предложение по справочнику по колореру?
Любые по плагину.

>А предложения/просьбы по расширению FAQ куда можно добавить?
Прямо сюда.
Но не просьбы, а готовые формулировки, после того как разберётесь.
Игорь Юдинцев
Posts: 725
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

Post by Игорь Юдинцев »

Marty wrote: Мне не понятно ничего ;(
Вопрос такой - как поменять цвет директив препроцессора на зеленый для C/C++? Сможете на него ответить при помощи FAQ из шапки темы? Ну, или используя собственные дополнительные знания, мне в общем-то, не принципиально :)
Ну, это-то как раз несложно — меняем в цветовой схеме <assign name="def:Directive" fore="#A"/>.
ЗЫ Сроду не читал документации по колореру, просто заглянул в конфиги и проверил самое логичное предположение.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

Игорь Юдинцев wrote: Ну, это-то как раз несложно — меняем в цветовой схеме <assign name="def:Directive" fore="#A"/>.
ЗЫ Сроду не читал документации по колореру, просто заглянул в конфиги и проверил самое логичное предположение.
Хитро :)
Правда, это было первое, что я попробовал. В принципе, работает, только и все остальные раскраски тоже изменились, и по большей части не в лучшую сторону :(
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

>>Кнопка есть в настройках.
>Не в настройках, а в меню плагинов
F11 - Команды плагинов? Там нет колорера. Как добраться до кнопки, какая последовательность нажатий клавиш?

>R Перезагрузить библиотеку схем
:?

>>Вопрос такой - как поменять цвет директив препроцессора на зеленый для C/C++?
>Например достать схему из jar, изменить на свой вкус, и далее в шапке (Как переопределить существующую схему).
>Там кратко, да.

Схему стандартную менять? Не пойму, зачем это делать и как это поможет. Вы уверены, что это правильный путь? Многослойная архитектура колорера же вроде для того и создавалась, чтоб на каждый чих схемы не править, не? Схема уже есть, регионы в ней описаны. Осталось только задать регионам цвета в HRD файле (из доки по колореру):
Format of HRD color schemes
HRD files used to assign some editor-specific properties to each HRC Region. Usually these include color and style information.
Вопрос в том, как правильно скрещивать HRC и HRD. И в факе ничего этого нет, ни кратко, ни как. Имеющийся стиль подключить или схему - в факе есть, сделать новый/расширить существующий HRD - нет и намека.

>>А предложения/просьбы по расширению FAQ куда можно добавить?
>>Прямо сюда.
>Но не просьбы, а готовые формулировки, после того как разберётесь.

Ок, попробую
User avatar
HaRT
Moderator
Posts: 9550
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 109 times
Been thanked: 230 times

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

Post by HaRT »

Marty wrote:F11 - Команды плагинов? Там нет колорера. Как добраться до кнопки, какая последовательность нажатий клавиш?
Вызывать из редактора; в списке искать FarColorer.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 12883
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 294 times

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

Post by John Doe »

>Вы уверены, что это правильный путь?
Нет.
И ещё я не уверен что архитектура колорера действительно так хороша, как вам хотелось бы.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

>>Вы уверены, что это правильный путь?
>Нет.
>И ещё я не уверен что архитектура колорера действительно так хороша, как вам хотелось бы.
Архитектура какая есть, пережить можно. А вот документация оставляет желать лучшего. Квик-старт страничек на пять не помешал бы.
User avatar
John Doe
Бюрократ
Posts: 12883
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 294 times

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

Post by John Doe »

>Квик-старт страничек на пять не помешал бы.
Возьмётесь?
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

HaRT wrote:
Marty wrote:F11 - Команды плагинов? Там нет колорера. Как добраться до кнопки, какая последовательность нажатий клавиш?
Вызывать из редактора; в списке искать FarColorer.
Вот спасибо - я в панелях сидел - сначала F9 - настройки цветов, потом F9 - настройки плагинов - колорер. Про редактор забыл, и что там другой набор плагинов работает, а так как в нем F9 не работает, то и не засиживался в нем.

Для FAQ.
Тонкая настройка подсветки для отдельного языка

1) Настройка подсветки происходит раздельно - сначала в HRC настраиваются регионы, затем в HRD уже существующим регионам задаются цвета. В подавляющем большинстве случаев нет необходимости менять схему раскраски, достаточно перезадать цвета отдельных регионов.
2) Замечание. При редактировании цветовой схемы (HRD) необходимо перезагружать настройки Colorer. Это производится в редакторе в меню плагинов (F11) - FarColorer (F) - Перезагрузить бибилотеку схем (R)
3) В меню Colorer'а есть несколько полезных функций - Список типов (1) - отображает все описанные типы раскраски и показывает текущую применяемую; Данные региона (A) - показывает сведения о регионе, на котором расположен курсор - его тип и имя (type:name), которые используются при назначении региону цвета.
4) Формат директивы сопоставления региону цвета в файле HRD:

Code: Select all

<assign name="type:name" fore="#X"/>
где type:name - то, что показывает [F11] - [F] - [A]
5) Есть около 50 общих типов регионов, и можно задавать расцветку, используя их типы и имена. Но при необходимости подправить расцветку в некоторой части только для отдельного типа, следует использовать их специфичные имена.

Пример раскраски директив препроцессора C/C++ зеленым цветом; имена файлов в include подсвечиваются красным, спецификаторы (параметры) директив #pragma, #error, #warning - cyan'ом:

Code: Select all

  <assign name="c:PreprocPref" fore="#A"/> <!-- lgreen - # -->
  <assign name="c:PreprocWord" fore="#A"/> <!-- lgreen -  include, pragma, error, warning, define, defined, if, ifdef etc-->
  <assign name="c:PreprocSpec" fore="#B"/><!-- cyan - pragma | error | warning text -->
  <assign name="c:Preproc" fore="#A"/> <!-- all other text -->
  <assign name="c:PreprocInclude" fore="#C"/> <!-- lred included filename -->
  <assign name="c:PreprocIncludeEdge" fore="#C"/> <!-- include quotes? - <> or "" -->
UPD В FAQ еще надо бы вставить, что включение TrueMod вне зависимости от наличия конему перекрывает напрочь стандартные цветовые настройки колорера.
Last edited by Marty on Wed 08 Oct, 2014 17:30, edited 1 time in total.
Post Reply

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