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.
pepak
Posts: 604
Joined: Sun 13 Jul, 2008 11:18
Has thanked: 17 times
Been thanked: 54 times

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

Post by pepak »

Latest post of the previous page:

Would it be possible to add config support for selectively disabling certain built-in syntaxes? I used to use my own modified catalog, but that always seemed like a hack more than anything and it finally stopped working in recent versions of FAR. A built-in support for enabling/disabling filters could be very useful, particularly in case of XML files where some specializations often take over what should be a regular file (e.g. "Ant's build.xml" gets used while plain "xml" would be more apropriate; since I never use the former, I could simply disable it to get the desired result). Thanks.
ujos
Posts: 220
Joined: Fri 27 Apr, 2012 15:10
Has thanked: 10 times

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

Post by ujos »

Кто-нибудь знает, какой файл нужно править, чтобы добавить поддержку одинарных кавычек внутри числа для С++? т.е.

Code: Select all

int i = 1'234'567;
Вроде default.hrc ... Но тогда, если я его поправлю, это повлияет на форматирование во всех остальных форматах файлов.
Last edited by ujos on Mon 07 Dec, 2020 11:23, edited 1 time in total.
ernest
Posts: 4
Joined: Tue 05 Jan, 2021 19:03

Condensed View

Post by ernest »

Вопрос у меня простой: зачем Brackets, когда в поставке FAR3 есть Colorer?
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Condensed View

Post by buniak_a_h »

ernest wrote: Tue 05 Jan, 2021 21:44 Вопрос у меня простой: зачем Brackets, когда в поставке FAR3 есть Colorer?
LAT
Posts: 343
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 22 times
Been thanked: 39 times

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

Post by LAT »

ernest wrote: Tue 05 Jan, 2021 21:44зачем Brackets, когда в поставке FAR3 есть Colorer?
Иногда колорер отключён (например, на слабых машинах), а скобки найти надо.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

Есть ли возможность задать раскраску таким образом, чтобы строки, указанные в некоем списке, раскрашивались в заданный цвет?

P/S. Про "пометку" строк в первой (например) позиции и соответствующие изменения при окончательном применении патча (удаление удалённых строк и первой колонки) я знаю.
Last edited by buniak_a_h on Wed 10 Mar, 2021 03:08, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

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

Post by HaRT »

buniak_a_h wrote: Wed 10 Mar, 2021 03:03 Хотелось бы вывести пропатченный файл, в котором удалённые строки выделялись одним цветом, а добавленные - другим? Как это сделать в диалоге я знаю; возможно ли такую задачку решить колорером?
Помните, я вам давно писал про diff/patch? Вот их Колорер умеет раскрашивать как раз так, как вы описываете (но весь неизменный текст будет одного цвета, без собственного синтаксиса).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

HaRT, дело дошло до утилит.
Я видел, что *.diff раскрашивается. Хотел "наложить" эту раскраску на файл. Т.е. чтобы были видны также те строки, что не менялись (те, что в diff как раз отсутствуют).
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

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

Post by awson »

Давно не ставил новые ночные сборки, поэтому не знаю когда оно случилось, но в 3.0.5746.0 оно уже есть.
 ! Message from: John Doe
Раз не знаете, то и незачем писать в тему ночных сборок
При первом запуске FarColorer долго показывает окошко "Reloading schema library...". Раньше оно мелькало на мгновение, или вообще было незаметно. Т.е. оно замедлилось минимум раз в 10 (может быть и в 30 или 50 или 100).
Last edited by John Doe on Fri 12 Mar, 2021 11:55, 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 »

awson, относительно какой версии сравниваете ? в этом функционале ничего не менялось
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

выложил новую версию плагина 1.4.0 https://github.com/colorer/FarColorer/r ... tag/v1.4.0 . Попробуйте, кому не сложно.
в ней переработана работа со строками с самописной неподдерживаемой unicode части на библиотеку ICU. Скорость работы немного уменьшилась, но это лучше, чем трудности работы со строками.
точно сейчас нет поддержки windows xp.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

ctapmex, пробую. Пока все нормально. Визуально разница в скорости не ощущается.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

замедления по моим тестам на 40 тыс файле cpp - порядка 200 мс, на reg файле чуть более. Но это на моей машине. Цифры не большие, но надо быть честным ;)
так же было интересно что оно работает на разных машинах.(не на моей).

ок. дальнейшие планы
1. перевод сборки плагина на github
2. в сборку far плагин будет браться готовым с github
awson
Posts: 61
Joined: Fri 11 Sep, 2009 13:22
Has thanked: 1 time
Been thanked: 1 time

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

Post by awson »

ctapmex wrote: Sat 13 Mar, 2021 10:14 awson, относительно какой версии сравниваете ? в этом функционале ничего не менялось
Честно говоря, я даже и не знаю, снес ее уже. Возможно, полугодичной давности или что-то около того.

Я провел доп. исследование: этот эффект проявляется если я удаляю стандартную схему (в моем случае это схема для верилога), причем не зависит от того, переименовываю ли ссылку на нее ее в `package` или удаляю целиком из `proto.hrc`.
Если ничего не трогать, то оно работает довольно быстро (возможно, немного медленнее, чем раньше, но не в разы).

Для эксперимента удалил саму схему из `common.jar`, вроде перестало замедляться.
Last edited by awson on Sun 14 Mar, 2021 08:08, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

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

Post by buniak_a_h »

ctapmex, извините, если я что-то делаю не так, но у меня падает.
Итак.
Захотелось мне сделать, чтобы макрос работал не только по маске файла (поле filemask таблицы - аргумента Macro), а работал также если включена соответствующая цветовая схема. Вызываю в функции condition так: Plugin.Call("D2F36B62-A470-418d-83A3-ED7A3710E5B5","Types","Get") == 'lua'. В результате получаю падение:

Code: Select all

╔════════════════════════════════════════════════════════════ Error ═════════════════════════════════════════════════════════════╗
║ C:\Program Files\Far Manager\Plugins\LuaMacro\LuaMacro.dll:                                                                    ║
║ ...Roaming\Far Manager\Profile\Macros\scripts\Bax\Color.lua:37: attempt to yield across C-call boundary                        ║
║ stack traceback:                                                                                                               ║
║    [C]: in function 'Call'                                                                                                     ║
║    ...Roaming\Far Manager\Profile\Macros\scripts\Bax\Color.lua:37: in function 'condition'                                     ║
║    C:\Program Files\Far Manager\Plugins\LuaMacro\utils.lua:1065: in function 'GetMacro'                                        ║
║    C:\Program Files\Far Manager\Plugins\LuaMacro\keymacro.lua:341: in function <C:\Program Files\Far Manager\Plugins\LuaMacro\ ║
║ keymacro.lua:340>                                                                                                              ║
╟────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
Если это же условие поместить в action, то всё работает нормально. Но это не очень хорошо: ненужный (пустой) макрос включается в меню.
Возможно, дело не в плагине, а в ом, что в секции condition эмуляции нажатий клавиш (вызовs Keys, Menu и других диалоговых функций) вызывает такое падение.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

buniak_a_h wrote: Thu 08 Apr, 2021 03:27 Возможно, дело не в плагине
Естественно, дело не в колорере. Используйте Plugin.SyncCall из condition.
Post Reply

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