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.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

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

Post by Taciturn »

Latest post of the previous page:

Всё ещё очень хочу узнать как сделать чтобы типом по умолчанию был «plain text», а не «default type»?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Переопределить plain text, изменив маску и вес.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

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

Post by Taciturn »

Спасибо

Code: Select all

  <prototype name="text" group="other" description="plain text">
    <location link="jar:%FarHome%\Plugins\FarColorer\base\hrc\common.jar!misc/text.hrc"/>
    <filename weight='1.5'>//</filename>
  </prototype>
вроде бы работает нормально.
Last edited by Taciturn on Sun 04 Feb, 2018 15:28, edited 1 time in total.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

HaRT и John Doe



Большое спасибо за ваши подсказки! Однако, в очередной раз поупражнявшись и подзапутавшись, вернулся к выводу о том, что в моём случае "овчинка выделки не стоит". И ограничился следующим простым способом.

В файле %FarHome%\plugins\FarColorer\base\hrc\proto.hrc в разделе name="lua" в регекспе строки <filename>/\.(w?lua)$/i</filename> фрагмент lua поменял на lu\w* и всё. И когда слетит, то не сложно будет и восстановить.

John Doe wrote: Thu 11 Jan, 2018 13:19Попробуйте, если не получится, то будем разбираться.
Благодарю Вас за готовность помочь разобраться основательнее! Но полагаю, что дело того не стоит, чтобы из-за простого случая осваивать сравнительно большой блок далеко не банальной информации. Тем более, что в моём случае, это к очередному разу вполне может и забыться.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

sToLp wrote: Sat 20 Jan, 2018 18:37И ограничился следующим простым способом.
Не лень будет при каждом обновлении повторять процедуру?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

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

Post by sToLp »

John Doe wrote: Sun 21 Jan, 2018 10:33Не лень будет при каждом обновлении повторять процедуру?
Так ведь .
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

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

Post by siberia-man »

John Doe wrote: Sun 21 Jan, 2018 10:33Не лень будет при каждом обновлении повторять процедуру?
Если кастомные настройки вынести в отдельный каталог, то проблем с обновленифми не будет:

IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Выполнение команды lua:editor.Editor(far.MkTemp(),"test",1,1,80,2) приводит к
Windows XP SP3, Far30b5134.x86.20180201, чистый профиль, только стандартные плагины.
Last edited by IgorZ on Thu 01 Feb, 2018 07:54, edited 1 time in total.
User avatar
tvel
Posts: 38
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl
Has thanked: 5 times

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

Post by tvel »

kyodzou wrote: Thu 11 Jan, 2018 14:44

Code: Select all

      <import type="def"/>
      <region name="ftComment" parent="Comment"/>
...
<!-- Linear Comments -->
         <regexp start="/^([$].*$)/i" region0="ftComment"/>
http://colorer.sourceforge.net/hrc-ref/ ... esyntax.re
У элемента <regexp> нет и не было атрибута start=. Ошибка, по идее такой HRC вообще работать не должен.
kyodzou wrote: Thu 11 Jan, 2018 14:44Colorer коректно подсвечивает закоментированную строку, но если в этой строке есть числа - они подсвечиватся как числа а не как коментарий. Я так понял, это свойства родительского стиля parent="Comment".
Нет. Регионы - не схемы. Наследование регионов имеет значение только при их интерпретации в HRD. Грубо говоря регион=цвет, а не алгоритм раскраски. Так как regexp не работал вообще, то строка покрасилась другими регекспами/блоками, оказавшимися самым сильным по приоритету и предназначенные для чисел.
User avatar
tvel
Posts: 38
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl
Has thanked: 5 times

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

Post by tvel »

