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

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

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 (старые версии доступны тут)



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

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

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

Post by HaRT »

Latest post of the previous page:

ctapmex wrote:
Wed 15 Apr, 2020 18:22
убью их в начале 2021
Хорошо бы это объявить в Release Notes той версии, в которой появляется поддержка нового API, а также в документации самогО старого API.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
ctapmex
Posts: 1070
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 20 times
Contact:

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

Post by ctapmex »

добавил еще макро-функций.
https://github.com/colorer/FarColorer/b ... /macros.md

из старых не покрыто новыми только изменение статуса плагина.
покрою еще управление базовыми переключателями в настройках. далее через пожелания.

buniak_a_h
Posts: 1883
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 170 times
Contact:

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

Post by buniak_a_h »

https://github.com/colorer/FarColorer/blob/master/docs/macros.md#работа-с-функциями wrote:Работа с функциями
Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Functions",<Action>)
<Action>: принимает следующие значения

"Show" - Показать окно со списком функций
"Find" - Найти функцию, на которой стоит курсор
Не хватает функции List - вернуть (не вывести!) список функций


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

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

Post by John Doe »

Code: Select all

Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Settings",<Name>...
Работает только в редакторе. Почему-то.

Code: Select all

"CrossVisible" - Видимость и тип креста в редакторе
Возвращает фактический статус видимости креста для данного редактора.
Число: 0 - не отображается; 1 - полный крест; 2 - вертикальный; 3 - горизонтальный
0 - не отображается
1 - вертикальный
2 - горизонтальный
3 - полный (1+2)

CrossStatus имхо не нужен, можно возвращать вторым значением к предыдущей команде (true - собственное значение, false - из схемы).

И отдельная команда CrossType тоже видимо не нужна, можно использовать дополнительный параметр к предыдущей.

buniak_a_h
Posts: 1883
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 170 times
Contact:

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

Post by buniak_a_h »

John Doe wrote:
Sat 18 Apr, 2020 14:17
Работает только в редакторе. Почему-то.
Может, чтобы работало вне редактора, нужно указывать имя схемы, для которой запрашивается/устанавливается настройка? А при вызове из редактора - для текущей?
Т.е. АПИ для вызова из разных контекстов д.б. разное…
Last edited by buniak_a_h on Sat 18 Apr, 2020 14:43, edited 1 time in total.

User avatar
ctapmex
Posts: 1070
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 20 times
Contact:

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

Post by ctapmex »

John Doe wrote:
Sat 18 Apr, 2020 14:17

Code: Select all

Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Settings",<Name>...
Работает только в редакторе. Почему-то.
да, для изменения настроек уберу ограничения. там везде стоит макрообласть редактора
John Doe wrote:
Sat 18 Apr, 2020 14:17
0 - не отображается
1 - вертикальный
2 - горизонтальный
3 - полный (1+2)
если готовы к тому, что текущие настройки(не макросы) сломаются, то переделаю. изначально в плагине значения так хранились. делать маппинг для апи - не хочу. одинаковые значения и для апи и для хранения в настройках - это подходит.
John Doe wrote:
Sat 18 Apr, 2020 14:17
CrossStatus имхо не нужен, можно возвращать вторым значением к предыдущей команде (true - собственное значение, false - из схемы).
И отдельная команда CrossType тоже видимо не нужна, можно использовать дополнительный параметр к предыдущей.
а вас не пугают функции с кучей параметров ?

обращаю внимание, что CrossVisible возвращает фактический статус для текущего редактора. т.е. реально ли он отрисовывается или нет.

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

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

Post by John Doe »

ctapmex wrote:
Sat 18 Apr, 2020 14:52
если готовы к тому, что текущие настройки(не макросы) сломаются
Я готов. В остальном на ваше усмотрение
ctapmex wrote:
Sat 18 Apr, 2020 14:52
а вас не пугают функции с кучей параметров ?
Пугают, можно уменьшить. Но то как сейчас - ещё хуже.
ctapmex wrote:
Sat 18 Apr, 2020 14:52
обращаю внимание, что CrossVisible возвращает фактический статус для текущего редактора. т.е. реально ли он отрисовывается или нет.
Отлично, и мне кажется что тут этого достаточно.

А для параметров схемы желательно отдельное общее решение, а не только крест.
https://t.me/FarManager — Telegram чат

buniak_a_h
Posts: 1883
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 170 times
Contact:

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

Post by buniak_a_h »

