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

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

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

Post by NightRoman » Tue 23 Apr, 2013 15:22

Latest post of the previous page:

John Doe wrote:Colorer не допускает наличие скобок в URL, например: http://msdn.microsoft.com/en-us/library ... s.85).aspx
Исправимо?

Вот rfc если что.
Раз зашла речь, то я бы подумал и о том, стоит ли ограничивать список начала URL набором типа ftp, http, и т.д. что там заложено. На все случаи не заложишься. Вот относительно недавно у меня такие появились, например - evernote:///view/... из Evernote. Броузер их прекрасно обрабатывает, если есть этот софт, это-таки URL, но колорер не понимает и не красит.

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

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

Post by NightRoman » Tue 23 Apr, 2013 15:34

В спецификации по ссылке от John Doe это начало URL называется "scheme". При беглом просмотре вроде не нашел, что это "слово" ограничено каким-то фиксированным набором.

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

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

Post by John Doe » Tue 23 Apr, 2013 15:42

Раз уж на меня начали ссылаться, то вот актуальная версия rfc: http://tools.ietf.org/html/rfc3986

Kirill
Posts: 262
Joined: Thu 04 Aug, 2005 10:27
Location: Kaliningrad
Has thanked: 1 time
Contact:

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

Post by Kirill » Thu 25 Apr, 2013 06:30

