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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1241
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.
Karagy
Posts: 57
Joined: Tue 02 May, 2006 08:43
Location: Питер
Been thanked: 3 times

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

Post by Karagy »

Latest post of the previous page:

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

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

Post by John Doe »

Похоже на то, спасибо.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

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

Post by ccaid »

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

и прописываю путь к нему в конфигурации плагина.
в целом работает, но есть нюансы. файлы Lua c комментарием вида --------------- в первой строке считаются файлами diff.
по-моему, баг в плагине. если нет, то что не так с переопределением?
и еще. в шапке обещано, что можно удалить строку с location, и все будет работать по-прежнему. на самом деле, схема в списке остается, но раскраска не выполняется. поломалось, не доделано, отменено?
Фар делают добрые люди
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Code: Select all

    <filename weight='3'>/\.(w?lua2?)$/i</filename>
И это не помешало бы скорректировать и штатном proto.hrc, так что в некотором смысле баг.
ccaid wrote: в шапке обещано, что можно удалить строку с location, и все будет работать по-прежнему
Что, буквально так сказано?
Давайте сначала: вы для чего схему переопределяете?
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Кстати о багах.
Если в любом редакторе вызвать Colorer/R Reload schema library, то после это не запускается работает конфигурация плагина.
А если дважды запустить R Reload schema library, то при попытке вызова конфигурации плагин падает.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

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

Post by ccaid »

John Doe wrote: в некотором смысле баг.
все таки не баг, а недопонимание принципов выбора схемы. я подзабыл, что filename не обязательное требование, а всего лишь один из признаков со своим приоритетом.
John Doe wrote: Что, буквально так сказано?
ctapmex wrote: Как переопределить существующую схему
Для этого достаточно подключить собственную схему с тем же именем (name).
Если требуется изменить только параметры схемы (filename, firstline, parameters), то достаточно прототипа, а location схемы можно не указывать.
John Doe wrote: Давайте сначала: вы для чего схему переопределяете?
изменить список расширений схемы
Фар делают добрые люди
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Проверил, действительно это утверждение из шапки сейчас неверно:
ccaid wrote: Если требуется изменить только параметры схемы (filename, firstline, parameters), то достаточно прототипа, а location схемы можно не указывать.
interligator
Posts: 25
Joined: Tue 09 Mar, 2010 14:21
Has thanked: 4 times

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

Post by interligator »

Пилю аутентичный 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 »

Почему-то firstline не работает дальше первых 10 строчек. Может кто-нибудь подтвердить? Нужно было автоопредение хотя бы строчек на 50 вперед. Изменение fistlinebytes/firstlines не помогает абсолютно.
User avatar
HaRT
Moderator
Posts: 10865
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

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 »

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 »

Какая-то ошибка с формированием списка функций.
Пример: есть 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 »

Как с помощью Colorer изменить цвет whitespace символов?
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

macik wrote: Как с помощью Colorer изменить цвет whitespace символов?
да, сделать их не такими яркими, или вообще вместо символов цвет фона менять всем пробельным символам кроме пробела, как это делает Visualizer.
Случайности не случайны.
interligator
Posts: 25
Joined: Tue 09 Mar, 2010 14:21
Has thanked: 4 times

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

Post by interligator »

Насчет whitespace символов - там еще нашел баг с truecolor - whitespace по умолчанию рисуются цветом текста, но в обратном порядке (т.е. #BBGGRR вместо #RRGGBB).
On a totally unrelated note - хотелось бы все-таки каталог auto ещё и для hrd, не только для hrc. Про это уже где-то писали в форуме.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

Очень достает долгое открытие файлов с длинными строками, иногда до нескольких минут замораживает интерфейс фара. Неужели нельзя сделать так, чтобы Colorer не замораживал интерфейс во время раскраски файла? Я думаю было бы вполне нормально если бы файл открывался на редактирование сразу не раскрашенный, а Colorer постепенно делал свою работу в фоне и раскрашивал синтаксис.
Никакие настройки maxlength не помогают решить проблему тормозов при открытии файлов.
Случайности не случайны.
Post Reply

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