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.
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 »

Latest post of the previous page:

siberia-man
Этому есть простое объяснение: catalog-console.xml и прочие оформлены как "инклуды" в catalog.xml, поэтому путь относительно catalog.xml.

Скопируйте штатный catalog.xml в нужное место, и укажите путь в настройках.

Да, не очень всё интуитивно, не спорю.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

Копирование штатного catalog.xml приведет к тому, что стандартное оформление "слетит". Разве не так?

И все таки это не объясняет, а больше запутывает. hrc файлы тоже подключаются как "инклуды", но путь до них можно указать относительный. И в случае стандартных hrc файлов (которые в каталоге плагина) они берутся относительно каталога плагина, а в случае пользовательских - берутся относительно пользователского файла списка схем. А вот пользовавельские hrd файлы берутся всегда относительно каталога плагина (или глобального catalog.xml). При этом пользовательские файл списка схем и файл цветовых стилей указан в настройках плагина.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

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

Post by Maximus5 »

В общем, черный фон к diff/commit прикрутил, может кому еще полезно будет.



В сочетании с и алиасами gs/gd получилось удобно.
Attachments
git-diff-base.7z
(3.29 KiB) Downloaded 86 times
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 »

siberia-man wrote:Копирование штатного catalog.xml приведет к тому, что стандартное оформление "слетит". Разве не так?
Путь к файлу со стандартными прототипами можно откорректировать. Доступны и переменные окружения.
И все таки это не объясняет, а больше запутывает.
Значит просто поверьте на слово.
А пожелания стоит зарегистрировать на мантисе, иначе потеряются.
helg
Posts: 1
Joined: Tue 23 Sep, 2014 16:27

Подсветка "else ifeq" в makefile

Post by helg »

В строке "else ifeq ($(OS),Darwin)" фрагменты подсвечены красным (значит, там ошибки). gmake4 на файл не ругается.
Far 3.0.4040 x64

---Makefile ---
ifeq ($(OS),Windows)
#Windows
else ifeq ($(OS),Darwin)
#MAC
else
#Common Unix
endif
-----------
makefile-coloring-Far-3.0.4040-x64.gif
makefile-coloring-Far-3.0.4040-x64.gif (6.48 KiB) Viewed 6326 times
User avatar
tvel
Posts: 38
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl
Has thanked: 5 times

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

Post by tvel »

Формат catalog.xml таков:

Code: Select all

<complexType name="hrc-sets">
    <sequence>
      <element name="location" type="location" maxOccurs="unbounded"/>
    </sequence>
    <attribute name="log-location" type="xs:string">
    </attribute>
  </complexType>

  <complexType name="hrd-sets">
    <sequence>
      <element name="hrd" type="hrd-entry" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
Что не совсем справедливо/удобно. Может лучше приблизить "прототипирование" у HRD к тому как у HRC?

Code: Select all

<complexType name="hrd-sets">
    <sequence>
      <element name="location" type="location" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
Чтоб было возможно

Code: Select all

  <hrd-sets>
    &catalog-console;
    &catalog-rgb;
    &catalog-text;
    <location link="&hrd;/auto"/>
  </hrd-sets>
в catalog.xml? И описания HRD подхватывались бы автоматически.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

Здравствуйте!
Переношу свои схемы для колорера от старого 1.75ого фара. Я и там уже все позабыл, а в новом колорере похоже многое поменялось.
В поставке нет никакой документации вообще, где ее искать - не понятно.

Как похоже на первый взгляд, весь фарш в каталоге FarColorer\base
Что такое

Code: Select all

hrc
hrd
catalog.xml
hrd - вроде то, что нужно. Скопировал hrd\console\dnlike.hrd с новым именем, прописал в base\hrd\catalog-console.xml. В настройках плагина ничего не поменялось, перезапуск фара не помог.

