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

vornic
Posts: 4
Joined: Fri 19 Jun, 2015 08:33

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

Post by vornic » Fri 19 Jun, 2015 10:29

Latest post of the previous page:

Нашел решение:
<prototype name="asp.js" group="inet" description="asp,master - JavaScript">
<location link="jar:common.jar!inet/asp.js.hrc"/>
<filename>/\.(as[pa]|ht[rxa]|inc|Master|master)$/i</filename>
<firstline weight='2'>/language\s*=.*j(ava)?script/i</firstline>
<firstline weight='0.5'>/^<\%\@/</firstline> <---------------------
</prototype>

User avatar
techie
Posts: 782
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 33 times
Been thanked: 3 times

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

Post by techie » Fri 19 Jun, 2015 16:13

Может дропнуть вообще эти прототипы и создавать и кешировать каталог динамически? Тогда описание каждого языка будет более менее автономным.

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

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

Post by John Doe » Tue 23 Jun, 2015 10:38

Раскраска lua даёт сбой, если при определении функции-метода двоеточие отделено пробелом:

Code: Select all

function lexer :peek (n)
  --[...]
end
(Пример из metalua)

Karagy
Posts: 57
Joined: Tue 02 May, 2006 08:43
Location: Питер
Been thanked: 3 times

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

Post by Karagy » Tue 23 Jun, 2015 13:02

lua.hrc:49:

Code: Select all

- <entity name="entname" value="([_\w]*(?{Symbol}(\.|\:)))*?[_\w]*"/>
+ <entity name="entname" value="([_\w]*\s*?(?{Symbol}(\.|\:))\s*?)*?[_\w]*"/>
подойдёт?

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

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

Post by John Doe » Tue 23 Jun, 2015 13:33

Похоже на то, спасибо.

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid » Mon 20 Jul, 2015 14:33

пытаюсь переопределить схему, ну скажем, Lua. рядом с proto.hrc кладу:

и прописываю путь к нему в конфигурации плагина.
в целом работает, но есть нюансы. файлы Lua c комментарием вида --------------- в первой строке считаются файлами diff.
по-моему, баг в плагине. если нет, то что не так с переопределением?
и еще. в шапке обещано, что можно удалить строку с location, и все будет работать по-прежнему. на самом деле, схема в списке остается, но раскраска не выполняется. поломалось, не доделано, отменено?
Фар делают добрые люди

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

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

Post by John Doe » Mon 20 Jul, 2015 14:41

Code: Select all

    <filename weight='3'>/\.(w?lua2?)$/i</filename>
И это не помешало бы скорректировать и штатном proto.hrc, так что в некотором смысле баг.
ccaid wrote: в шапке обещано, что можно удалить строку с location, и все будет работать по-прежнему
Что, буквально так сказано?
Давайте сначала: вы для чего схему переопределяете?

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

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

Post by John Doe » Mon 20 Jul, 2015 15:00

Кстати о багах.
Если в любом редакторе вызвать Colorer/R Reload schema library, то после это не запускается работает конфигурация плагина.
А если дважды запустить R Reload schema library, то при попытке вызова конфигурации плагин падает.

ccaid
Posts: 846
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 17 times
Been thanked: 5 times

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

Post by ccaid » Mon 20 Jul, 2015 16:19

John Doe wrote: в некотором смысле баг.
все таки не баг, а недопонимание принципов выбора схемы. я подзабыл, что filename не обязательное требование, а всего лишь один из признаков со своим приоритетом.
John Doe wrote: Что, буквально так сказано?
ctapmex wrote: Как переопределить существующую схему
Для этого достаточно подключить собственную схему с тем же именем (name).
Если требуется изменить только параметры схемы (filename, firstline, parameters), то достаточно прототипа, а location схемы можно не указывать.
John Doe wrote: Давайте сначала: вы для чего схему переопределяете?
изменить список расширений схемы
Фар делают добрые люди

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

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

Post by John Doe » Mon 20 Jul, 2015 17:53

Проверил, действительно это утверждение из шапки сейчас неверно:
ccaid wrote: Если требуется изменить только параметры схемы (filename, firstline, parameters), то достаточно прототипа, а location схемы можно не указывать.

interligator
Posts: 25
Joined: Tue 09 Mar, 2010 14:21
Has thanked: 4 times

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

Post by interligator » Sat 25 Jul, 2015 15:11

Пилю аутентичный monokai из Sublime (те, что прогугливаются, все неправильные).
Пока как-то так:

Нашел, как подсвечивать for и int разными цветами (c:KeywordANSI и c:KeywordANSI.typenames соответственно).
Подскажите пару моментов - первый - как сделать пробелы и табы менее заметными при включенном show whitespace (т.е. пробелы и табы покрасить чёрным, например - "Shows trailing spaces as error" тут не подходит т.к. нужны все пробелы, не только trailing). И как подсветить имена функций (не зарезервированных, а тех, что по синтаксу должны быть именами функций) зелёным, как в sublime (пробовал def:Outlined и разные Outlined из схемы но это, похоже всё не то - def:Outlined, например, не работает вообще).

