Page 165 of 239

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

Posted: Wed 04 May, 2005 14:45
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 (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.

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

Posted: Mon 15 Sep, 2014 14:28
by onokonem

Latest post of the previous page:

о, так работает

Code: Select all

Plugins\FarColorer\base\hrc\auto\avpr.hrc

Code: Select all

<?xml version="1.0" encoding='Windows-1251'?>
<!DOCTYPE hrc PUBLIC 
	"-//Cail Lomecb//DTD Colorer HRC take5//EN" 
	"http://colorer.sf.net/2003/hrc.dtd" 
>
<hrc version="take5" xmlns="http://colorer.sf.net/2003/hrc"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd"
 >

 <prototype name="json" group="rare" description="JSON">
  <location link="jar:../common.jar!rare/json.hrc"/>
  <filename weight='3'>/\.json$/i</filename>
  <filename weight="3">/\.avpr$/i</filename>
 </prototype>
</hrc>
спасибо!

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

Posted: Thu 18 Sep, 2014 01:04
by tvel
onokonem, так будет работать, это переопределение прототипа.
Но если оригинальный прототип json изменится, например баланс весов поправят, (маловероятно конечно),
то ваш прототип может сломать этот баланс.

Как не ломать определение json, создавая новую "сущность" avpr с наследованием типа, пример ("textd") есть выше,
John Doe прав - определяете прототип name="avpr", значит нужно опеределять и тип+схему "avpr".

Очевидно, у вас заявка на то что файлы с расширением .avpr являются типом json,
значит правка нужна оригинала прототипа авторами плагина.

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

Posted: Thu 18 Sep, 2014 14:10
by Maximus5
Предлагаю добавить в "Diff/Patch" определение коммитов гита.

Code: Select all

<firstline weight='2'>/^((commit)\s+(\w+))/si</firstline>

Code: Select all

  <prototype name="diff" group="other" description="Diff/Patch">
    <location link="jar:common.jar!misc/diff.hrc"/>
    <filename>/\.(diff.*|patch|rej(ect)?)$/i</filename>
    <firstline weight='2'>/^(diff|Index|---|\+\+\+|\*\*\*)/si</firstline>
    <firstline weight='2'>/^((commit)\s+(\w+))/si</firstline>
    <firstline>/^(\d+,\d+\w\d+ | \d+\w\d+)/i</firstline>
    <firstline>/^cvs/i</firstline>
    <parameters>
      <param name="trailing-space"      value="false" description="Mark trailing spaces as errors"/>
      <param name="space-before-tab"    value="false" description="Mark leading spaces before tabs as errors"/>
      <param name="indent-with-non-tab" value="false" description="Mark 8 or more leading spaces as errors"/>
      <param name="indent-with-tab"     value="false" description="Mark leading tabs as errors"/>
    </parameters>
  </prototype>

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

Posted: Thu 18 Sep, 2014 14:32
by Maximus5
А как правильно/проще назначить для конкретного типа другую цветовую схему?
Я хочу, чтобы диффы отображались на черном фоне (так же как делает "git diff"),
хотя основная схема у меня со светлым фоном.

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

Posted: Thu 18 Sep, 2014 14:38
by John Doe
Проще всего поместить файл переопределяющий схему в папку auto.
В шапке есть и другие способы.

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

Posted: Thu 18 Sep, 2014 16:55
by Maximus5
OK, спрошу по другому. В auto есть переопределенный тип.

Code: Select all

<prototype name="diff" group="other" description="Diff/Patch">
    <location link="jar:../common.jar!misc/diff.hrc"/>
    <firstline weight='10'>/^((commit)\s+(\w+))/si</firstline>
    ...
Как сделать так, чтобы для него работала схема "Black (scarlet)" место основной "Visual by Roman Kuzmin"?

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

Posted: Thu 18 Sep, 2014 17:02
by Maximus5
BTW, имеет место



и несимпатичное положение списка типов (F11 FarColorer 1). Нижняя рамка меню упирается в нижний край консоли.

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

Posted: Thu 18 Sep, 2014 19:39
by John Doe
А, вы о цветовых схемах.
Не думаю что сейчас существует такая возможность.

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

Posted: Fri 19 Sep, 2014 08:06
by tvel
Maximus5 wrote:Как сделать так, чтобы для него работала схема "Black (scarlet)" место основной "Visual by Roman Kuzmin"?
Можно создать свой стиль HRD на основе основной "Visual by Roman Kuzmin" с дополнениями "Black (scarlet)",
где по правилам "Black (scarlet)" будут краситься только типы специфичные для diff:

Code: Select all

      <region name="diffCmdLine" parent="def:Directive"/>
      <region name="diffSngLine" parent="def:Parameter"/>
      <region name="diffOrg" parent="def:StringContent"/>
      <region name="diffFiles" parent="def:VarStrong"/>
      <region name="diffNew" parent="def:String"/>
      <region name="diffChanged" parent="def:Keyword"/>
      <region name="diffNumb" parent="def:Number"/>
      <region name="diffModif" parent="def:Label"/>
      <region name="CommandOutline" parent="def:Outlined"/>
      <region name="FileNameOutline" parent="def:Outlined"/>
Для HRC это разные регионы, HRD их сопоставит с parent= только если они не определены.
Но к сожалению общий фон текста (и прочие не учтённые в diff элементы) как в "Black (scarlet)" работать не будут,
так схема diff сделана - фон принудительно в ней не красится и набор собственных регионов невелик.

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

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

Posted: Fri 19 Sep, 2014 08:56
by Maximus5
То ли плагин поломали, то ли шапка устарела. Пытаюсь задать поле "Users file of color styles" в настройке. Получаю невразумительное:

Code: Select all

╔═══════════════════════════════════════════ FarColorer ═══════════════════════════════════════════╗
║                                       Problem with Colorer                                       ║
║ ParserFactoryException: Error reading T:\Far30.Latest\Plugins\FarColorer\base\hrd\catalog_my.xml ║
╟──────────────────────────────────────────────────────────────────────────────────────────────────╢
║                                              { Ok }                                              ║
╚══════════════════════════════════════════════════════════════════════════════════════════════════╝
Process Monitor показывает, что файл плагин таки считывает, но дальше этого не идет. Сам файл вот.

Code: Select all

<hrd class="rgb" name="MaximusWhite" description="Maximus white (rgb)">
	<location link="&hrd;/rgb/my/Maximus.hrd"/>
</hrd>
Если эти же строки добавить в "catalog-rgb.xml" - работает. Но это же не гут...

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

Posted: Fri 19 Sep, 2014 09:20
by John Doe
&hrd; замените на hrd
И оберните всё в <hrd-sets>...</hrd-sets>

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

Posted: Fri 19 Sep, 2014 09:28
by Maximus5
Мда, так заработало. Но полные пути хранить не хочется...

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

Posted: Fri 19 Sep, 2014 09:30
by John Doe
Относительный можно, т.е. замените на "hrd"

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

Posted: Fri 19 Sep, 2014 09:33
by Maximus5
Относительно чего? От hrd каталога - не подхватился. Еще попробую...

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

Posted: Fri 19 Sep, 2014 09:34
by John Doe
Собственно если заглянуть в catalog.xml то обнаружите что сущность &hrd; и определена просто как hrd, т.е. и тут относительный путь.

Можно определять и свои сущности, например:

Code: Select all

<?xml version="1.0" encoding='UTF-8'?>
<!DOCTYPE catalog PUBLIC "-//Cail Lomecb//DTD Colorer CATALOG take5//EN"
  "http://colorer.sf.net/2003/catalog.dtd"[
  
<!ENTITY hrd "hrd">
 
]>

  <hrd-sets>
    <hrd class="console" name="YYYY"   description="YYYY">
      <location link="&hrd;/console/black.hrd"/>
    </hrd>
  </hrd-sets>
А вот относительно чего - это правильный вопрос.
Скорее всего относительно catalog.xml

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

Posted: Fri 19 Sep, 2014 09:58
by siberia-man
John Doe
Maximus5
Я это и имел в виду в http://forum.farmanager.com/viewtopic.p ... 10#p121410. FarColorer видит относительные пути для моих hrc-файлов и не видит относительные пути для hrd-файлов.