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

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

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 (старые версии доступны тут)



Что не разжёвано в документации плагина:
  • Как подключить собственные цветовые стили *.hrd
  • Как подключить собственную схему:
    • используя пользовательский файл прототипов:
    • используя папку auto:
    • через пользовательский catalog.xml:
  • Как переопределить существующую схему
  • Как правильно "удалить" какую-либо стандартную схему
  • Как использовать относительные пути и переменные окружения
  • Если раскраска неправильна:
  • Неочевидные настройки: maxlinelength (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.

kobri
Posts: 15
Joined: Fri 15 Nov, 2013 14:42
Been thanked: 1 time

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

Post by kobri »

Latest post of the previous page:

HaRT wrote:Натравите на него профилировщик, проанализируйте результат, расшейте узкие места и предложите патч.
Патч делать не возьмусь, но, судя по профилировщику, основные тормоза в движке регэкспов идут:

Code: Select all

Function Name            Inclusive Samples   Exclusive Samples   Inclusive Samples %  Exclusive Samples %
CRegExp::lowParse        1202                663                 39,92                22,02
TextParserImpl::searchRE 2705                653                 89,84                21,69
TextParserImpl::searchKW 464                 246                 15,41                8,17
DString::operator[]      244                 241                 8,10                 8,00
CRegExp::parseRE         1466                214                 48,69                7,11
CRegExp::insert_stack    144                 144                 4,78                 4,78
VTList::pushvirt         88                  88                  2,92                 2,92
CRegExp::isWordBoundary  136                 85                  4,52                 2,82
String::compareTo        140                 64                  4,65                 2,13
dlfree                   54                  54                  1,79                 1,79
SString::operator[]      47                  47                  1,56                 1,56
Интересно насколько сложно будет подключить PCRE вместо встроенного движка, со включенным JIT он должен быстрее работать.

User avatar
ctapmex
Posts: 1013
Joined: Fri 11 Apr, 2008 07:53
Been thanked: 5 times
Contact:

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

Post by ctapmex »

kobri wrote: Интересно насколько сложно будет подключить PCRE вместо встроенного движка, со включенным JIT он должен быстрее работать.
с сохранением всех текущих возможностей - сложно.
текущий движок регекс простой, тормоза не из-за его скорости. скорее от того как оно все используется.

я, вяло, пытаюсь перевести его на ICU. но процесс идет медленно.
по ходу переделки выясняется, что многие регекспы записаны вообще не по стандартам , и не понятно как работают.

monsoon
Posts: 15
Joined: Thu 09 Oct, 2008 13:05

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

Post by monsoon »

Изменю вопрос: можно ли в CDATA hrc использовать квадратные скобки?
Почему работает связка /* */ :

Code: Select all

<block scheme="Comment" region="Comment">
     <start region0="PairStart"><![CDATA[/\/\*/]]></start>
      <end   region0="PairEnd"  ><![CDATA[/\*\//]]></end>
</block>
А если / заменить на квадратные скобки - нет:

Code: Select all

<block scheme="Comment" region="Comment">
     <start region0="PairStart"><![CDATA[/\[\*/]]></start>
      <end   region0="PairEnd"  ><![CDATA[/\*\]/]]></end>
</block>
Вообще как-то хитро используется CDATA. Для xml внутри CDATA нельзя использовать только последовательность ]]>
Также в xml: "Секция CDATA используется, для того чтобы задать область документа, которую при разборе анализатор будет рассматривать
как простой текст, игнорируя любые инструкции и специальные символы."
А в CDATA hrc спецсимволы экранируются.

kobri
Posts: 15
Joined: Fri 15 Nov, 2013 14:42
Been thanked: 1 time

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

Post by kobri »

Колорер сейчас довольно долго раскрашивает длинные файлы, причем процессор в это время слабо загружен. Происходит это, я так понимаю, из-за того, что колорер периодически отдает управление фару, чтобы тот мог ввод пользователя обработать. Предлагаю не отдавать управление, если пользователь в это время ничего не делает, проверять можно, например, с помощью GetNumberOfConsoleInputEvents

User avatar
John Doe
Бюрократ
Posts: 12658
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 271 times

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

Post by John Doe »

Так и задумано что в настройках кнопки { OK } [ Cancel ] уехали вправо?

User avatar
John Doe
Бюрократ
Posts: 12658
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 271 times

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

Post by John Doe »

Предусмотрена настройка параметров для каждой из схем: [ Scheme settings ][c].
Возможно ли реализовать там же переопределение filename, firstline, location?

User avatar
John Doe
Бюрократ
Posts: 12658
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 271 times

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

Post by John Doe »

Неувязки в хелпе @MacroCallPlugin
  1. Code: Select all

    callplugin("D2F36B62-A470-418d-83A3-ED7A3710E5B5",<Параметр>)
    callplugin это сейчас Plugin.Call
  2. В примере:

    Code: Select all

    Plugin.Call("0E92FC81-4888-4297-A85D-31C79E0E0CEE",0)
    Неверный гуид (Change Case), и параметр не соответствует
  3. Числовые значения из хелпа не соответствуют значениям из меню:
  4. Прилагаемый макрофайл не использует возможности Plugin.Call (макросы могу обновить)
Чтобы избежать неувязок с нумерацией, и сделать использование более наглядным, предлагаю вместо числовых значений использовать строки, например:

AntVS
Posts: 82
Joined: Thu 03 Nov, 2011 06:36

Colorer и цвет url-адреса

Post by AntVS »

Поставил Far3, в редакторе включен Colorer, хочу попробовать удобства.
Изменил цвет background'а синий -> черный (так привык):
Cofigure - TrueMod settings: Enabled - Color style: Black (scarlet)
но url-адрес http://www.TutByloImyaKhosta.com/ стал темно-синего цвета - еле виден
на чер. фоне.
Как закрасить его в др. - яркий - цвет?
Last edited by HaRT on Mon 05 May, 2014 15:26, edited 1 time in total.
Reason: Спрятана потенциальная реклама

Игорь Юдинцев
Posts: 725
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 1 time

Re: Colorer и цвет url-адреса

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

%FARHOME%\Plugins\FarColorer\base\hrd\console\black.hrd
(%FARHOME%\Plugins\FarColorer\base\hrd\rgb\black.hrd, если в ConEmu включен режим TrueMod)
искать строку "URL".

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

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

Post by Kerberos464 »

есть файлик с таким содержимым:
  1. local http = require("ssl.https")
  2. local resp = {}
  3. local hwid = GetHardwareKey()
слово "local" во второй строке раскрашено не так, как остальные:
2014-05-06 12_29_52-edit test.lua - Far 3.0.3891 x86 Administrator (Admin).png
2014-05-06 12_29_52-edit test.lua - Far 3.0.3891 x86 Administrator (Admin).png (3.53 KiB) Viewed 5846 times
экспериментальным путём выяснил, что это из-за фигурных скобок.
это баг?
Last edited by Kerberos464 on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [codebox=lua file=untitled.lua]
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

User avatar
Wave
Posts: 1771
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave »

Неплохо бы теперь *.moon красить из коробки, раз уж это стандартные скрипты фара.
Пользуюсь ФАРом больше 20 лет © собирательный.

User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Kerberos464 wrote:есть файлик с таким содержимым:
  1. local http = require("ssl.https")
  2. local resp = {}
  3. local hwid = GetHardwareKey()
слово "local" во второй строке раскрашено не так, как остальные... это баг?
Это не баг: в конструкции
  1. local var = {
символы local и = подсвечиваются как парные при переходе на них.

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

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

Post by Kerberos464 »

Aidar wrote:Это не баг: в конструкции
  1. local var = {
символы local и = подсвечиваются как парные при переходе на них.
но такая "странная" подсветка остаётся, даже когда курсор стоит не на скобках, и вообще не в этой строке.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Kerberos464 wrote:но такая "странная" подсветка остаётся, даже когда курсор стоит не на скобках, и вообще не в этой строке.
Странно, никогда не замечал такого в своих файлах. Может быть, приведёте весь файл и укажете версию FAR?

User avatar
Kerberos464
Posts: 1239
Joined: Wed 29 Jul, 2009 20:24
Location: Saint-Petersburg
Has thanked: 19 times
Been thanked: 1 time

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

Post by Kerberos464 »

эти три строки - и есть весь файл, хотя можно даже ещё короче:
  1. local var1 = 1
  2. local var2 = {}
слово local имеет разный цвет в первой и второй строке, даже когда курсор не находится на любой из этих строк.

far 3.0.3895 x86.
16.09.2012 14:35:28 +0200 - build 2799 - все нативные плагины перестали работать.
30.09.2012 03:26:20 +0200 - build 2851 - все макросы перестали работать.
31.02.2029 25:61:61 +0200 - build 6666 - весь фар перестал работать.

User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

Aidar wrote:Странно, никогда не замечал такого в своих файлах. Может быть, приведёте весь файл и укажете версию FAR?
Без курсора
Без курсора
local_1.png (5.41 KiB) Viewed 5886 times
С курсором
С курсором
local_2.png (5.39 KiB) Viewed 5886 times

Post Reply

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