Page 209 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 16:33
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 (просто вернуть как строку).

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

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

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

Posted: Sun 12 Apr, 2020 16:36
by ctapmex
ctapmex wrote:
Sun 12 Apr, 2020 15:58
вот так пойдет ?
да и еще забыл спросить - в случае вызова из макроса функций, в работе которых возникает ошибка с info.message, их нужно выводить или нет?
например задали новый путь до catalog.xml, но плагин не смог с него получить данные - выводить ошибку ?

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

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

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

Posted: Sun 12 Apr, 2020 16:41
by buniak_a_h
ctapmex wrote:
Sun 12 Apr, 2020 15:58
вот так пойдет ?
Если это был список нужных функций грядущего, то лично мне не хватает команды установки схемы.
Кроме того в редакторе я не увидел "Найти функцию" (пункт "8" в меню)

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

Posted: Sun 12 Apr, 2020 17:04
by ctapmex
нет, это не полный список. а пример похода.
John Doe, ок

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

Posted: Sun 12 Apr, 2020 17:08
by John Doe
ctapmex wrote:
Sun 12 Apr, 2020 17:04
ок
Я тоже описал лишь предварительно (обновил только что сообщение).

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

Posted: Sun 12 Apr, 2020 17:18
by buniak_a_h
ctapmex wrote:
Sun 12 Apr, 2020 17:04
нет, это не полный список. а пример похода.
John Doe, ок
А... Тогда наоборот. Хотелось бы , чтоб для каждой команды была отдельная строковая операция. По возможности мнемонически обоснованная, чтоб не лазить каждый раз в хелп. Например:
Plugin.Call(Uid, 'ShemaList') -- список схем
Plugin.Call(Uid, 'FindBranch') -- Найти соответствующую скобку
и т.д. …
Исключение - запрос и задание глобальных настроек.
Я думаю, для конечного пользователя так будет удобнее.

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

Posted: Mon 13 Apr, 2020 05:19
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

Все это было настроено очень давно. Возможно, что-то уже не использую.

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

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


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

Позже.
ctapmex wrote:
Sat 11 Apr, 2020 10:22
верну в лучшем виде

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

Posted: Mon 13 Apr, 2020 18:11
by ctapmex
Пошел по пути, предложенным John Doe, понятных имен и параметров.
описание функций https://github.com/colorer/FarColorer/b ... /macros.md
критикуйте/унижайте -) пока не в мастере, буду править и дополнять

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

Posted: Mon 13 Apr, 2020 20:55
by citRiks
ctapmex,
посмотрел, что видел - все нравится, спасибо
Оговорюсь что все скажу далее - это мелочные придирки или нереальные пожелания

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

Ну например:
Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Editor", "BackgroundColor", "<COLOR-RGB-CODE|COLOR-NAME>")
И пусть даже заданное таким образом не сохраняется в настройках (per session),
но мы можем проверить какие цвета нравятся, и задать их уже в схеме.
(А может даже сделать экспорт в файл схемы таким образом?)
Для чего это нужно - для тонкой настройки, потому что муторно сначала лезть в схему, понимать ее, менять ее,
потом перезагружать, потом понимать что-то не так, итд итп. Т.е. время.
А если это через АПИ, то и Вам меньше работы с UI,
и и пользователю можно легко "намакросить" такие простейшие вызовы,
и они будут сколько угодно моментальными.
тем самым вы еще сможете отдать возню с UI на откуп желающим улучшить/сделать что-то иначе

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

Posted: Tue 14 Apr, 2020 05:19
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 регионов, а они уже по наследству раздают далее.

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

Posted: Tue 14 Apr, 2020 07:53
by Garrett
5584 дает при редактировании текстового файла, даже если даешь игнор, то всё равно Фар падает.
У меня нет версий 5581-5583, но 5580 работает прекрасно.

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

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

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

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

Posted: Tue 14 Apr, 2020 08:37
by Garrett
5581 сам падает. Файл прилагаю. Просто нажмите F4.

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

Posted: Tue 14 Apr, 2020 10:25
by ctapmex
у меня на двух машинах не воспроизводится и не падает.
со своей стороны добавлю проверок в плагине на события в рамках обработки событий