Добрый день.
Не подскажете, это как-то можно исправить http://forum.farmanager.com/viewtopic.p ... 085#p42085 ?
У меня последняя версия Far и FarColorer. Сохранил конфиг в файл. При просмотре этого файла строки идущие за длинной строкой (например <setting key="Colors" name="CurrentPalette" ) подсвечены как ошибочные :(

Hedin
Posts: 206
Joined: Thu 17 Mar, 2005 10:29
Has thanked: 3 times

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

Post by Hedin » Thu 25 Apr, 2013 08:13

Kirill, надо в настройках нужной схемы увеличить значение параметра "maxlinelength".

Kirill
Posts: 262
Joined: Thu 04 Aug, 2005 10:27
Location: Kaliningrad
Has thanked: 1 time
Contact:

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

Post by Kirill » Thu 25 Apr, 2013 09:35

Hedin wrote:Kirill, надо в настройках нужной схемы увеличить значение параметра "maxlinelength".
Спасибо. Помогли разобраться.

User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 2 times
Contact:

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

Post by t-rex » Sun 28 Apr, 2013 16:44

Для нового API:

Index: FarEditor.cpp
===================================================================
--- FarEditor.cpp (revision 1952)
+++ FarEditor.cpp (working copy)
@@ -7,6 +7,8 @@
this->info = info;
ei.StructSize = sizeof(EditorInfo);
info->EditorControl(CurrentEditor, ECTL_GETINFO, NULL, &ei);
+ EditorSubscribeChangeEvent esce = { sizeof(EditorSubscribeChangeEvent), MainGuid };
+ info->EditorControl(CurrentEditor, ECTL_SUBSCRIBECHANGEEVENT, 0, &esce);
cursorRegion = NULL;
prevLinePosition = 0;
blockTopPosition = -1;
@@ -36,6 +38,8 @@

FarEditor::~FarEditor()
{
+ EditorSubscribeChangeEvent esce = { sizeof(EditorSubscribeChangeEvent), MainGuid };
+ info->EditorControl(ei.EditorID, ECTL_UNSUBSCRIBECHANGEEVENT, 0, &esce); //detroyed class might not be related to CurrentEditor
delete cursorRegion;
delete structOutliner;
delete errorOutliner;

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

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

Post by ctapmex » Mon 29 Apr, 2013 04:59

внес изменения, спасибо

User avatar
t-rex
Страшный и ужасный
Posts: 4903
Joined: Tue 15 Mar, 2005 16:17
Location: Tel-Aviv
Has thanked: 1 time
Been thanked: 2 times
Contact:

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

Post by t-rex » Mon 29 Apr, 2013 07:11

там даже minfarver не надо было менять, оно же обратно совместимо. но это так, фигня.

User avatar
bigvax
Posts: 20
Joined: Fri 02 Jun, 2006 17:18
Location: где-то во времени
Has thanked: 1 time
Been thanked: 1 time
Contact:

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

Post by bigvax » Sun 05 May, 2013 06:11

Вопрос к гуру.
Я иногда использую шаблонизатор smarty (http://smarty.net) - к сожалению, приходится вести много проектов построенных с его использованием.
В смарти код шаблона расположен прямо в тексте файла html и ограничен символами { и }.
Раньше, что-бы выделять синтаксис шаблона smarty в html-файле, я вносил 2 правки в html.hrc:
1. перед объявлением регионов (строка ~43)

Code: Select all

<region name="htmlSmarty" parent="Insertion"/>
2. После объявления HTML::Template (строка ~ 685)

Code: Select all

<regexp match="/\{ .*? \}/x" region0="htmlSmarty"/>
т.е. не заморачиваясь разбором синтаксиса самого smarty, блоки шаблона выделялись цветом блока "Insertion"
мне этого вполне хватало, для наглядности, и помогало выискивать чуждые блоки в тексте HTML.

Теперь, после еженощного обновления FarColorer, возникла необходимость вынести всю эту байду в отдельный .hrc файл, дабы не править html.hrc каждого дня.
Я до этого никогда не писал HRC и опыта в этом у меня нет.

Я сделал вот так:

Code: Select all

<type name="smarty">
  <annotation>...skip...</annotation>
  <import type="def"/>
  <region name="htmlSmarty" parent="def:Insertion"/>
  <scheme name="smarty-html">
    <regexp match="/\{ .*? \}/x" region0="htmlSmarty"/>
    <inherit scheme="html:html">
      <virtual scheme='html:html' subst-scheme='smarty-html'/>
    </inherit>
  </scheme>
  <scheme name="smarty">
    <inherit scheme="html:html">
      <virtual scheme='html:html' subst-scheme='smarty-html'/>
    </inherit>
  </scheme>
</type>
Часть блоков smarty стала нормально отображаться, но часть не подкрашивается. Причем, в основном в начале файла.
При анализе самим Colorer'ом (Данные региона), блоки правильно подкрашенные показывают значения: Region: smarty:htmlSmarty и Scheme: html:htmlPairInside
А неподкрашенные блоки показывают пустые Region и Scheme.

Как с этим бороться - так и не понял. Вероятно что-то напортачил в HRC. В общем случае мне нужно выделить в HTML блоки ограниченные символами { и }.
Подскажите, плиз, что с этим делать.
Всегда виртуально Ваш, BigVax

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

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

Post by lazyeugene » Sun 05 May, 2013 06:26

Почему не сделать свою схему для smarty? Могу предложить взять, например, схему twig и переделать её в smarty (в twig тоже используются фигурные скобки). Если совсем уж неохота разбираться - можно вытащить всё, что касается хтмл-схемы и положить отдельно, указав путь к персональным схемам.

User avatar
bigvax
Posts: 20
Joined: Fri 02 Jun, 2006 17:18
Location: где-то во времени
Has thanked: 1 time
Been thanked: 1 time
Contact:

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

Post by bigvax » Sun 05 May, 2013 06:35

lazyeugene wrote:Почему не сделать свою схему для smarty? Могу предложить взять, например, схему twig и переделать её в smarty (в twig тоже используются фигурные скобки). Если совсем уж неохота разбираться - можно вытащить всё, что касается хтмл-схемы и положить отдельно, указав путь к персональным схемам.
Я пытался. Честно.
Причем мучал и twig тоже. Не получилось :(

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

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

Если-бы кто-либо опытный сделал базовый HRC-пустышку для смарти, то я-бы его наполнил уже конкретным синтаксисом.
Всегда виртуально Ваш, BigVax

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

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

Post by ctapmex » Tue 07 May, 2013 04:55

данный вопрос решился. в текущей сборке схема для smarty присутствует. спасибо lazyeugene

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

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

Post by AleXH » Tue 07 May, 2013 05:43

Ветер отзывчивости подул, видно весна пришла! :-D

Снова подниму тему с цветовым выделением букв кириллицы "ABCEHKMOPTX" и "aceopxy", которые по написанию идентичны латинице. И хоть некие товарищи не хотят признавать, что такая цветовая схема необходима в дистрибутиве, замечу, что даже внутри одного языка O и 0 программисты почему-то сочли необходимым писать по-разному, в то время как у нас не предусмотрено различие одинаковых по написанию символов между двумя РАЗНЫМИ языками. Само по себе это уже нонсенс для плагина, который пытается улучшить визуальное различие между разными группами символов с целью более быстрого нахождения ошибок в тексте.

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

В плане юзабилити имхо наиболее удобно было бы иметь возможность включать и выключать проявку "ABCEHKMOPTX" и "aceopxy" на любых текстах, т.е. проявка выполняется после всех раскрасок.

User avatar
tvel
Posts: 38
Joined: Wed 17 Mar, 2010 23:48
Location: Lenobl
Has thanked: 5 times

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

Post by tvel » Tue 07 May, 2013 07:40

что такая цветовая схема необходима в дистрибутиве
Схема для какого типа? Для всех типов? Опция для типов?

Если речь о конкретных синтаксисах, в которых кириллица или наоборот латиница в определённом контексте - ошибка, то это проблемы каждой конкретной схемы HRC, а не колорера в целом.
Если речь о синтаксисах, где контекст кириллицы не играет роли, то таких схем не много, но опять же это исправляется/добавляется в конкретной схеме HRC.

Подсветка кириллицы не является в общем случае подсветкой синтаксиса, колорер создан для подсветки синтаксиса, есть другие плагины.
То что вы предлагаете - либо накладно, либо неудобно реализовывать в рамках колорера (но возможно).

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

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

Post by Max Rusov » Tue 07 May, 2013 07:45

Вообще, лучше, чтобы это можно было включать/выключать на лету. А сейчас такое можно реализовать даже макросом, типа такого. Было бы независимо от схемы (и даже от колорера).

User avatar
HaRT
Moderator
Posts: 9097
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 162 times

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

Post by HaRT » Tue 07 May, 2013 12:55

AleXH wrote:Снова подниму тему с цветовым выделением букв кириллицы "ABCEHKMOPTX" и "aceopxy", которые по написанию идентичны латинице.
Так при чём тут Колорер? Ведь эти символы не являются принадлежностью синтаксиса.
И почему только кириллица-латиница? (Кстати, пропущена „украинская” ‘і’, которая очень похожа на ‘i’ латинскую.) Вон, в греческом алфавите полно заглавных букв, которые начертанием совпадают с соответствующими символами кириллицы и/или латиницы, да и вообще в Юникоде много внешне похожих символов.
Пусть будет отдельный плагин, который позволит подобные сходства удобно визуализировать.
Last edited by HaRT on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Добавлена ссылка
Фар есть инструмент, а не нянька. © 2009 DrKnS

Post Reply

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