Далее, не понятно, где мне раскраску править - в console или в rgb?
В настроках плагина меняю "Выбор цветогого стиля" - ничего не меняется. TrueMod включен, если меняю там - меняется. Это что, два перпендикулярных способа настройки? TrueMod, как я понял, просто позволяет тюнить цвета от стандартных консольных до труколорных. А всякие схемы должны не в нем настраиваться. Но текущее поведение как-то не похоже.

По hrd

Code: Select all

<assign name="def:TypeKeyword" fore="#bb7977"/>
Где искать, какие name могут быть? Или я сам задаю их, а потом где-то использую эти имена?

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

Ну, вообщем, для начала вроде всё, пока вопросов больше не имею :)
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

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

> hrd - вроде то, что нужно. Скопировал hrd\console\dnlike.hrd с новым именем, прописал в base\hrd\catalog-console.xml. В настройках плагина ничего не поменялось, перезапуск фара не помог.

Нужно править catalog-console.xml.

> Далее, не понятно, где мне раскраску править - в console или в rgb?

Зависит от того, в консоли или под ConEmu запущен FAR.

> TrueMod, как я понял, просто позволяет тюнить цвета от стандартных консольных до труколорных. А всякие схемы должны не в нем настраиваться. Но текущее поведение как-то не похоже.

TrueMod для ConEmu.

> Где искать, какие name могут быть? Или я сам задаю их, а потом где-то использую эти имена?
> Параметры плагинов - FarColorer - Настройки схем. Диалог - это круто, но я не понял, а где эти конфиги лежат? Мне бы их ручками удобнее поправить было бы.

catalog-console.xml.
Marty
Posts: 170
Joined: Sun 29 Jan, 2006 12:29

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

Post by Marty »

Игорь Юдинцев wrote:> hrd - вроде то, что нужно. Скопировал hrd\console\dnlike.hrd с новым именем, прописал в base\hrd\catalog-console.xml. В настройках плагина ничего не поменялось, перезапуск фара не помог.

Нужно править catalog-console.xml.
Так поправил и там - скопировал элементы от оригинального dnlike - сделал

Code: Select all

    <hrd class="console" name="dnlikemag"  description="Gray a'la DN by Martynov">
      <location link="&hrd;/console/dnlikemag.hrd"/>
    </hrd>
Ничего не поменялось, новой схемы в настройках плагина как не было, так и нет.
Игорь Юдинцев wrote:> Далее, не понятно, где мне раскраску править - в console или в rgb?

Зависит от того, в консоли или под ConEmu запущен FAR.
console - это для стандартной виндовой консольки? Ок, это мой вариант. А как определяется, что использовать? Far/Colorer сам детектит, под ConEmu он запущен или нет?
Игорь Юдинцев wrote:> TrueMod, как я понял, просто позволяет тюнить цвета от стандартных консольных до труколорных. А всякие схемы должны не в нем настраиваться. Но текущее поведение как-то не похоже.

TrueMod для ConEmu.
Но у меня, если его включить, он напрочь перекрывает стандартные схемы, их меняешь - не меняешь, результат определяется только схемой TrueMod'а
Игорь Юдинцев wrote:> Где искать, какие name могут быть? Или я сам задаю их, а потом где-то использую эти имена?
> Параметры плагинов - FarColorer - Настройки схем. Диалог - это круто, но я не понял, а где эти конфиги лежат? Мне бы их ручками удобнее поправить было бы.

catalog-console.xml.
Так там только ссылки на эти hrd-схемы, а как они связываются с раскраской синтаксиса, что-то не понял.
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

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

> Так поправил и там - скопировал элементы от оригинального dnlike - сделал
> Ничего не поменялось, новой схемы в настройках плагина как не было, так и нет.

попробовал, схема появилась.

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

TrueMod подхватывает rgb-тему, кажется.

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

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

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

Post by John Doe »

>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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

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

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

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

А прочие предложения рекомендую оформить на мантис, чтобы не потерялись.
Post Reply

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