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

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

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

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

Far Colorer — плагин подсветки синтаксиса в редакторе, основанный на Colorer Library Игоря Русских.

- Актуальные версии основаны на Colorer Library версии take5.
- Изначальный автор плагина — Игорь Русских (lomecb, он же cail).
- После того как плагин портирован на Far 2, поддержкой занимается Алексей Добрунов (ctapmex, он же на форуме ctapmex).
- Официальная поддержка осуществляется через google-группу colorer_ru (на форуме бывает только ctapmex).

Домашняя страница библиотеки Colorer | Домашняя страница плагина для FAR | GitHub | Анонс

Плагин входит в дистрибутив Far Manager с v3.0.2948 (старые версии доступны тут)



Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.
  • Документация по формату:

onokonem
Posts: 10
Joined: Wed 03 Dec, 2008 11:15

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

Post by onokonem » Mon 15 Sep, 2014 14:28

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>
спасибо!

User avatar
tvel
Posts: 29
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl

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

Post by tvel » Thu 18 Sep, 2014 01:04

onokonem, так будет работать, это переопределение прототипа.
Но если оригинальный прототип json изменится, например баланс весов поправят, (маловероятно конечно),
то ваш прототип может сломать этот баланс.

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

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

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 18 Sep, 2014 14:10

Предлагаю добавить в "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>

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 18 Sep, 2014 14:32

А как правильно/проще назначить для конкретного типа другую цветовую схему?
Я хочу, чтобы диффы отображались на черном фоне (так же как делает "git diff"),
хотя основная схема у меня со светлым фоном.

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

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

Post by John Doe » Thu 18 Sep, 2014 14:38

Проще всего поместить файл переопределяющий схему в папку auto.
В шапке есть и другие способы.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 18 Sep, 2014 16:55

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"?

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Thu 18 Sep, 2014 17:02

BTW, имеет место



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

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

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

Post by John Doe » Thu 18 Sep, 2014 19:39

А, вы о цветовых схемах.
Не думаю что сейчас существует такая возможность.

User avatar
tvel
Posts: 29
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl

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

Post by tvel » Fri 19 Sep, 2014 08:06

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 сделана - фон принудительно в ней не красится и набор собственных регионов невелик.

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

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Fri 19 Sep, 2014 08:56

То ли плагин поломали, то ли шапка устарела. Пытаюсь задать поле "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" - работает. Но это же не гут...

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

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

Post by John Doe » Fri 19 Sep, 2014 09:20

&hrd; замените на hrd
И оберните всё в <hrd-sets>...</hrd-sets>

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Fri 19 Sep, 2014 09:28

Мда, так заработало. Но полные пути хранить не хочется...

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

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

Post by John Doe » Fri 19 Sep, 2014 09:30

Относительный можно, т.е. замените на "hrd"

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

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

Post by Maximus5 » Fri 19 Sep, 2014 09:33

Относительно чего? От hrd каталога - не подхватился. Еще попробую...

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

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

Post by John Doe » Fri 19 Sep, 2014 09:34

Собственно если заглянуть в 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

siberia-man
Posts: 69
Joined: Sat 28 Jun, 2014 23:07
Been thanked: 1 time

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

Post by siberia-man » Fri 19 Sep, 2014 09:58

John Doe
Maximus5
Я это и имел в виду в viewtopic.php?p=121410#p121410. FarColorer видит относительные пути для моих hrc-файлов и не видит относительные пути для hrd-файлов.

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

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

Post by John Doe » Fri 19 Sep, 2014 10:13

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

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

Да, не очень всё интуитивно, не спорю.

Post Reply

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