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

Здесь можно обсудить ваш любимый плагин.
User avatar
ctapmex
Posts: 1217
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 46 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 В настройках плагина указать путь к файлу, содержащему ссылки на пользовательские .hrd: Users file of color styles.
    Пример структуры файла: http://forum.farmanager.com/viewtopic.p ... 60#p123060
  • Или подключить пользовательские .hrd в пользовательском catalog.xml

Внимание: в пользовательском файле цветовых стилей пути вычисляются относительно catalog.xml[/spoiler]
Пример: viewtopic.php?p=160386#p160386

[*]Как подключить собственную схему:
  • используя пользовательский файл прототипов:
  • используя папку auto:
  • через пользовательский catalog.xml:
[]Как переопределить существующую схему
[*]Как правильно "удалить" какую-либо стандартную схему
[]Как использовать относительные пути и переменные окружения В настройках плагина при указании пути к catalog.xml удобно использовать переменные окружения, такие как %FARHOME%, %FARPROFILE%.
Переменные можно использовать и в самом файле catalog.xml, и в определениях прототипов.
[]Кроме того поддерживаются относительные пути во всех hrc файлах (путь вычисляется относительно файла, в котором он указан).
Внимание: в пользовательском файле цветовых стилей (hrd) пути вычисляются относительно catalog.xml[/list][/spoiler]

[*]Если раскраска неправильна:
[]Неочевидные настройки: maxlinelength (в теме)
[*]Тонкая настройка подсветки для отдельной схемы: в теме.
[/list]
Last edited by ctapmex on Mon 18 Oct, 2021 19:17, edited 5 times in total.
User avatar
NightRoman
Posts: 6109
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 25 times
Been thanked: 58 times
Contact:

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

Post by NightRoman »

Latest post of the previous page:

А синтаксис я брал из оригинального catalog.xml, там тоже без SYSTEM
User avatar
ctapmex
Posts: 1217
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 46 times

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

Post by ctapmex »

ну да, логично. не подумал об этом.
по сути патовая ситуация - по синтаксису xml нельзя %, но если добавить system (можно) - то это внешняя ссылка и парсер xml её пытается прочитать.
попробовал обходной вариант - плагин упал. гляну парсер xml в плагине. но схему править точно не буду
User avatar
ctapmex
Posts: 1217
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 46 times

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

Post by ctapmex »

в общем пока надо смерится с "ошибкой". единственный вариант корректного исправления, это замена % на hex код. но текущий парсер xml в плагине не поддерживает работу с hex значениями.
User avatar
NightRoman
Posts: 6109
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 25 times
Been thanked: 58 times
Contact:

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

Post by NightRoman »

sonar wrote:в общем пока надо смерится с "ошибкой". единственный вариант корректного исправления, это замена % на hex код. но текущий парсер xml в плагине не поддерживает работу с hex значениями.
Ясно. Спасибо, что посмотрел на это дело.
User avatar
ctapmex
Posts: 1217
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 46 times

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

Post by ctapmex »

darkmist wrote: Это происходит из-за того, что в схеме vbasic.hrc, из которой наследуется vbscript.hrc, обрабатывающий файлы с расширением vbs, схема PairedConstructions обрабатывается до Outlines, а используемые в PairedConstructions не содержат якоря дальнейшей обработки '\M'. Если применить такой патч:
то Outlines для указанных случаев начинают работать.
не знаю как у тебя и у Yuriy2000 завелось это исправление, но конкретно на предложенном тестовом файле не работает. нужно аналогично исправить и в vbscript.hrc . учтено будет в ближайшем релизе
darkmist wrote: Попутно: идентификаторы функций в outlines задаются как \w+. На самом деле, они, вероятно, \w[\w\d]*
тут все нормально . \w включает в себя \d
User avatar
Centaur
Posts: 1083
Joined: Tue 05 Apr, 2005 20:09
Location: Novosibirsk, Russia
Been thanked: 2 times

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

Post by Centaur »

sonar wrote:текущий парсер xml в плагине не поддерживает работу с hex значениями.
Тогда это не может называться парсером xml.
User avatar
ctapmex
Posts: 1217
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 46 times

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

Post by ctapmex »

он самописный, ранее устраивал всем требованиям .
смотрел библиотеки, которые тянули бы все требования. единственная подходящая , это xerces-c. она большая...
Игорь Юдинцев
Posts: 725
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

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

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

sonar, подходящая — в смысле поддерживающая DTD?
User avatar
ctapmex
Posts: 1217
Joined: Fri 11 Apr, 2008 07:53
Has thanked: 1 time
Been thanked: 46 times

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

Post by ctapmex »

жесткое требование (широко используемое в библиотеке), которое не поддерживается в популярном tinyxml и многих других , это внешние entity

Code: Select all

<!ENTITY catalog-console SYSTEM "hrd/catalog-console.xml">
.
я в общем то присмотрелся уже к xerces-c . мощная библиотека. еще к ней icu прицепить , так вообще мега)) но размер большой. хотя в наше время размер не так важен.
darkmist
Posts: 124
Joined: Wed 08 Aug, 2007 19:44

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

Post by darkmist »

sonar wrote:
darkmist wrote: Попутно: идентификаторы функций в outlines задаются как \w+. На самом деле, они, вероятно, \w[\w\d]*
тут все нормально . \w включает в себя \d
Да, действительно. Но тогда можно поправить еще в кучу других схем, где встречается сочетание вида [\w\d] и аналогичные.
Zzzz
Posts: 105
Joined: Sat 13 Oct, 2007 10:12
Been thanked: 1 time

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

Post by Zzzz »

А сейчас это неправильно красится в .lua :-(
Image
W7U SP1 x64
Max Rusov
Posts: 3644
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 15 times

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

Post by Max Rusov »

Поправленная схема для MacroLib'а.
Attachments
MacroLib.7z
(1.12 KiB) Downloaded 114 times
User avatar
NightRoman
Posts: 6109
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 25 times
Been thanked: 58 times
Contact:

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

Post by NightRoman »

Фар3. Работал с цветами редактора своем плагине, понадобился скриптик для дампа текущих цветов редактора. С его помощью заметил про колорер, что некоторые регионы перекрываются и возможно добавлены избыточно. Может, это так и задумано. Но может и нет - я лучше спрошу.

Файл catalog.xml из поставки. Дамп первой строки (отсортировано по позициям)
User avatar
tvel
Posts: 38
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl
Has thanked: 5 times

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

Post by tvel »

С его помощью заметил про колорер, что некоторые регионы перекрываются и возможно добавлены избыточно.
Перекрываются регионы, использованы умолчания для некоторых регионов, поэтому цвета одинаковые.
Всё правильно, можно задействовать все регионы из типа def в HRD с разными цветами - кому как нравиться.

Любые оптимизации при разных регионах но одинаковых цветах - сложны и могут сломать привычное поведение колорера.
User avatar
NightRoman
Posts: 6109
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 25 times
Been thanked: 58 times
Contact:

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

Post by NightRoman »

Любые оптимизации при разных регионах но одинаковых цветах - сложны и могут сломать привычное поведение колорера.
Хотя это верно, это ведь не обязательно причина не делать лучше, если можно. Другое дело, что приоритет задачи может быть невелик в силу многих причин.
User avatar
NightRoman
Posts: 6109
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 25 times
Been thanked: 58 times
Contact:

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

Post by NightRoman »

Кроме того, лишние регионы навсегда занимают память (до закрытия редактора), даже есть они за пределами экрана. Во всяком случае, так было в Фар2, в Фар3, вероятно тоже, так как CopyColor работает, используя эту особенность, и в Фар3.
Post Reply

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