Page 208 of 214

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

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

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

Posted: Sun 12 Apr, 2020 13:10
by DrKnS

Latest post of the previous page:

Господа, а может кто-то привести минимально полный пример добавления своего hrd?
Рекомендации из шапки пробовал, но лыжи не едут: плагин говорит CatalogParserException или ParserFactoryException, Error reading file и потом падает при входе в настройки.

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

Posted: Sun 12 Apr, 2020 13:12
by citRiks
ctapmex wrote:
Sun 12 Apr, 2020 13:04
задам вопрос по другому - у какого плалина сейчас наиболее мощный Plugin.Call ? чтобы на примерах посмотреть как правильнее делать. пречислять цифры все новые так себе. Уже предложили текстовые константы. Ну ок. Но примеры были бы желательны. Я, конечно, еще сам поищу. но если будут тут - то ок
Ну кажется у Review (просмотр картинок) много всяких команд.
У ArcLite люди говорят используют его замечательное АПИ
А это точно не лишний перфекционизм у вас? :)
я думаю у большинства плагинов тоже нумерация команд идет, да и все
Тем более если вы "в космос" и не собираетесь

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

Posted: Sun 12 Apr, 2020 13:17
by buniak_a_h
ctapmex, ArcLite.
%FarHome%\Plugins\ArcLite\changelog wrote:Plugin.Call -- формат аналогичен комстроке, все параметры текстовые, open исключён.

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

Posted: Sun 12 Apr, 2020 13:20
by John Doe
citRiks wrote:
Sun 12 Apr, 2020 13:12
у какого плалина сейчас наиболее мощный Plugin.Call ?
Я бы не стал ставить какой-то плагин в пример, так как задачи везде разные (и как правило простые).
Предлагаю для начала составить полный список чего не хватает (в порядке важности), а потом уже подумать над деталями воплощения этого в апи.

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

Posted: Sun 12 Apr, 2020 13:27
by buniak_a_h
John Doe, насколько я понял, человеку нужен просто пример плагина, принимающего параметры от Plugin.Call чтобы сделать по образу и подобию. А уж набор команд и параметров - дело следующее.
Вот чего я не смог получить от писателя ArcLite-а, так это чтоб он мне возвращал лист архива. А, насколько я понял, от колорера хотят получать таблицу (список схем - это я так когда-то прокукарекал …). Ну, если возвращать таблицу не получится, можно возвращать строку, разделённую '\n'.

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

Posted: Sun 12 Apr, 2020 13:34
by citRiks
buniak_a_h,
у него у самого есть уже такие примеры в собственном же плагине,
но товарища СтарМеха кажется что перфекционизм все никак не может отпустить :)
Я список привел как пример, а как по мне то важнее и проще сделать контроль за крестиком

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

Posted: Sun 12 Apr, 2020 13:59
by ctapmex
DrKnS wrote:
Sun 12 Apr, 2020 13:10
Господа, а может кто-то привести минимально полный пример добавления своего hrd?
Рекомендации из шапки пробовал, но лыжи не едут: плагин говорит CatalogParserException или ParserFactoryException, Error reading file и потом падает при входе в настройки.
c:\Work\code\temp\1\my_scheme.xml

Code: Select all

<hrd-sets> 
	<hrd class="console" name="black"   description="Black colors">
      <location link="black.hrd"/>
    </hrd>
 </hrd-sets>
c:\Work\code\temp\1\black.hrd - обычный hrd файл, скопирован из дистрибутива

в настройках указываю "Users file of color styles" c:\Work\code\temp\1\my_scheme.xml
все

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

Posted: Sun 12 Apr, 2020 14:21
by ctapmex
по api. посмотрел примеры и документацию. массив одномерный вернуть можно. таблицу - видимо только с разделителем внутри каждого элемента одномерного массива.
позже накидаю примеры как можно сделать, оцените, покритикуете

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

