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.
2useven10
Posts: 5204
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

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

Post by 2useven10 »

Latest post of the previous page:

Чем плох гитхаб колорера?
https://github.com/colorer/FarColorer/r ... ag/v1.3.26
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

добавил в шапку информацию о поддержке windows xp
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

ctapmex, возможно, уже обсуждалось, но тем не менее.
Я так понимаю, что плагин использует ACTL_SYNCHRO для раскраски текста в фоне.
Это немного убивает идею idle-события, т.к. idle не наступает никогда, но вопрос не в этом - зачем он продолжает слать эти ивенты 5 раз в секунду даже когда переключились в панели, даже когда из редактора вышли совсем, бесконечно, аж до выгрузки или завершения процесса?
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

DrKnS wrote: Sun 30 May, 2021 16:54 зачем он продолжает слать эти ивенты 5 раз в секунду даже когда переключились в панели, даже когда из редактора вышли совсем, бесконечно, аж до выгрузки или завершения процесса?
Первый вариант реализации в лоб работает, никто не жаловался. так и осталось.
закрытие всех редакторов - ok
переключение из редактора на панель - как поймать? подписаться на ProcessPanelEventW и при первом событии считать, что переключились на панель?

вообще ACTL_SYNCHRO в плагине появилось от пропажи idle события. Теперь , чтобы появилось idle событие, мешает ACTL_SYNCHRO -)
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

ctapmex wrote: Sun 30 May, 2021 18:41 переключение из редактора на панель - как поймать?
EE_GOTFOCUS, EE_KILLFOCUS например. ACTL_GETWINDOWTYPE еще наверное.
ACTL_SYNCHRO в плагине появилось от пропажи idle события
А в чем там проблема была? Я не помню уже.
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

DrKnS wrote: Sun 30 May, 2021 19:01 А в чем там проблема была? Я не помню уже.
плагин изначально "фоном" парсил текст на каждое idle событие. Потом zg , кажется, "отменил" это событие. Оно перестало приходить в плагин.

хорошо, я переделаю
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

DrKnS, с точки зрения idle, ACTL_SYNCHRO должен работать только когда редактор активен и поверх него нет никаких диалогов (поиск) или меню (меню плагинов) ? или только переключение с редактора на панель или viewer должно отключать поток?
сейчас при получении EE_KILLFOCUS невозможно узнать кому этот фокус уйдет. ACTL_GETWINDOWTYPE на событии EE_KILLFOCUS всегда возвращает WTYPE_DESKTOP, даже если открыто подряд несколько редакторов. При таком подходе, каждый раз будет отключаться поток при открытии любого диалога или меню
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

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

Post by DrKnS »

ctapmex wrote: Sun 30 May, 2021 20:25сейчас при получении EE_KILLFOCUS невозможно узнать кому этот фокус уйдет
А какая разница? Ушел фокус - pause, пришел - resume. В худшем случае (из редактора в другой редактор) будет лишняя пара pause/resume, но это все равно лучше, чем постоянно крутить.
каждый раз будет отключаться поток при открытии любого диалога или меню
Логично. Пока диалог открыт - текст не меняется, чего его парсить.
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 »

DrKnS wrote: Sun 30 May, 2021 19:01 даже когда из редактора вышли совсем, бесконечно
Вот это непонятно: если нет работы, то зачем слать эти ивенты.

В остальном без разницы - если есть работа, пусть хоть в панелях выполняет.
Last edited by John Doe on Sun 30 May, 2021 20:42, edited 1 time in total.
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 »

John Doe wrote: Sun 30 May, 2021 20:41 Вот это непонятно: если нет работы, то зачем слать эти ивенты.
far не знает для каких целей плагин создал себе ACTL_SYNCHRO .
DrKnS wrote: Sun 30 May, 2021 20:38 Логично. Пока диалог открыт - текст не меняется, чего его парсить.
текст не меняется, но если файл большой, его могли еще не до парсить до конца.
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: Wed 04 May, 2005 14:45 far не знает для каких целей плагин создал себе ACTL_SYNCHRO .
Стоп. Возможно я неверно понимаю как оно должно работать, тогда поправьте.
Событие же инициируется плагином (5 раз в секунду), нет?
И раз это полностью под его контролем, то зачем слать события без нужды.
(Да, я помню что так когда-то было быстрее переделать с идле, поэтому вопрос про смысл 'сейчас')
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 »

понял вопрос. да плагин 5 раз в секунду шлет запрос фару, чтобы фар послал сообщение плагину . выше не правильно выразился.
вариант не слать, когда нечего обрабатывать тоже вариант -) ох , сейчас логики будет разной, как бы оно работало нормально
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 »

Версия 1.4.3 падает и утягивает за собой весь ФАР.
BugReport тут.
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.4 . пока на гитхабе, что в сборке фара, что отдельно
User avatar
ctapmex
Posts: 1240
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

FarColorer v1.3.28
1. Подготовка к поддержке прозрачности в Far
2. Оптимизация: не вызываем ACTL_SYNCHRO когда не в редакторе или когда всё распарсено
3. Оптимизация: ирнорируем события ввода кроме KEY_EVENT
Last edited by ctapmex on Mon 14 Jun, 2021 19:07, 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 »

FarColorer v1.3.29
1. продолжаем, подготовка к поддержке прозрачности в Far
Post Reply

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