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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Latest post of the previous page:

ctapmex,
Проверил, ENTITY с переменными окружения теперь работают. Спасибо.
KishMan
Posts: 1
Joined: Wed 15 Jan, 2014 09:01

Выделение черным кода PHP

Post by KishMan »

При подсветке синтаксиса, у меня весь код php выделяется черным текстом. От <?php и до ?>. Как отключить изменение цвета ФОНА.Т.е. подсветка кода вещь хорошая, но фон то зачем менять...
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

в большинстве случаев (может быть сильно обобщил) php идет как встроенный в html . для того, чтобы различать, где один тип синтаксиса, а где другой, для php сопоставлен цветовой регион def:Insertion.
если не нравится смена фона, то нужно создать свой цветовую стиль.
например взять стиль по умолчанию "Aqua on blue" в base\hrd\console\default.hrd , скопировать под другим именем. найти строку

Code: Select all

  <assign name="def:Insertion" fore="#B" back="#0"/>
изменить #0 на #1 , или другой цвет.
прописать новый стиль в base\hrd\catalog-console.xml
Last edited by ctapmex on Thu 16 Jan, 2014 08:37, edited 1 time in total.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

Или выбрать схему "Classic take4 like"
Случайности не случайны.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

Логирование (FarColorer)

Post by iva »

При работе в редакторе иногда возникает Exception: Aсcess violation по разным адресам из функции ProcessEditorEventW в colorer.dll, после чего приходится выгружать плагин. Чтобы отловить проблему пытаюсь включить логирование в Colorer. Нашел файл: "Far Manager\Plugins\FarColorer\base\catalog.xml". В этом файле была строка <hrc-sets log-location=""> исправил ее на <hrc-sets log-location="colorer.log">. Файла colorer.log найти не могу. Где он должен быть, или я что-то делаю не так?
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

файл создастся рядом с catalog.xml.
но он не поможет. там не то логирование, которое ожидаешь.

ошибка происходит стабильно? есть какой то алгоритм для повторения.
советую попробовать свежие сборки far. там периодически что то ломается/чинится. а плагин очень давно не менялся.
iva
Posts: 128
Joined: Sat 02 Nov, 2013 21:32
Been thanked: 3 times

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

Post by iva »

Ошибка происходит не регулярно. Пытался записывать данные, но никакой закономерности обнаружить не удалось. Повторить удавалось лишь однажды 3-4 раза подряд, потом вылетать перестало. Сначала казалось, что это как-то связано с копированием/извлечением в/из буфера по Ctrl-Z , Ctrl-V . В последний раз происходило при Replace (Ctrl-F7). Иногда просто при навигации по файлу, реже при наборе текста.
Far у меня 3.0.3525х86
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

довольно старая версия, хоть и помеченная как "стабильная". советую обновится на ночную версию.
XGuest
Posts: 4
Joined: Tue 17 Apr, 2012 14:29

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

Post by XGuest »

