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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1274
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 61 times

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

Post by ctapmex »

Far Colorer — плагин подсветки синтаксиса в редакторе, основанный на Colorer Library Игоря Русских. GitHub | Анонс | Старые домашние страницы библиотеки Colorer и плагина для FAR

Плагин входит в дистрибутив Far Manager с v3.0.2948 (старые версии доступны тут)





Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.
Last edited by ctapmex on Mon 18 Oct, 2021 19:17, edited 5 times in total.
User avatar
ctapmex
Posts: 1274
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 61 times

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

Post by ctapmex »

Latest post of the previous page:

HaRT wrote: Fri 23 Feb, 2024 20:02 Не лучше ли вместо двух булевских параметров, из которых один зависит от другого, сделать один в духе suppress: off, use-default-type, on (по умолчанию off)?
для первого раза проще было двумя булевыми параметрами сделать. Хотелось услышать обратную связь. Т.к. была еще мысль сделать подавление в стиле "исключить из работы". Т.е. состояние, когда этот прототип полностью удалили из базы, вместо него выбирается по приоритету другой прототип, не обязательно default. Но пока исхожу из того, что это сильно не очевидное поведение.
suppress, говорите. Ну в принципе да.
HaRT wrote: Fri 23 Feb, 2024 20:02 Чем это отличается от выбора “default type” в том же меню?
"отключено" и default type отличаются тем, что в первом работа плагина для раскраски полностью отключается. А во втором доступен на сейчас крест. В будущем, если сделаю, подсветка whitespace.
ну и самое главное - появился "визуальный" аналог макроса по отключению
buniak_a_h wrote: Sat 24 Feb, 2024 02:34 32-разрядные версии, начиная с 1.4.23, не пропускает windows defender. Так и должно быть? Ну просто неудобно выключать-включать; да и стрёмно как-то…
вся сборка происходит в облаке github, на их инфраструктуре. Ничего своего , кроме исходников.
у самого стоит каспер , defender вроде то же есть (он не отключаем). Сообщений не вижу. Кроме того, что браузер при скачивании архива выдает сообщение а точно ли хочу его сохранить, потенциально опасно. Но это и на x64 происходит, и на многих других 7z архивах
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

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

Post by HaRT »

ctapmex wrote: Sat 24 Feb, 2024 06:46 "отключено" и default type отличаются тем, что в первом работа плагина для раскраски полностью отключается. А во втором доступен на сейчас крест. В будущем, если сделаю, подсветка whitespace.
ну и самое главное - появился "визуальный" аналог макроса по отключению
Понятно, разумно. Но вот почему же это появляется в списке типов-то?! Пункту в(ы)ключения в текущем редакторе самое место в основном меню плагина. А к списку типов он ну никак не принадлежит.

Кстати, если/когда соберётесь делать подсветку пробельных символов, гляньте, какой уровень гибкости в этом отношении предоставляет Visualizer, — там это давно устоялось.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Stalker4
Posts: 26
Joined: Fri 28 Oct, 2016 13:23

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

Post by Stalker4 »

ctapmex wrote: Sat 17 Feb, 2024 13:08 еще уточнение. приведенный способ с добавлением параметров в описание прототипа так же работает, если так же убрать #
Far Manager, version 3.0.6000.0 x64
Colorer 1.4.15

В default.hrd добавил свои цвета с черным фоном.


В pascal.hrc добавил заголовок и указал использовать мои цвета


Если эти файлы просто положить в каталог FAR3\Plugins\FarColorer\base\auto
и перезапустить FAR3, то никаких изменений не происходит.
Если же поместить эти файлы внутрь архива common.zip вместо оригинальных, то после перезапуска FAR3, если открыть на редактирование pas-файл, то FAR3 просто вылетает.

