Помогите разобраться

98 views
Skip to first unread message

XGuest

unread,
Feb 18, 2014, 2:37:57 AM2/18/14
to color...@googlegroups.com
Доброго времени суток

У меня вопрос по блокам
Стандартный Си Comment block /* String String */
Хочу передать все кроме вложенных комментариев.

<scheme name="Comments">
 <block start="/\m\/\*{2,2}/" end="/\*\//" region="CommentDoc" scheme="MyString" />
</scheme>

<scheme name="MyString">
 <block start="/^\m/" end="/\M(\/{2}.*)$|\*\//" scheme="Parse1" region="Comment" />
</scheme>

Если убрать в хвосте параметра end  \*\// в scheme="Parse1", весь файл а не только блок, не пойму я же в первой с схеме уже указал, что передаю блок.


P.S. Есть ли возможность из regexp match передать результат  region0-F в scheme
С наилучшими пожеланиями
XGuest

Aleksey Dobrunov

unread,
Feb 18, 2014, 9:47:29 AM2/18/14
to color...@googlegroups.com
Приветствую.
сформулируй что ты хочешь получить. из текста ниже не понятно. как и на форуме

Алексей 
(ctapmex)


18 февраля 2014 г., 13:37 пользователь XGuest <ap_bo...@utviv.ru> написал:

--
Вы получили это сообщение, поскольку подписаны на группу Колорер по русски.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес colorer_ru+...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.

Message has been deleted
Message has been deleted
Message has been deleted

Aleksey Dobrunov

unread,
Feb 18, 2014, 10:59:40 PM2/18/14
to color...@googlegroups.com
Приветствую. 
отклонились  твои письма в группу. ну ладно.
по вопросам:
1. нет такой возможности, и не понятно для чего
2. блок запоминает нижнюю границу, но иногда может её игнорировать в виду того что она эта граница есть в вложенной схеме
3. region в regexp тоже самое что и в block. это участки в регулярном сообщении , выделенные скобками, для каждого из которых region задает цвет.

в твоем случае надо действовать так 
- блок , начинается с  /* , заканчивается */  (вложенность не рассматриваю ).  ссылается на схему_1
- схема_1  содержит два блока
   блок_1  - начинается с *@ , заканчивается концом строки.  ссылается на схему_2
   блок_2  - начинается с *#, заканчивается концом строки. ссылается на схему_3
- схема_2 содержит регекспы
   рег1 - выделяет @Name:, и красит
   рег2 - выделяет остальное , до комментария
   рег3 - комментарий
- схема_3 аналогична схема_2

Алексей



18 февраля 2014 г., 22:17 пользователь XGuest <ap_bo...@utviv.ru> написал:
Хотелось разобрать шапку,
Имена параметров шапки контролирую, а как контролировать значения не совсем понимаю.
Интересуют несколько вопросов:

1) Есть ли возможность из regexp match передать результат  region0-F в scheme
2) Почему block не запоминает нижнюю границу
3) Что такое region0-F в regexp и можно ли их создать.

/*******************************************************************************
* @Name   : Sample.cs                                    // Имя файла
* @Guid   : {5BBAED1F-75A6-4837-AA01-AE50C9494667}       // GUID файла
* @Create : 18.02.2014/21:36:18                          // Дата создания
* @Exampl : Sample.exe /?                                // Пример использования
* @Params : [?|h|help]                                   // Параметры запуска
* @DescSh : Пример                                       // Описание
* #Target : [exe|winexe|library|module] // Вариант построения бинарного файла
* #Incdir : C:\INC\                     // Добавить в сборку все файлы каталога
* #Libdir : C:\LIB                      // Добавить в сборку все модули каталога
* #Includ :                             // Дополнительные файлы сборки
* #Refere :                             // Дополнительные модули сборки
*******************************************************************************/

anatoly techtonik

unread,
Feb 18, 2014, 11:41:03 PM2/18/14
to color...@googlegroups.com
2014-02-19 6:59 GMT+03:00 Aleksey Dobrunov <cta...@gmail.com>:
> Приветствую.
> отклонились твои письма в группу. ну ладно.

Я наверное по-привычке не ту кнопку нажал. Надо быть внимательнее. :/