Доброго времени суток
Подскажите как склеить два блока
Хочу нарисовать таблицу из имен и значений.
Если в начале строки есть [@#] строку обрабатывать иначе пропустить.
Оба блока работают только по отдельности когда вместе только первый.

Code: Select all

<block start="/[@#]\m/" end="/\M\:/" scheme="Name"    region10="String"/>  
<block start="/[@#].*\:\m/"   end="/\M($|\/\/)/" scheme="Value" region="Constant" />
С наилучшими пожеланиями
XGuest
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

у тебя оба блока ждут строку , начинающуюся с @#. надо сделать примерно так

Code: Select all

 <scheme name="MyString" >
   тут размечаешь текст в строке как надо
  </scheme>

<block start="/[@#]/" end="/$/" scheme="MyString"    region10="String"/>  
XGuest
Posts: 4
Joined: Tue 17 Apr, 2012 14:29

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

Post by XGuest »

Доброго времени суток
Спасибо.
У меня вопрос по блокам
Стандартный Си Comment block /* String String */
Хочу передать все кроме вложенных комментариев.

Code: Select all

<scheme name="Comments">
 <block start="/\m\/\*{2,2}/" end="/\*\//" region="CommentDoc" scheme="MyString" />
</scheme>
<scheme name="MyString">
 <block start="/^\m/" end="/\M(\/{2}.*)$|\*\//" scheme="Parse1" region="Comment" />
</scheme>
Если убрать в хвосте параметра end убрать \*\// передает весь файл а не только блок, не пойму я же в первой с схеме уже указал, что передаю блок.

С наилучшими пожеланиями
XGuest
XGuest
Posts: 4
Joined: Tue 17 Apr, 2012 14:29

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

Post by XGuest »

Hi! Алексей
В groups.google ответить не смог, почему то сообщения удаляются.
Хотелось разобрать шапку,
Имена параметров шапки контролирую, а как контролировать значения не совсем понимаю.
Интересуют несколько вопросов:

1) Есть ли возможность из regexp match передать результат region0-F в scheme
2) Почему block не запоминает нижнюю границу
3) Что такое region0-F в regexp и можно ли их создать.

Code: Select all

/*******************************************************************************
* @Name   : Sample.cs                                    // Имя файла
* @Guid   : {5BBAED1F-75A6-4837-AA01-AE50C9494667}       // GUID файла
* @Create : 18.02.2014/21:36:18                          // Дата создания
* @Exampl : Sample.exe /?                                // Пример использования
* @Params : [?|h|help]                                   // Параметры запуска
* @DescSh : Пример                                       // Описание
* #Target : [exe|winexe|library|module] // Вариант построения бинарного файла
* #Incdir : C:\INC\                     // Добавить в сборку все файлы каталога
* #Libdir : C:\LIB                      // Добавить в сборку все модули каталога
* #Includ :                             // Дополнительные файлы сборки
* #Refere :                             // Дополнительные модули сборки
*******************************************************************************/
XGuest
Posts: 4
Joined: Tue 17 Apr, 2012 14:29

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

Post by XGuest »

Доброго времени суток Алексей

Не могу выполнить проверку значений, не мог бы ты посмотреть.
И еще раз про регион как я понимаю это не просто ссылка на существующий регион, а что-то с пред обработкой, не мог бы ты кинуть мне какой нибудь примерчик, когда смотрю файлы misc не совсем понимаю где где голова, а где ноги.