Upd: кажется поймал ещё один баг - цвет whitespace не меняется, хоть умри. Вероятно, связано с "правильными" исправлениями в этом посте http://forum.farmanager.com/viewtopic.p ... 96#p104596 "5. правильная раскраска whitespace (меняем только фон, текст не красим) включается только в случае включения опции отображения whitespace в редакторе. (меньше регионов цветов в far, меньше работы)"

interligator
Posts: 25
Joined: Tue 09 Mar, 2010 14:21
Has thanked: 4 times

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

Post by interligator » Wed 02 Sep, 2015 11:03

Почему-то firstline не работает дальше первых 10 строчек. Может кто-нибудь подтвердить? Нужно было автоопредение хотя бы строчек на 50 вперед. Изменение fistlinebytes/firstlines не помогает абсолютно.

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

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

Post by HaRT » Wed 02 Sep, 2015 12:41

interligator wrote: Почему-то firstline не работает дальше первых 10 строчек. Может кто-нибудь подтвердить? Нужно было автоопредение хотя бы строчек на 50 вперед. Изменение fistlinebytes/firstlines не помогает абсолютно.
Приведите, пжлст, конкретный полный пример, а также укажите версию плагина.
Фар есть инструмент, а не нянька. © 2009 DrKnS

interligator
Posts: 25
Joined: Tue 09 Mar, 2010 14:21
Has thanked: 4 times

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

Post by interligator » Wed 02 Sep, 2015 13:42

far colorer 1.2.2.0, far 3.0 4410 x64

Code: Select all

<?xml version="1.0" encoding='utf-8'?>

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

<!--
	firstlines option is not functional
	far colorer 1.2.2.0 . 10.05.2015
	copy this file to base/hrc/auto/xml2.hrc
	example xml:
	<?xml version="1.0" encoding="utf-8"?>
    (empty 10 lines)
	override
	(works only for first 10 lines then stops working)
-->

<prototype name="xml2" group="xml2" description="xml2">
    <filename>/\.xml$/</filename>
	<firstline weight="10">/override/</firstline>
    <parameters>
      <param name="firstlines"     value="50"   description="lines for firstline"/>
      <param name="firstlinebytes" value="5000" description="bytes for firstline"/>
    </parameters>
</prototype>

<type name="xml2">
	<scheme name="xml2">
	</scheme>
</type>

</hrc>
Upd: иногда (на других типах, в частности на .conf), перестает срабатывать и на 5 строке, от чего это зависит я не понимаю (чистый эксперимент, ничего кроме пустых строк впереди нет). Настройки схемы в диалоге отображаются нормальные. Приорити задран на максимум, но откуда-то появляется верхний предел firstlines в 5-10 строк.

Upd2: в общем там как-то супер-криво написан BaseEditor::chooseFileTypeCh - берется первый матч по имени и оттуда достаются firstlines (поэтому для разных типов срабатывает по-разному). Видимо, надо заимплементить перебор всех возможных типов и разобраться с приоритетом firstlines. В качестве воркараунда можно поднять лимиты у default и прописать этот default себе в кастомный hrc, тогда срабатывание работает:

Code: Select all

<?xml version="1.0" encoding='utf-8'?>

<!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="xml2" group="xml2" description="xml2">
    <filename weight="2">/\.xml$/</filename>
   <firstline weight="6">/override/</firstline>
    <parameters>
      <param name="firstlines"     value="25"   description="lines for firstline"/>
      <param name="firstlinebytes" value="10000" description="bytes for firstline"/>
    </parameters>
</prototype>

<prototype name="default" group="default" description="firstlines bug workaround">
<filename weight='1'>//</filename>
	<parameters>
		<param name="firstlines" value="50"/>
		<param name="firstlinebytes" value="10000"/>
	</parameters>
</prototype>
<type name="default"><scheme name='default'/></type>

<type name="xml2">
   <scheme name="xml2">
   </scheme>
</type>

</hrc>

User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar » Wed 02 Sep, 2015 14:22

Какая-то ошибка с формированием списка функций.
Пример: есть ini-подобный файл. Функциями являются секции.
При любом изменении текста внутри секции и просмотре списка функций
.

Дополнение:
При открытии файла на редактирование список функций корректный.
Last edited by Aidar on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [spoiler]

User avatar
macik
Posts: 42
Joined: Wed 06 Apr, 2011 14:40

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

Post by macik » Fri 02 Oct, 2015 21:31

Как с помощью Colorer изменить цвет whitespace символов?

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

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

Post by Sim » Fri 02 Oct, 2015 22:05

macik wrote: Как с помощью Colorer изменить цвет whitespace символов?
да, сделать их не такими яркими, или вообще вместо символов цвет фона менять всем пробельным символам кроме пробела, как это делает Visualizer.
Случайности не случайны.

Post Reply

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