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

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

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

Post by ctapmex » Wed 04 May, 2005 14:45

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 (в теме)
  • Тонкая настройка подсветки для отдельной схемы: в теме.

topmo3
Posts: 144
Joined: Mon 21 Aug, 2006 15:36
Has thanked: 8 times
Been thanked: 5 times

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

Post by topmo3 » Sun 14 Feb, 2016 19:52

Latest post of the previous page:

скопировал файл "C:\Program Files\Far3\Plugins\FarColorer\base\hrc\proto.hrc" к себе "C:\Users\user\AppData\Roaming\Far Manager\Profile\FarColorer\my.hrc" и назвал его my.hrc

указал в настройках колорера "Файл списка схем пользователя" полный путь к my.hrc

удалил из my.hrc все <prototype .. </prototype> кроме jScript и добавил расширение pac:

Code: Select all

  <prototype name="jScript" group="inet" description="JavaScript">
    <filename>/\.(js|mocha|pac)$/i</filename>
  </prototype>
как шапке сказано, не указываю location, только filename измененный
не работает расраска ни *.js, ни *.pac

если поменять у прототипа например name="jScript1" то *.js снова работает.
т.е. my.hcr виден и учитывается...

можете подсказать, где я ошибся?

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

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

Post by John Doe » Sun 14 Feb, 2016 22:36

topmo3 wrote: удалил из my.hrc все <prototype .. </prototype> кроме jScript и добавил расширение pac:
Вот так работает:

Code: Select all

<?xml version="1.0" encoding='Windows-1251'?>
<!DOCTYPE hrc PUBLIC
  "-//Cail Lomecb//DTD Colorer HRC take5//EN"
  "http://colorer.sf.net/2003/hrc.dtd"
>
<hrc version="take5" xmlns="http://colorer.sf.net/2003/hrc"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://colorer.sf.net/2003/hrc http://colorer.sf.net/2003/hrc.xsd">

  <prototype name="jScript" group="inet" description="JavaScript">
    <filename>/\.(js|mocha|pac)$/i</filename>
  </prototype>
</hrc>

User avatar
macik
Posts: 42
Joined: Wed 06 Apr, 2011 14:40

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

Post by macik » Sun 14 Feb, 2016 22:46

Жаль пропустил, ваше сообщение.

hint: Сообщения с цитированием обращают на себя гораздо больше внимания, особенно в теме с общими обсуждениями.

topmo3
Posts: 144
Joined: Mon 21 Aug, 2006 15:36
Has thanked: 8 times
Been thanked: 5 times

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

Post by topmo3 » Mon 15 Feb, 2016 19:27