С наилучшими пожеланиями
XGuest

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" xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://colorer.sf.net/2003/hrc">
 <type name="MyTmp" ><import type="def" />
  <!-- Основная схема -->
  <scheme name="MyTmp"><inherit scheme="Pars0"/></scheme>

  <!-- Определяем тип CommentDoc -->
  <scheme name="Pars0">
    <!-- Наш - Обрабатываем -->
   <block start="/\m\/\*{2,2}/" end="/\*\//"   scheme="Pars1"   region="CommentDoc" region00="PairStart" region10="PairEnd" />
    <!-- Пропускаем -->
   <block start="/\m\/\*{1,1}/" end="/\*\//"   scheme="Comment" region="CommentDoc" region00="PairStart" region10="PairEnd" />
  </scheme>

  <!-- Определяем схему и цвет по умолчанию -->
  <scheme name="Pars1">
   <!-- Определяем вложенные комментарии -->
   <block start="/\m\/{2}/" end="/$/"          scheme="Comment" region="Comment"/>
   <!-- Определяем имя не критичных параметров -->
   <block start="/[@]\m/"   end="/\M\:/"       scheme="Name0"   region="String"/>
   <!-- Определяем Имена параметров компилятора -->
   <block start="/[#]\m/"   end="/\M\:/"       scheme="Name1"   region="def:URI"/>
   <!-- Определяем значения параметров -->
   <block start="/\:\m/"    end="/\M($|\/\/)/" scheme="Value"   region="Constant"/>
  </scheme>

  <!-- Не критичные поля -->
  <scheme name="Name0">
   <keywords region="Constant">
    <word name="Name" />     <!-- Имя  исходника [FilNam] - Не важно  -->
    <word name="Create" />   <!-- Дата создания  [Date]   - Не важно  -->
    <word name="Exampl" />   <!-- Пример         [String] - Не важно  -->
    <word name="Params" />   <!-- Параметры      [String] - Не важно  -->
    <word name="Descrp" />   <!-- Описание       [String] - Не важно  -->
    <word name="Return" />   <!-- Описание EAX   [String] - Не важно  -->
    <word name="Author" />   <!-- Автор          [String] - Не важно  -->
   </keywords>
  </scheme>

  <!-- Имена параметров компилятора -->
  <scheme name="Name1">      <!-- Имя  бинарника [FilNam] - [REGEXP] Не важно -->
   <keywords region="Constant">
    <word name="Guid" />     <!-- Guid исходника [GUID]   - [REGEXP] Важно -->
    <word name="Target" />   <!-- Тип бинарника  [Array]  - []Важно (вообще не знаю как) -->
    <word name="Keys"   />   <!-- Ключи компил.  [Array]  - []Важно (вообще не знаю как) -->
    <word name="Incdir" />   <!-- Каталог        [String] - [REGEXP] Не важно  -->
    <word name="Libdir" />   <!-- Каталог        [String] - [REGEXP] Не важно  -->
    <word name="Refere" />   <!-- Список FilNam  [String] - [REGEXP] Не важно  -->
    <word name="Includ" />   <!-- Список FilNam  [String] - [REGEXP] Не важно  -->
   </keywords>
  </scheme>

  <scheme name="Value">      <!-- Схема заглушка -->
   <keywords region="String"><word name="exe"/></keywords>
  </scheme>

  <!-- Пока не знаю как дальше проверять -->
  <!-- Проверка  GUID -->
  <scheme name="GUID">
   <regexp match="/\{[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}\})/i" region="String"/>
  </scheme>

  <!-- Списки значений полей  -->
  <scheme name="Target">
   <keywords region="String">
   </keywords>
  </scheme>

  <scheme name="Keys">
   <keywords ignorecase="yes" region="String">
   </keywords>
  </scheme>

 </type>
</hrc>

Code: Select all

/*******************************************************************************
* @Name   : Coment.cs                                    // Имя файла
* #Guid   : {CA6B6C98-9DA9-4FFE-B742-42667785E0C6}       // GUID файла
* @Create : 19.02.2014/00:29:18                          // Дата создания
* @Exampl : Coment.exe
* @Params :                                              // Параметры запуска
* @Descrp :                                              // Описание
* #Target : [exe|winexe|library|module] // Вариант построения бинарного файла
* #Incdir :   TODO                      // Добавить в сборку все файлы каталога
* #Libdir :                             // Добавить в сборку все модули каталога
* #Includ :                             // Дополнительные файлы сборки
* #Refere :                             // Дополнительные модули сборки
* GPL applies. No warranties                                             XGuest
*******************************************************************************/


/*******************************************************************************
*                     Дата/Время: 19.02.2014 00:29:18                         *
*******************************************************************************/
interligator
Posts: 25
Joined: Tue 09 Mar, 2010 14:21
Has thanked: 4 times

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

Post by interligator »

А как бы его заставить подсвечивать блоки <?php внутри *.html файлов? Вроде бы автоопределение синтаксиса должно срабатывать, нет?
01ssv
Posts: 50
Joined: Fri 29 May, 2009 04:01
Location: Барнаул

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

Post by 01ssv »

Мелкий баг в раскраске php файла. Я думаю зеленого быть не должно
Last edited by 01ssv on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан избыточный снимок экрана
Post Reply

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