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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1241
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
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

Latest post of the previous page:

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

есть плюс - теперь немного стал разбираться в параметрах сборки
Attachments
colorerSSE2.7z
(122.96 KiB) Downloaded 267 times
colorer.7z
(123 KiB) Downloaded 264 times
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

Post by Игорь Юдинцев »

Athlon64 3000+, сборка с SSE2 обработала 37 тыс. строк ассемблерного кода за 1:27, против 1:20 без SSE2.
JFK
Posts: 34
Joined: Fri 05 Jan, 2007 06:37

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

Post by JFK »

Игорь Юдинцев wrote:Athlon64 3000+, сборка с SSE2 обработала 37 тыс. строк ассемблерного кода за 1:27, против 1:20 без SSE2.
Оно и не удивительно - давно известно, что на Атлонах SSE2 реализован криво. Как-то разработчики Lame проводили тестирование энкодера с включенной оптимизацией SSE2. На P4 и С2D наблюдался значительный рост производительности, а на процессорах AMD скорость падала.

sonar
sonar wrote:лучше бы кто другой собрал сразу, я во время сборки накосячил в параметрах, и поэтому так все тормозило. сейчас даже без ss2 должна летать.
Выложи исходники, пожалуйста, если не в напряг... Хочу попробовать пересобрать плагин компилятором Intel со всеми оптимизациями - интересно, насколько изменится его производительность.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

исходники не мои, так что напряга никакого :)
вот держи
обновление
все исходники доступны в репозитории
JFK
Posts: 34
Joined: Fri 05 Jan, 2007 06:37

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

Post by JFK »

Собрал сабж для Far 2 компилятором Intel C++ 11.1, включил распараллеливание, все оптимизации для SSE2 и опциональные ветки для SSE3.

Заголовки поменял на последние, от Far 2 build 1011.
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

Post by Игорь Юдинцев »

Повторил тестирование для библиотек без SSE2, с SSE2 и для библиотеки, собранной ICC.
CPU: Core2 E6300 (2 ядра, 1 МБ L2 кэша).
Файлы: 12 тыс. строк С++ (380 КБ), 33 тыс. строк ASM (700 КБ), 67 тыс. строк ASM (1,5 МБ), 130 тыс. строк ASM (3 МБ).
Для каждого файла результаты совпадают у всех трёх библиотек.
ccaid
Posts: 908
Joined: Fri 12 Jun, 2009 16:04
Has thanked: 24 times
Been thanked: 6 times

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

Post by ccaid »

Игорь Юдинцев wrote:Повторил тестирование для библиотек без SSE2, с SSE2 и для библиотеки, собранной ICC.
Для каждого файла результаты совпадают у всех трёх библиотек.
а можно поподробнее о методике тестирования?
и еще интересно сравнить бы с colorer4ever.
Фар делают добрые люди
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

Post by Игорь Юдинцев »

ccaid wrote:а можно поподробнее о методике тестирования?
копирую нужную colorer.dll в Plugins\Colorer5\bin\, запускаю Far, открываю файл на последней строке, жду появления подсветки, закрываю, открываю заново и засекаю время до появления подсветки.
Самый большой файл раскрашивался 5:05.

с 4ever сравнивать нет смысла — насколько могу судить, он подсвечивает синтаксис не целиком, а только видимую на экране часть файла.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

Игорь Юдинцев wrote:с 4ever сравнивать нет смысла — насколько могу судить, он подсвечивает синтаксис не целиком, а только видимую на экране часть файла.
не видимую, а настраивается там сколько строк назад смотреть. обычно всё таки чуть больше :)
с аирбраш можно сравнить, он тоже целиком красит :)
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

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

Post by Denis »

zg
Airbrush рулит! Вот только так лень делать подсветку c#. Может у кого-нибудь есть уже готовая? :oops:
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

Denis wrote:Вот только так лень делать подсветку c#. Может у кого-нибудь есть уже готовая? :oops:
вряд ли.
Maximus5
Posts: 3295
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 10 times
Contact:

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

Post by Maximus5 »

Пользуюсь Colorer'ом в основном из-за Outliner & "Match/Select pair".
Вот только без включения раскраски самим колорером фичи не работают.
А так бы на airbrush наверное перешел...
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

Игорь Юдинцев wrote:
ccaid wrote:а можно поподробнее о методике тестирования?
копирую нужную colorer.dll в Plugins\Colorer5\bin\, запускаю Far, открываю файл на последней строке, жду появления подсветки, закрываю, открываю заново и засекаю время до появления подсветки.
Самый большой файл раскрашивался 5:05.

с 4ever сравнивать нет смысла — насколько могу судить, он подсвечивает синтаксис не целиком, а только видимую на экране часть файла.
А в чем смысл раскрашивать весь файл? особенно если он ну очень здоровый? Не знаю как у других, а у меня ни разу не было глюков с раскраской синтаксиса при использовании 4ever, разве что иногда он не видит конец строки если строка очень длинная (несколько тысяч символов) и не учитывает кавычку в конце строки, а в остальном все ок.
Случайности не случайны.
User avatar
Sim
Posts: 435
Joined: Fri 12 Jun, 2009 09:43
Has thanked: 11 times
Been thanked: 2 times
Contact:

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

Post by Sim »

zg wrote:
Игорь Юдинцев wrote:с 4ever сравнивать нет смысла — насколько могу судить, он подсвечивает синтаксис не целиком, а только видимую на экране часть файла.
не видимую, а настраивается там сколько строк назад смотреть. обычно всё таки чуть больше :)
с аирбраш можно сравнить, он тоже целиком красит :)
Не подскажете где это настраивается? я что-то не нашел нигде такую опцию.
Случайности не случайны.
JFK
Posts: 34
Joined: Fri 05 Jan, 2007 06:37

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

Post by JFK »

Игорь Юдинцев wrote:Повторил тестирование для библиотек без SSE2, с SSE2 и для библиотеки, собранной ICC.
Для каждого файла результаты совпадают у всех трёх библиотек.
Я проводил тестирование на заголовочных файлах из Microsoft SDK 6.0a. В частности, самый большой (~3 Мб, 86537 строк) файл Mshtmlc.h обрабатывался версией колорера без SSE за 36 секунд, и версией ICC/SSE2 за 32 секунды. Прирост небольшой, но он есть.

Причины такого небольшого прироста производительности, очевидно, лежат в алгоритме колорера, который плохо работает с длинными строками и не поддаётся параллелизации.
User avatar
ctapmex
Posts: 1241
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 50 times

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

Post by ctapmex »

по поводу колорера 5
что вы подразумиваете под "раскрашивает весь файл"?
если - открываешь файл и он его сразу полностью раскрашивает - то это в корни не верно.
он раскрашивает файл по мере просмотра. но надо учесть, что если часть файла уже раскрашена, а вы переходите к паре страниц вперед/назад , то раскраска не убирается.
это можно проверить особо не погружаясь в код. замечу только , что когда вы отключаете колорер, находясь в редаторе, то происходит лишь одно - флагу "работает" присваивается false. А проверяем так. открываем файл, можете подождать какое то время , если надеетесь что он разукрашивает. затем можете пройтись по файлу на пару страниц. а затем отключите плагин, и пройдитесь по файлу. становится видно , что страницы, которые вы не видели - не раскрашены. те что видели - раскрашены.
Post Reply

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