XGuest

unread,
Feb 19, 2014, 1:56:28 AM2/19/14
to color...@googlegroups.com

Hi! Алексей


Спасибо!

1. Для меня как для пользователя, действительно неважно как раскрашивался 

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

   предварительную обработку найденного перед покраской, например, проверить

   наличие объекта в одной таблице, а по другой доступные объекту свойства или 

   методы. Но это просто навскидку, наверное, что то не так понимаю.

2. ОК. Понял.

3. А можно ли их (регионы) создать, по документации не понятно где они 

   инициализируются, что под этим термином понимать схему в packages или еще 

   что?

 

PS. А может где есть мануалы по работе с примерами на сайте что на русском что 

на английском не совсем понятно, да и примеров маловато, легче исходник 

Colorer'а покапать, чем в документации разобраться.




среда, 19 февраля 2014 г., 9:59:40 UTC+6 пользователь ctapmex написал:

Aleksey Dobrunov

unread,
Feb 19, 2014, 2:11:38 AM2/19/14
to color...@googlegroups.com
region1="ddd"
в данном случае "ddd" - название региона. оно должно быть объявлено в твоей схеме или импортироваться из другой схемы. оно наследуется от одной из стандартных схем.
всем этим названиям в hrd файле сопоставлены стили/цвета для отображения.
1 - означает номер региона в регулярном выражении. правила нумерации в мануалах на сайте есть, как на англ так и на русском. попросту - номер скобки слева.
так вот region1 задает стиль/цвет для участка строки выделенного регулярным выражением .

лучше мануалов нет.
примеров куча - все ранее созданные схемы.
смотри схему файла, синтаксис которого понятен. совсем простой misc/cue.hrc



19 февраля 2014 г., 12:56 пользователь XGuest <ap_bo...@utviv.ru> написал:

XGuest

unread,
Feb 19, 2014, 2:25:08 AM2/19/14
to color...@googlegroups.com
Спасибо.

среда, 19 февраля 2014 г., 13:11:38 UTC+6 пользователь ctapmex написал:

anatoly techtonik

unread,
Feb 19, 2014, 3:33:38 AM2/19/14
to color...@googlegroups.com
2014-02-19 9:56 GMT+03:00 XGuest <ap_bo...@utviv.ru>:
>
> 1. Для меня как для пользователя, действительно неважно как раскрашивался
>
> файл, но как программисту мне не совсем понятно, почему нельзя
> произвести
>
> предварительную обработку найденного перед покраской, например, проверить
>
> наличие объекта в одной таблице, а по другой доступные объекту свойства
> или
>
> методы. Но это просто навскидку, наверное, что то не так понимаю.

Декларативный формат требует, чтобы язык включал в себя действие
"проверить наличие объекта". В теории такое возможно. На практике - хез.

> 3. А можно ли их (регионы) создать, по документации не понятно где они
>
> инициализируются, что под этим термином понимать схему в packages или еще
>
> что?
>
>
>
> PS. А может где есть мануалы по работе с примерами на сайте что на русском
> что
>
> на английском не совсем понятно, да и примеров маловато, легче исходник
>
> Colorer'а покапать, чем в документации разобраться.

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

XGuest

unread,
Feb 19, 2014, 7:07:05 AM2/19/14
to color...@googlegroups.com

В принципе почти все что хотел, сделал, осталось  прикрутить  контроль на значения, чтоб GUID был GUID'ом, а ключи компилятора были ключами именно компилятора, а не файла помощи.

Хотелось сделать как-то так, может, кто что подскажет.


    <scheme name="Name">
      <keywords ignorecase="yes" region="Constant">
        <word name="compiler" region="compiler"/>
        <word name="Guid" region="Guid/>
      </keywords>
    </scheme>

  <type name="MyTmpl" >
    <region name="MyTmpl" description="Tmpl"/>
    <region name="compiler"  description="Регион разбора"/>

    <scheme name="Name">
      <keywords ignorecase="yes" region="Constant">
        <word name="GL/>
        <word name="CLR/>
         <!-- -->
    </scheme>

    <scheme name="MyTmpl"/>
  </type>
</hrc>

XGuest

