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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1240
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
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

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 чат
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

ctapmex wrote: Sun 12 Apr, 2020 15:58 вот так пойдет ?
да и еще забыл спросить - в случае вызова из макроса функций, в работе которых возникает ошибка с info.message, их нужно выводить или нет?
например задали новый путь до catalog.xml, но плагин не смог с него получить данные - выводить ошибку ?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

ctapmex wrote: Sun 12 Apr, 2020 16:36 их нужно выводить или нет?
Надо отдельно рассмотреть возможные случаи, пока по-умолчанию - выводить.
Возможность менять настройки через апи (такие как путь к каталогу) возможно вообще лишняя.
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

ctapmex wrote: Sun 12 Apr, 2020 15:58 вот так пойдет ?
Если это был список нужных функций грядущего, то лично мне не хватает команды установки схемы.
Кроме того в редакторе я не увидел "Найти функцию" (пункт "8" в меню)
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

нет, это не полный список. а пример похода.
John Doe, ок
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

ctapmex wrote: Sun 12 Apr, 2020 17:04ок
Я тоже описал лишь предварительно (обновил только что сообщение).
https://t.me/FarManager — Telegram чат
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

ctapmex wrote: Sun 12 Apr, 2020 17:04 нет, это не полный список. а пример похода.
John Doe, ок
А... Тогда наоборот. Хотелось бы , чтоб для каждой команды была отдельная строковая операция. По возможности мнемонически обоснованная, чтоб не лазить каждый раз в хелп. Например:
Plugin.Call(Uid, 'ShemaList') -- список схем
Plugin.Call(Uid, 'FindBranch') -- Найти соответствующую скобку
и т.д. …
Исключение - запрос и задание глобальных настроек.
Я думаю, для конечного пользователя так будет удобнее.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

DrKnS wrote: Sun 12 Apr, 2020 13:10 Господа, а может кто-то привести минимально полный пример добавления своего hrd?
Не знаю, будет ли куча файлов понятной. У меня настройки такие.


Far3.0.5555 x86 под Win10 x64.

По ссылке структура файлов и каталогов, соответствующие этим настройкам: https://github.com/ildar-shaimordanov/t ... FarColorer

Все это было настроено очень давно. Возможно, что-то уже не использую.
Last edited by siberia-man on Mon 13 Apr, 2020 05:20, edited 1 time in total.
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

ctapmex wrote: Fri 10 Apr, 2020 05:58 выкинул настройку креста. именно глобальную настройку, не привязанную к типу файла
То есть Вы удалили это?


Это же логичная настройка - "хочу крест такой-то везде".

Позже.
ctapmex wrote: Sat 11 Apr, 2020 10:22 верну в лучшем виде
Last edited by siberia-man on Mon 13 Apr, 2020 05:27, edited 1 time in total.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

Пошел по пути, предложенным John Doe, понятных имен и параметров.
описание функций https://github.com/colorer/FarColorer/b ... /macros.md
критикуйте/унижайте -) пока не в мастере, буду править и дополнять
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

ctapmex,
посмотрел, что видел - все нравится, спасибо
Оговорюсь что все скажу далее - это мелочные придирки или нереальные пожелания

Итак, а нельзя ли сделать так, чтобы настройка цвета была более "live"?
Чтобы не залазя далеко в UI или схемы расцветки,
можно было бы динамически менять цвета, фона например, остальные цвета?
Мне кажется это богатство сложно имплементировать в UI, но например,
через АПИ было бы более возможно.

Ну например:
Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Editor", "BackgroundColor", "<COLOR-RGB-CODE|COLOR-NAME>")
И пусть даже заданное таким образом не сохраняется в настройках (per session),
но мы можем проверить какие цвета нравятся, и задать их уже в схеме.
(А может даже сделать экспорт в файл схемы таким образом?)
Для чего это нужно - для тонкой настройки, потому что муторно сначала лезть в схему, понимать ее, менять ее,
потом перезагружать, потом понимать что-то не так, итд итп. Т.е. время.
А если это через АПИ, то и Вам меньше работы с UI,
и и пользователю можно легко "намакросить" такие простейшие вызовы,
и они будут сколько угодно моментальными.
тем самым вы еще сможете отдать возню с UI на откуп желающим улучшить/сделать что-то иначе
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

citRiks wrote: Mon 13 Apr, 2020 20:55 можно было бы динамически менять цвета, фона например, остальные цвета?
Мне кажется это богатство сложно имплементировать в UI, но например,
через АПИ было бы более возможно.

Ну например:
Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Editor", "BackgroundColor", "<COLOR-RGB-CODE|COLOR-NAME>")
И пусть даже заданное таким образом не сохраняется в настройках (per session),
сделать можно. но надо учитывать, что задаем цвет для default регионов, а они уже по наследству раздают далее.
Garrett
Posts: 240
Joined: Mon 01 Aug, 2005 10:23
Been thanked: 1 time

Глюки и баги, появившиеся в «ночных сборках»

Post by Garrett »

5584 дает при редактировании текстового файла, даже если даешь игнор, то всё равно Фар падает.
У меня нет версий 5581-5583, но 5580 работает прекрасно.
Last edited by HaRT on Tue 14 Apr, 2020 11:39, edited 1 time in total.
Reason: Спрятаны технические подробности
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Глюки и баги, появившиеся в «ночных сборках»

Post by ctapmex »

какой сценарий воспроизведения?
предлагаю попробовать сборку 5581 https://github.com/FarGroup/FarManager/ ... .5581.1530 , и с плагином colorer из него, так и из 5584

есть подозрение, что причина в том, что события в плагнин приходят в момент обработки другого события плагином.
Garrett
Posts: 240
Joined: Mon 01 Aug, 2005 10:23
Been thanked: 1 time

Глюки и баги, появившиеся в «ночных сборках»

Post by Garrett »

5581 сам падает. Файл прилагаю. Просто нажмите F4.
Attachments
_s12err.txt.zip
(5.11 KiB) Downloaded 30 times
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

Глюки и баги, появившиеся в «ночных сборках»

Post by ctapmex »

у меня на двух машинах не воспроизводится и не падает.
со своей стороны добавлю проверок в плагине на события в рамках обработки событий
Post Reply

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