Posted: Sun 12 Apr, 2020 14:30
by buniak_a_h
ctapmex, немножко не понял … Одномерный массив - это частный случай таблицы?
Как-то же возвращают "хитрые" таблицы типа tPanelItem… Впрочем, для наших нужд мне бы и массива хватило.
Я попробую пояснить.
Есть некий макрос, хранящий настройки в файле cfg в синтаксисе LUA. Завязываться на расширение - не хочется. Я бы повесил ивент на открытие файла и, если он в нужных местах, переключал бы схему на lua. Ну, или по хоткею (я сейчас вручную переключаю, но это довольно муторно).

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

Posted: Sun 12 Apr, 2020 14:43
by ctapmex
да, речь про частный случай одномерной таблицы.
в общем ступил я, опять.
по описанию плагин возвращает https://api.farmanager.com/ru/structure ... oinfo.html , а это массив . а внутри https://api.farmanager.com/ru/structure ... value.html так же массив может быть.
ок понял.

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

Posted: Sun 12 Apr, 2020 15:09
by zg
ctapmex wrote:
Sun 12 Apr, 2020 14:43
а это массив
это не массив, это несколько возвращаемых значений. типа такого: local res,x1,y1,len1,active,x2,y2,len2=Plugin.Call("9860393A-918D-450F-A3EA-84186F21B0A2",1)

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

Posted: Sun 12 Apr, 2020 15:58
by ctapmex
вот так пойдет ?

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

Posted: Sun 12 Apr, 2020 15:59
by ctapmex
zg wrote:
Sun 12 Apr, 2020 15:09
ctapmex wrote:
Sun 12 Apr, 2020 14:43
а это массив
это не массив, это несколько возвращаемых значений. типа такого: local res,x1,y1,len1,active,x2,y2,len2=Plugin.Call("9860393A-918D-450F-A3EA-84186F21B0A2",1)
получается, если нужно вывести таблицу, то под каждый столбец свой параметр ?

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

Posted: Sun 12 Apr, 2020 16:20
by Shmuel
Каждое возвращаемое значение может быть массивом значений. Теоретически - рекурсивно (практически не проверял пока).

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

Posted: Sun 12 Apr, 2020 16:21
by John Doe
ctapmex wrote:
Sun 12 Apr, 2020 15:59
получается, если нужно вывести таблицу, то под каждый столбец свой параметр ?
Вовсе нет.
Несколькими параметрами возвращаем только там где это нужно (т.е. удобно пользователю апи)

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

Posted: Sun 12 Apr, 2020 16:33
by John Doe
ctapmex wrote:
Sun 12 Apr, 2020 15:58

Code: Select all

-- Показать окно
-- Val=1 - Окно главных настроек
-- Val=2 - Окно настроек логирования
-- Val=3 - Окно настроек параметров схем
Plugin.Call(ID, "Window", Val)
Не Window наверно а Settings, и не числовые константы, а строковые.
ctapmex wrote:
Sun 12 Apr, 2020 15:58

Code: Select all

-- Показать меню
--  Val=1 - Список типов
--  Val=2 - Список функций
--  Val=3 - Список ошибок
Plugin.Call(ID, "Menu", Val)
Я бы не объединял это лишь по признаку того что выводится меню.
List types - заслуживает отдельной команды:
- "Types", "Menu" (интерактивно)
- "Types", "List" (вернуть массив)
- "Type", "Get" (вернуть текущие тип, группу)
- "Type", "Set" (установить тип текущему файлу)

Список функций, ошибок - можно объединить командой Navigate. С другой стороны, возможно понадобиться вернуть их как массив, поэтому можно командой оставить объект (Functions, Errors), а другим параметром - действие.


Со скобками - аналогично.
Общая команда - Brackets, а дополнительные параметры - Match, Select, List (например по умолчанию)

Region: Show, Select, List (просто вернуть как строку).

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

---
Плюс, команда на получение параметров заданной (или текущей) схемы.
Потенциально - изменение параметров тоже может иметь смысл, но скорее на сессионной основе.
А для постоянного - команда для прямого вызова правки параметров заданной (ли текущей) схемы.