unread,
Feb 19, 2014, 9:27:14 PM2/19/14
to color...@googlegroups.com
Доброго времени суток Алексей

    Не могу выполнить проверку значений, не мог бы ты посмотреть [файл во вложении].
И еще раз про регион как я понимаю это не просто ссылка на существующий регион, а что-то  с пред обработкой, не мог бы ты кинуть мне какой нибудь примерчик, когда смотрю файлы misc не совсем понимаю где где голова, а где ноги.


С наилучшими пожеланиями
XGuest


среда, 19 февраля 2014 г., 13:11:38 UTC+6 пользователь ctapmex написал:
region1="ddd"
MyTmp.zip

Aleksey Dobrunov

unread,
Feb 20, 2014, 10:55:37 AM2/20/14
to color...@googlegroups.com
Привет.
с регионами у тебя вроде все нормально. просто ты так подобрал названия , что их цвета в твоем цветовом стиле совпадают. замени Constant на Number, и ты увидишь сразу разницу.
по обработке значения - раскраска идет последовательно. перебираются схемы в том порядке как они объявлены в файле. и если найти не получается , начинает подниматься вверх. т.е. для корректной раскраски ты должен предусмотреть правила для всех подстрок. 
ты пытаешься разобрать .[exe|winexe|library|module] . но ты не задал правила для [ | ]. плюс <word> действует на слова. т.е. справа и слева "неслово". посмотри в документации описание .
ну и регулярка для guid не компилируется. вот рабочая из другой схемы
<regexp match="/(\{) [0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12} (\})/ix"
region="def:Number" region1="def:SymbolStrong" region2="def:SymbolStrong"
/>


Алексей.


20 февраля 2014 г., 8:27 пользователь XGuest <ap_bo...@utviv.ru> написал:

XGuest

unread,
Feb 20, 2014, 7:34:46 PM2/20/14
to color...@googlegroups.com
Спасибо

четверг, 20 февраля 2014 г., 21:55:37 UTC+6 пользователь ctapmex написал:

XGuest

unread,
Feb 20, 2014, 9:57:12 PM2/20/14
to color...@googlegroups.com
Доброго времени суток Алексей

   Не подскажешь, как можно подменить стандартную схему допустим Comment на свою бы не менять чужие, свою подключил через:
  свой catalog.xml => свой proto.hrc => package => тип => схема

P.S.  А все таки не хватает объекта чтоб в строке подбирал значения из схемы и передавал следующей, но это лирика.

С наилучшими пожеланиями
Александр (XGuest)

четверг, 20 февраля 2014 г., 21:55:37 UTC+6 пользователь ctapmex написал:
Привет.

Aleksey Dobrunov

unread,
Feb 20, 2014, 10:02:49 PM2/20/14
to color...@googlegroups.com
Добрый день.
а что такое стандартная схема comment ?  все схемы принадлежат какому то типу. стандартная def:Comment ?
подменить схему глобально можно только подменив тип  на свой. он просто должен быть в proto.hrc находится ниже .



21 февраля 2014 г., 8:57 пользователь XGuest <ap_bo...@utviv.ru> написал:

XGuest

unread,
Feb 20, 2014, 10:09:21 PM2/20/14
to color...@googlegroups.com
Пробовал, а как в свой тип def включить всё из \lib\default.hrc, попробовал он оставил только мои схемы.

пятница, 21 февраля 2014 г., 9:02:49 UTC+6 пользователь ctapmex написал:

Aleksey Dobrunov

unread,
Feb 20, 2014, 10:12:24 PM2/20/14
to color...@googlegroups.com
что ты хочешь получить?
обычные сценарии 
1. добавить свой тип.  прописывают в proto.hrc 
2. заменить стандартный тип на свой патченный. берут стандартный, меняют в нем что требуется и прописывают в proto.hrc последним. в крайнем случае подменяют файл оригинала на свой


21 февраля 2014 г., 9:09 пользователь XGuest <ap_bo...@utviv.ru> написал:

XGuest

unread,
Feb 20, 2014, 10:17:27 PM2/20/14
to color...@googlegroups.com
Спасибо

пятница, 21 февраля 2014 г., 9:12:24 UTC+6 пользователь ctapmex написал:
Reply all
Reply to author
Forward
0 new messages