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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1099
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 25 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
DrKnS
Posts: 5686
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 9 times
Been thanked: 313 times

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

Post by DrKnS »

Latest post of the previous page:

Господа, а может кто-то привести минимально полный пример добавления своего hrd?
Рекомендации из шапки пробовал, но лыжи не едут: плагин говорит CatalogParserException или ParserFactoryException, Error reading file и потом падает при входе в настройки.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

ctapmex wrote: Sun 12 Apr, 2020 13:04 задам вопрос по другому - у какого плалина сейчас наиболее мощный Plugin.Call ? чтобы на примерах посмотреть как правильнее делать. пречислять цифры все новые так себе. Уже предложили текстовые константы. Ну ок. Но примеры были бы желательны. Я, конечно, еще сам поищу. но если будут тут - то ок
Ну кажется у Review (просмотр картинок) много всяких команд.
У ArcLite люди говорят используют его замечательное АПИ
А это точно не лишний перфекционизм у вас? :)
я думаю у большинства плагинов тоже нумерация команд идет, да и все
Тем более если вы "в космос" и не собираетесь
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
buniak_a_h
Posts: 2095
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

ctapmex, ArcLite.
%FarHome%\Plugins\ArcLite\changelog wrote:Plugin.Call -- формат аналогичен комстроке, все параметры текстовые, open исключён.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

citRiks wrote: Sun 12 Apr, 2020 13:12 у какого плалина сейчас наиболее мощный Plugin.Call ?
Я бы не стал ставить какой-то плагин в пример, так как задачи везде разные (и как правило простые).
Предлагаю для начала составить полный список чего не хватает (в порядке важности), а потом уже подумать над деталями воплощения этого в апи.
https://t.me/FarManager — Telegram чат
buniak_a_h
Posts: 2095
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

John Doe, насколько я понял, человеку нужен просто пример плагина, принимающего параметры от Plugin.Call чтобы сделать по образу и подобию. А уж набор команд и параметров - дело следующее.
Вот чего я не смог получить от писателя ArcLite-а, так это чтоб он мне возвращал лист архива. А, насколько я понял, от колорера хотят получать таблицу (список схем - это я так когда-то прокукарекал …). Ну, если возвращать таблицу не получится, можно возвращать строку, разделённую '\n'.
citRiks
Posts: 895
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 269 times
Been thanked: 46 times

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

Post by citRiks »

buniak_a_h,
у него у самого есть уже такие примеры в собственном же плагине,
но товарища СтарМеха кажется что перфекционизм все никак не может отпустить :)
Я список привел как пример, а как по мне то важнее и проще сделать контроль за крестиком
А кто не поверит в наше миролюбие, / Тот кровью умоется. / И будет такая борьба за мир, / Что камня на камне не останется.
User avatar
ctapmex
Posts: 1099
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 25 times
Contact:

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

Post 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
все
User avatar
ctapmex
Posts: 1099
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 25 times
Contact:

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

Post by ctapmex »

по api. посмотрел примеры и документацию. массив одномерный вернуть можно. таблицу - видимо только с разделителем внутри каждого элемента одномерного массива.
позже накидаю примеры как можно сделать, оцените, покритикуете
buniak_a_h
Posts: 2095
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 129 times
Been thanked: 207 times
Contact:

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

Post by buniak_a_h »

ctapmex, немножко не понял … Одномерный массив - это частный случай таблицы?
Как-то же возвращают "хитрые" таблицы типа tPanelItem… Впрочем, для наших нужд мне бы и массива хватило.
Я попробую пояснить.
Есть некий макрос, хранящий настройки в файле cfg в синтаксисе LUA. Завязываться на расширение - не хочется. Я бы повесил ивент на открытие файла и, если он в нужных местах, переключал бы схему на lua. Ну, или по хоткею (я сейчас вручную переключаю, но это довольно муторно).
User avatar
ctapmex
Posts: 1099
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 25 times
Contact:

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

Post by ctapmex »

да, речь про частный случай одномерной таблицы.
в общем ступил я, опять.
по описанию плагин возвращает https://api.farmanager.com/ru/structure ... oinfo.html , а это массив . а внутри https://api.farmanager.com/ru/structure ... value.html так же массив может быть.
ок понял.
User avatar
zg
zero-gravity
Posts: 5878
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 155 times
Contact:

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

Post 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)
User avatar
ctapmex
Posts: 1099
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 25 times
Contact:

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

Post by ctapmex »

вот так пойдет ?
User avatar
ctapmex
Posts: 1099
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 25 times
Contact:

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

Post 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)
получается, если нужно вывести таблицу, то под каждый столбец свой параметр ?
Shmuel
Posts: 6167
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 31 times
Been thanked: 330 times

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

Post by Shmuel »

Каждое возвращаемое значение может быть массивом значений. Теоретически - рекурсивно (практически не проверял пока).
Last edited by Shmuel on Sun 12 Apr, 2020 16:20, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post by John Doe »

ctapmex wrote: Sun 12 Apr, 2020 15:59 получается, если нужно вывести таблицу, то под каждый столбец свой параметр ?
Вовсе нет.
Несколькими параметрами возвращаем только там где это нужно (т.е. удобно пользователю апи)
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 12888
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 295 times

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

Post 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 (просто вернуть как строку).

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

---
Плюс, команда на получение параметров заданной (или текущей) схемы.
Потенциально - изменение параметров тоже может иметь смысл, но скорее на сессионной основе.
А для постоянного - команда для прямого вызова правки параметров заданной (ли текущей) схемы.
https://t.me/FarManager — Telegram чат
Post Reply

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