ctapmex, извините, я немного не понял, Вы будете исправлять крах, описанный тут? А то с тех пор вышло уже много ночных версий, а фар по-прежнемк падает… А файл совсем убрать я не могу - он своё дело делает! Блокирует ненужную мне схему. И пока Вы не сделаете либо приоритеты, либо выбор схемы из макроса, альтернативы нет и приходится после каждого обновления возвращать FarColorer на версию 1.2.11.0 . Мне-то что делать???
--
P/S. У меня падает на версии 1.3.4.0
Last edited by buniak_a_h on Sat 18 Apr, 2020 21:00, edited 1 time in total.

User avatar
ctapmex
Posts: 1070
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 20 times
Contact:

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

Post by ctapmex »

buniak_a_h, было исправлено в тот же день, как я написал о причина.
качаю последнюю сборку с сайта x64, распаковываю . подкладываю myproto.hrc в папку auto. запускаю фар и открываю текстовый файл - ничего не упало, раскраска не производится.

buniak_a_h
Posts: 1883
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 170 times
Contact:

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

Post by buniak_a_h »

ctapmex,
1. Отдельно не качал - обновлял вместе с ФАРом плагином update. Хотя и просто из 7z-архива, полученного с сайта из раздела "ночные сборки" - тоже.
2. Вообще-то, предыдущая версия раскрашивала. "Раскраска не производится" - это немножко не тот результат, которого ждёшь.
Может, дело ещё в чем-то? Что Вам надо для воспроизведения-исправления? Готов выслать. Вплоть до исходников программы (хотя до них дело не доходит).

User avatar
ctapmex
Posts: 1070
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 20 times
Contact:

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

Post by ctapmex »

ох ты , а ваш случай оказался другим. в Bax.hrc.7z другая проблема, помимо пустого location.
разбираюсь

buniak_a_h
Posts: 1883
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 120 times
Been thanked: 170 times
Contact:

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

Post by buniak_a_h »

ctapmex, я исключил весь узел FoxPRO - всё равно падает.


Разница только в схеме diff, но она была когда-то скопирована со стандартной

User avatar
ctapmex
Posts: 1070
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 20 times
Contact:

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

Post by ctapmex »

buniak_a_h wrote:
Tue 14 Apr, 2020 18:02
ctapmex, я нашёл файл, который "обрушивает" колорер и ФАР с ним.
1. В настройках колорера указать:

Code: Select all

Users file of schemes
"%FarHome%\Plugins\FarColorer\base\hrc\Bax\Bax.hrc"
В каталог %FarHome%\Plugins\FarColorer\base\hrc\Bax\ распаковать прилагаемое.
На самом деле обрушивает именно Bax.hrc. Что с ним не так?

Bax.hrc.7z

--
P/S.
Пробовал перекодировать в UTF-8 с BOM - не помогает.
очень удивлен, что оно работало раньше. надо покопать почему так работало, но пока кажется это не правильным.
в файле указано

Code: Select all

<location link="jar:common.jar!misc/diff.hrc"/> 
файл common.jar всегда ищется относительно файла, где этот путь объявлен. т.е. в папке %FarHome%\Plugins\FarColorer\base\hrc\Bax\ . и его там нет. поэтому происходит падение. если указать путь подробнее, например

Code: Select all

<location link="jar:../common.jar!misc/diff.hrc"/> 
будет работать

User avatar
ctapmex
Posts: 1070
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 20 times
Contact:

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

Post by ctapmex »

по параметрам типов. предлагаю следующее.

Code: Select all

 #Работа с параметрами типов файлов#
   Ограничений на макрорегионы не установлено.
   Все изменения применяются только для текущего сеанса плагина. Для сохранения изменений необходимо вызывать "SaveSettings", для сброса Reload.
   #Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","ParamsOfType",<Action>, <Param1>,...)#
        "List" - Список параметров типа
           <Param1> - название типа. Строка. Регистрозависимо.
          Возвращает
           <OutParam1> - массив названий параметров
           <OutParam2> - массив значений этих параметров
        "Get" - Возвращает значение параметра. Тип - всегда строка.
           <Param1> - название типа. Строка. Регистрозависимо.
           <Param2> - название параметра. Строка. Регистрозависимо.
        "Set" - Устанавливает значение для параметра или удаляет его.
           <Param1> - название типа. Строка. Регистрозависимо.
           <Param2> - название параметра. Строка. Регистрозависимо.
           <Param3> - значение параметра. Строка. Если не передан, то параметр удаляется. Если передана пустая строка, то такое значение присваивается параметру.
для get только не знаю что возвращать, в случае если параметра не существует, или никакого значения для него не задано (даже пустого)

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

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

Post by HaRT »

ctapmex wrote:
Wed 22 Apr, 2020 19:06
что возвращать, в случае если параметра не существует, или никакого значения для него не задано
nil?
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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