По поводу Вашего совета, если я правильно понял, мне надо было в pascal.hrc сделать так, т.е. убрать там решетки (#) у цветов

Code: Select all

  <prototype name="pascal" group="main" description="Pascal">
    <filename>/\.(\~?pas|dpr|dpk|inc|int|pp)$/i</filename>
    <firstline>/^(\{|\/\/|resourcestring|program|library|unit|package)/i</firstline>
    <parameters>
      <param name="default-back" value="0"/>
      <param name="default-fore" value="E"/>
    </parameters>
  </prototype>
Я попробовал и это, результат тоже самое, что и описано выше - либо никаких изменений, либо FAR3 просто вылетает.
User avatar
ctapmex
Posts: 1274
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 61 times

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

Post by ctapmex »

Stalker4 wrote: Wed 24 Apr, 2024 13:40 Я попробовал и это, результат тоже самое, что и описано выше - либо никаких изменений, либо FAR3 просто вылетает.
берем набор схем без архива , либо при работе с архивом из far помним об особенностях работы arclite , что нужно для zip выбирать тип сжатия Deflate.
берем FarColorer из ночных сборок far (старый плагин не вижу смысла проверять).
до
image.png
приводим proto.hrc к виду

Code: Select all

 <prototype name="pascal" group="main" description="Pascal">
    <filename>/\.(\~?pas|dpr|dpk|inc|int|pp)$/i</filename>
    <firstline>/^(\{|\/\/|resourcestring|program|library|unit|package)/i</firstline>
    <parameters>
      <param name="default-back" value="0"/>
      <param name="default-fore" value="E"/>
    </parameters>
  </prototype>
сохраняем. перезагружаем схемы/ far
после
image.png
Last edited by ctapmex on Wed 01 May, 2024 18:16, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

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

Post by HaRT »

ctapmex, обнаружилось, что в некоторых обстоятельствах Колорер может блокировать Фар на полминуты и более.
Шаги воспроизведения несколько диковатые:
0. Распаковать приложенный файл.
1. Запустить Фар с Колорером (я запускал без прочих плагинов и с умолчательным профилем read-only: far.exe -ro -s "%TEMP%\FarProfile\2024-05-13" -p".\Plugins\FarColorer" M:\Dumps\colorerBlocksFar~30+s).
2. Открыть распакованный файл на редактирование — схема определится как Config, INI and CTL.
3. Делать в редакторе что-нибудь незначительное (например, неторопливо шагать курсором вниз-вверх или нажимать поочерёдно F7 Esc), пока по часам компьютера не пробьёт полночьовина минуты (т.е. сколько-то минут и 30 секунд).

Всё, в этот момент Фар перестаёт реагировать на ввод, а отданные команды отработает потом, когда примерно через полминуты очухается. Также можно заметить, что в момент блокировки резко возрастает использование процессора, а если подцепиться отладчиком, то можно увидеть, что процесс пребывает где-то в недрах парсинга регэкспов Колорером.

Я понимаю, что файл длинный, а схема, возможно, не очень хорошо для него подходит, да и написана, вероятно, без расчёта на подобные данные. Но зачем блокируется пользовательский интерфейс?!

P.S. Проблема, как выясняется, не новая: на сборке 5845 (x86) уже воспроизводится.

P.P.S. Уточнённые данные о регрессии: по имеющимся у меня сборкам, в Far30b5374.x86.20190313 и Far30b5570.x64.20200312 застревания ещё нет, а в Far30b5787.x86.20210502 уже есть (но застревает всего на 10-12 секунд).
Attachments
colorerBlocksFar~30+s.7z
(73.67 KiB) Downloaded 67 times
Last edited by HaRT on Mon 13 May, 2024 17:11, edited 1 time in total.
Reason: Добавлены уточнённые данные о регрессии
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
ctapmex
Posts: 1274
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 61 times

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

Post by ctapmex »

проблема идет из-за того, что время фоновой обработки одной итерации по ACTL_SYNCHRO больше или сильно рядом по значению настроечного параметра 'Build period'. оно по умолчанию 200 мс. Обработав партию строк фоном, возвращаем управление far, а там нас ждет очередное сообщение и очередное. И почему то фар в это время только ACTL_SYNCHRO обрабатывает. другие сообщения, клавиатуру - не обрабатывает.
а время одной итерации зависит от сложности схемы, регулярок и строк в файле.

видимо надо время обработки замерять и пропускать вызовы , когда время зашкаливает
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

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

Post by HaRT »

ctapmex wrote: Mon 13 May, 2024 17:59 почему то фар в это время только ACTL_SYNCHRO обрабатывает. другие сообщения, клавиатуру - не обрабатывает
Но разве это хоть как-то объясняет то престранное обстоятельство, что затык происходит ровно на половине календарной минуты, а не раньше?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
ctapmex
Posts: 1274
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 61 times

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

Post by ctapmex »

это совпадение -)
на debug сборке такое у меня происходит секунд через 5.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

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

Post by John Doe »

ctapmex wrote: Mon 13 May, 2024 17:59 видимо надо время обработки замерять и пропускать вызовы , когда время зашкаливает
Или фар исправлять
https://t.me/FarManager — Telegram чат
User avatar
HaRT
Moderator
Posts: 11458
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 270 times
Been thanked: 417 times

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

Post by HaRT »

ctapmex wrote: Mon 13 May, 2024 18:16 это совпадение
Ну, не знаю. Я при написании багрепорта проверял не один десяток раз, чтобы удостовериться в закономерности. Я не верю в такие совпадения.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
ctapmex
Posts: 1274
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 61 times

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

Post by ctapmex »

John Doe wrote: Mon 13 May, 2024 18:32 Или фар исправлять
возможно и фар.
HaRT wrote: Mon 13 May, 2024 18:42 Я не верю в такие совпадения.
ну странно бы было, если бы в коде был анализ времени . в colorer точно нет. За far не скажу, но то же врятли.
User avatar
John Doe
Бюрократ
Posts: 14582
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 514 times
Contact:

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

Post by John Doe »

Обновил в шапке информацию про TrueMod.
Если кто не в курсе, в Windows 10 работает и без Conemu.
https://t.me/FarManager — Telegram чат
dest
Posts: 146
Joined: Mon 29 Jun, 2015 01:30
Has thanked: 24 times
Been thanked: 8 times

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

Post by dest »

Sim wrote: Mon 24 Jul, 2017 10:19 Подскажите пожалуйста как настроить Colorer чтобы он не подвешивал Far на несколько минут при открытии в редакторе файла большого размера да еще и с длинными строками ?
Когда файл уже открыт с ним можно работать и синтаксис подсвечен нормально.
Если отключаю Colorer то никаких подвисаний нет.
У меня тот же вопрос в середине 2024-го
Открываю в редакторе, допустим, лог с сотней тысяч строк, хочу его визуально промотать, Ctrl-Home и далее PgDn - и всё, приплыли... слайдшоу 2 перерисовки в секунду, причём если успел подержать PgDn более-менее достаточно (у меня повторение зажатого нажатия включено после 500 мс задержки, 30 мс между повторяющимися символами), то можно долго смотреть на то, как редактор скроллит на следующую страницу, происходит медленная перерисовка окна редактора колорером, потом следующая страница и так далее, примерно 2.5-2.6 страниц в секунду при высоте окна в 63 строки (ConEmu, окно фара 221x63). Сей перформанс прервать невозможно, просто приходится ждать, пока все "нажатые" во время удержания пейдждауны отработают... и если вдруг увидел зону, к которой нужно внимание, а в буфере ещё гора нажатий, то... :cry:

PS: Far 3.0.6344 x86, Far Colorer 1.4.28 Unicode, ядер CPU более чем достаточно, загрузка очень небольшая
PPS: если файл был закрыт "где-то далеко", то при открытии его снова подсветки нет (судя по всему разрисовка идёт с самого начала файла..). Если разработчик плагина тут, то может сделать перерисовку только активной зоны и только если прошло хотя бы 10-20-50 мс с момента прорисовки текста? тогда последовательная моментальная смена позиции в файле не будет запускать раскраску до момента остановки...)
Last edited by dest on Sun 11 Aug, 2024 02:16, edited 3 times in total.
yellow
Posts: 5
Joined: Thu 10 Oct, 2024 14:39
Has thanked: 1 time

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

Post by yellow »

Здравствуйте. Вот ситуация: открываю на редактирование новый файл C:\test.json:
{
a
}

вижу, что "а" отображается черным цветом на красном фоне. Ставлю курсор на "а", жму F11 / Far Colorer / Данные региона, вижу: "Region: def:Error, Scheme: json:json". Иду в файл \Far Manager\Plugins\FarColorer\base\hrd\console\default.hrd и вижу:
<assign name="def:Error" fore="#F" back="#4"/>
Насколько я понял, это белый цвет на красном фоне.

Как узнать, где цвет шрифта перехватился и изменился на черный?
Far 3.0.6364 x64, Far Colorer 1.4.0.28, цветовой стиль "Aqua on blue", TrueMod off.
Yegor
Posts: 1505
Joined: Mon 04 Apr, 2005 13:41
Location: San Ramon, CA / Kharkov, UA
Has thanked: 52 times
Been thanked: 94 times

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

Post by Yegor »

yellow wrote: Fri 11 Oct, 2024 13:47 \Far Manager\Plugins\FarColorer\base\hrd\console\default.hrd
Зависит от того какой "Цветовой стиль" у вас стоит в FarColorer
Мы не можем ждать милостей от Фара, взять их у него — наша задача! (C) Мичурин
yellow
Posts: 5
Joined: Thu 10 Oct, 2024 14:39
Has thanked: 1 time

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

Post by yellow »

Yegor wrote: Fri 11 Oct, 2024 22:30 Зависит от того какой "Цветовой стиль" у вас стоит в FarColorer
yellow wrote: Fri 11 Oct, 2024 13:47 Far 3.0.6364 x64, Far Colorer 1.4.0.28, цветовой стиль "Aqua on blue", TrueMod off.
я так понимаю, стиль "по умолчанию".
Post Reply

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