John Doe wrote: Вот так работает:
да именно так я и делал (оставил еще эти всякме ENTITY...
скопировал Ваш вариант - то же самое, не работает *pac и перестает работать *.js
как меняю название name="jScript1" - *.js начинает опять работать...

включил лог,
вернул оригинальную строку


как бы location указать без путей, чтобы оригинальный был?

Far 3.0 build 4547 x86
Last edited by topmo3 on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: [spoiler]

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Mon 15 Feb, 2016 20:22

@topmo3, а если путь с %FARHOME% попробовать? Вроде добавляли поддержку переменных окружения. В моем my-catalog.xml они используются и работают. В my-proto.hrc не проверял.

topmo3
Posts: 144
Joined: Mon 21 Aug, 2006 15:36
Has thanked: 8 times
Been thanked: 5 times

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

Post by topmo3 » Mon 15 Feb, 2016 20:39

Спасибо. Работает абсолютный путь :
<location link="jar:C:\Program Files\Far3\Plugins\FarColorer\base\hrc\common.jar!inet/jscript.hrc"/>

и, что самое прекрасное, с помощью %FARHOME% :
<location link="jar:%FARHOME%\Plugins\FarColorer\base\hrc\common.jar!inet/jscript.hrc"/>

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

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

Post by John Doe » Tue 16 Feb, 2016 20:28

topmo3 wrote: скопировал файл "C:\Program Files\Far3\Plugins\FarColorer\base\hrc\proto.hrc" к себе "C:\Users\user\AppData\Roaming\Far Manager\Profile\FarColorer\my.hrc" и назвал его my.hrc
Подозреваю что всё дело в этом: относительные пути понимаются относительно нового my.hrc, а не оригинального proto.hrc, как ожидается.
Имхо стоит исправить в плагине.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Tue 16 Feb, 2016 20:30

John Doe wrote: Подозреваю что всё дело в этом: относительные пути понимаются относительно нового my.hrc, а не оригинального proto.hrc, как ожидается.
Имхо стоит исправить в плагине.
Имхо не стоит ничего править в плагине. У моего my-proto.hrc относительные пути используются, как относительные от него. И это именно то, что мне надо.

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

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

Post by John Doe » Tue 16 Feb, 2016 20:36

NightRoman wrote: У моего my-proto.hrc относительные пути используются, как относительные.
Так кто ж против.
Речь немного о другом: путь задан в proto.hrc, а в my.hrc переопрделяются совсем другие атрибуты (маска)

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Tue 16 Feb, 2016 20:38

Тогда непонятно. Что нужно править в плагине, конкретно?

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

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

Post by John Doe » Tue 16 Feb, 2016 21:35

С самого начала.
Вот наш прототип из proto.hrc:

Code: Select all

  <prototype name="jScript" group="inet" description="JavaScript">
    <location link="jar:common.jar!inet/jscript.hrc"/>
    <filename>/\.(js|mocha)$/i</filename>
  </prototype>
Путь location относительный, считается относительно proto.hrc, всё работает.

Далее, хотим добавить маску, для чего в пользовательском my.hrc переопределяем filename:

Code: Select all

  <prototype name="jScript" group="inet" description="JavaScript">
    <filename>/\.(js|mocha|pac)$/i</filename>
  </prototype>
И вот тут происходит кое-что неявное: location не меняли, но путь теперь уже считается относительно нашего my.hrc, и всё перестаёт работать.

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

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

Post by ctapmex » Wed 17 Feb, 2016 05:14

в my.hrc происходит явное полное переопределение прототипа. как только мы видим совпадающее имя, старый прототип удаляется полностью. а на его место добавляется этот. т.е. тут нет частичного переопределения.
хотя идею использования дублей прототипов как доопределяющих существующий . тогда filename/firstline добавляются к уже существующим; location заменяет всегда; что делать с group , если она отличается ?

относительные пути всегда смотрятся от файла, в котором они заданы.

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

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

Post by Aidar » Wed 17 Feb, 2016 05:38

Можно добавить параметр: полное переопределение, доопределение и т.п.

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

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

Post by John Doe » Wed 17 Feb, 2016 07:52

ctapmex wrote: как только мы видим совпадающее имя, старый прототип удаляется полностью.
Определённо это не так.
Ведь пример 2мя постами выше рабочий, и особо обращаю внимание на то, что в прототипе из my.hrc отсутствует определение location.
И тем не менее он как-то работает, о чём уже давно сказано в шапке.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Wed 17 Feb, 2016 08:05

John Doe, то есть мерж предлагается? Смысл, может, и есть. Но будет ли проще, неясно. А еще это может поломать то, что уже сделано. Раньше не мержилось, а будет мержиться. Лишние данные из оригинального прототипа просочаться в переопределенный. Может, не надо ничего менять? Полное переопределение, может, и чуть больше работы требует, зато все четко, как надо, так и описываем.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 14 times
Contact:

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

Post by NightRoman » Wed 17 Feb, 2016 08:08

Либо исключение сделать только для location. Если в новом определении не указано, то используется старое, именно старый путь уже вычисленный. Если именно это предлагается, то стоит подумать, наверное.

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

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

Post by ctapmex » Wed 17 Feb, 2016 12:33

John Doe wrote:
ctapmex wrote: как только мы видим совпадающее имя, старый прототип удаляется полностью.
Определённо это не так.
Ведь пример 2мя постами выше рабочий, и особо обращаю внимание на то, что в прототипе из my.hrc отсутствует определение location.
И тем не менее он как-то работает, о чём уже давно сказано в шапке.
я конечно это проверю, но по коду идет явное удаление всего прототипа. без вариантов. имя совпало -удалили из всех массивов.
другой момент, что колорер не ругается на отсутствие location. нет, ну и ладно. работаю дальше.

Post Reply

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