Taciturn wrote: Thu 18 Jan, 2018 21:53Всё ещё очень хочу узнать как сделать чтобы типом по умолчанию был «plain text», а не «default type»?
viewtopic.php?p=115552#p115552
sToLp wrote: Sat 20 Jan, 2018 18:37В файле %FarHome%\plugins\FarColorer\base\hrc\proto.hrc в разделе name="lua" в регекспе строки <filename>/\.(w?lua)$/i</filename> фрагмент lua поменял на lu\w* и всё. И когда слетит, то не сложно будет и восстановить.
Выше в сообщении есть ссылка, просто переопределите прототип lua на свой добавлением файла в auto. Файл можно назвать как угодно, prototype тоже, но вроде можно и совпадающий с существующим прототипом.
User avatar
Taciturn
Posts: 600
Joined: Thu 26 May, 2005 17:14
Location: Санкт-Петербург
Has thanked: 89 times
Been thanked: 31 times
Contact:

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

Post by Taciturn »

tvel, если считать это ответом на мой вопрос, то ваш вариант не работает, в нём же нет никакой схемы, получается тот же «default type», только с другим именем, а вовсе не «plain text». Разве что регэксп можно упростить — с «/(.*)/i» до «//».
User avatar
tvel
Posts: 38
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl
Has thanked: 5 times

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

Post by tvel »

Taciturn wrote: Sun 04 Feb, 2018 15:32ваш вариант не работает
Sim отписался что работает.
Taciturn wrote: Sun 04 Feb, 2018 15:32в нём же нет никакой схемы
Другое дело, что можно упростить до банального переопределения прототипа - обёрнуть ваш прототип в пустышку hrc для папки auto (возможно именно так вы и сделали). Но как я предложил - надёжнее, создаётся новый тип, со своими настройками (что иногда важно) и который будет срабатывать независимо от оригинального прототипа text, который продолжит матчится со своим filename.
Taciturn wrote: Sun 04 Feb, 2018 15:32получается тот же «default type», только с другим именем, а вовсе не «plain text»
Нет.
vassili
Posts: 2
Joined: Sat 10 Mar, 2018 12:20

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

Post by vassili »

подскажите, как расшифровать цвета в *.hdr файле?
например,

Code: Select all

 back="#10e8e8eb">		
это RGB(238 238 238)? каким образом преобразовывать?
или

Code: Select all

back="#e0a0a0e0
как узнать какой это цвет?
vassili
Posts: 2
Joined: Sat 10 Mar, 2018 12:20

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

Post by vassili »

или

Code: Select all

fore="#e0000000" back="#e0a0a0e0"
что это за цвет? как узнать?
User avatar
CrazyMihey@Mail.Ru
Posts: 5
Joined: Thu 03 Apr, 2008 12:39
Location: Россия, Москва
Contact:

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

Post by CrazyMihey@Mail.Ru »

РедкоПроЯвляющийся Глюк.
Нарушение РасКраски Кода сложно, но можно словить при использовании хитрых сплетений разного рода Кавычек, Апострофов и «ЗаРезервированных Слов»
Image

В данном Примере глюк с Очернением всего Кода до конца Файла не проявляется, если изменить последовательность Символов «case».
Конечно, Это не страшно, но Разработчикам следует знать.
sabio
Posts: 15
Joined: Fri 30 Jan, 2015 14:18

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

Post by sabio »

Мне кажется, при автоматическом определении типа имело бы смысл отдавать предпочтение типам, добавленным в Favorites.

Сейчас файл вида

Code: Select all

{
  "name": {
  }
}
определяется как Pascal. А я бы хотел, чтобы выбирался JSON, который я вынес в Favorites.

Я знаю, что этого можно добиться создав кастомный каталог в профиле и изменив вес для типа JSON.
Но, мне кажется, для такого случая Favorites был бы более гибким и гораздо более простым способом.

Добавлено:
Ха! Как оказалось, для JSON вообще не было определено распознавание по первой строке.
Исправил в итоге так:

Code: Select all

   <prototype name="json" group="rare" description="JSON">
    <location link="jar:%FARHOME%\plugins\FarColorer\base\hrc\common.jar!rare/json.hrc"/>
    <filename weight='3'>/\.json$/i</filename>
    <firstline weight='3'>/^(\{|\[)/</firstline>
   </prototype>
Last edited by sabio on Thu 17 May, 2018 13:32, edited 1 time in total.
Post Reply

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