Coder plugin (2)
- Author
- Message
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
На самом деле, там иерархия описана, правда только для "-1" и "-2", но остальное должно быть очевидно:Cuprum wrote: Если честно, я запутался в цифрах и приоритетах в кодер-файлах. Например, если у правила указан Parent ID 0, он ищет другие правила с Rule ID 0 или сам по-себе? Может, уточнить в coder-rus.txt какие конкретно значения принимает идентификатор?
Parent ID
"-2" - любой родитель и не в корне
"-1" - только в корне
"0" - везде, но приоритет ниже, чем ">0"
">0" - только в конкретном Rule ID
На данный момент, видимо, что-то сломалось в процессе починки иерархии в целом, т.к. сейчас попытался проверить её для "Folds:" и оказалось, что Parent ID "-1" и "-2" не работают... остальное - вполне работоспособно. Но у меня не тестовая, а 4.9.6
Может быть, поэтому упомянутая выше строка из QuotesRE: с Parent ID "-1" у Вас не функционирует... или наоборот, функционирует согласно иерархии (т.к. у Вас тестовая версия), надо её Вам проверить по всем правилам в первую очередь.
-
Offline
- Posts: 381
- Joined: Wed Sep 28, 2011 3:05 pm
YuS
Я сначала смотрел на 4.9.6, вышло как на скриншоте, потом обновил сам Акелпад до тестовой, думал может там по-другому, оказалось, все точно так же.
По поводу 0 спасибо за разъяснения.
Если родитель (Parent ID) равен -1, то правило отбирает только те совпадения, которые находятся в корне файла (без вложенности). Соотвественно, у правила нет родителя(-ей).
Если родитель (Parent ID) равен -2, то правило отбирает только те совпадения, которые являются вложенными. Границы вложенности определяются всеми другими правилами.
Может и длиннее, но ,наверное, понятней.
Я сначала смотрел на 4.9.6, вышло как на скриншоте, потом обновил сам Акелпад до тестовой, думал может там по-другому, оказалось, все точно так же.
По поводу 0 спасибо за разъяснения.
Да, но формулировка, по-моему, как-то уж слишком краткая.На самом деле, там иерархия описана, правда только для "-1" и "-2"
Если родитель (Parent ID) равен -1, то правило отбирает только те совпадения, которые находятся в корне файла (без вложенности). Соотвественно, у правила нет родителя(-ей).
Если родитель (Parent ID) равен -2, то правило отбирает только те совпадения, которые являются вложенными. Границы вложенности определяются всеми другими правилами.
Может и длиннее, но ,наверное, понятней.
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Вопрос спорный, у каждого может быть свое представление о краткости и понятности... я бы, например, написал так:Cuprum wrote: Да, но формулировка, по-моему, как-то уж слишком краткая.
...
Может и длиннее, но ,наверное, понятней.
иерархия Rule ID <-> Parent ID :
Parent ID:
-2 - правило работает только в некорневых элементах (любой родитель)
-1 - правило работает только в корневых элементах (родителя нет)
0 - правило работает во всех элементах
N (N>0) - правило работает только в тех элементах, у которых соответствующий Rule ID
- приоритетность задается значением Parent ID. При равных значениях, больший приоритет имеет правило стоящее выше по списку в .coder файле.
Как-то так, но мы ведь не авторы, поэтому можем только предложить варианты, не более того...
-
Offline
- Posts: 269
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
Подскажите, пожалуйста, почему эти правила (конкретно сочетание QuotesRE и Words):
срабатывают в первом случае и не срабатывают во втором:
Code: Select all
Quotes:
;===================================================================================
;Flags Font Color Color Quote Quote Escape Quote Quote Parent Rule
; style text bkgrnd start end char include exclude ID ID
;===================================================================================
16389 0 0 0 "[c " "[c " "\" "" "" 0 0
16389 2 #475263 #BADCDC "[c " "[/c]" "\" "" "" 0 0
QuotesRE:
;========================================================================================================
;Flags Pattern \BackRef=(FontStyle,ColorText,ColorBk) \BackRef=... ParentID RuleID
;========================================================================================================
1 '(?<=\[c )[a-z]*?(?=\])' '\0=(0,0,0)' 0 61
Words:
;===========================================
;Flags Font Color Color Word Parent
; style text bkgrnd ID
;===========================================
1 4 #00FFFF 0 cyan 61
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Instructor
А не лучше ли вместо прямого указания *.coder файла для вложенных правил прямо как в настройках сделать, где «псевдоним для неизвестного файла»? Потому как если файл не оригинальный, а модифицированный, его удобнее переименовывать. А тут казус: прямо в середине будет указан «my_js.coder» какой-нибудь (и, возможно, не один раз!), туда напрашивается просто «.js».
А не лучше ли вместо прямого указания *.coder файла для вложенных правил прямо как в настройках сделать, где «псевдоним для неизвестного файла»? Потому как если файл не оригинальный, а модифицированный, его удобнее переименовывать. А тут казус: прямо в середине будет указан «my_js.coder» какой-нибудь (и, возможно, не один раз!), туда напрашивается просто «.js».
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Потому, что срабатывает вовсе не одно из этих правил, а какое-то другое, более приоритетное, чем QuotesRE... в данном случае, Words не перекроет захваченное регэкспом.yozhic wrote:Подскажите, пожалуйста, почему эти правила (конкретно сочетание QuotesRE и Words):
...
срабатывают в первом случае и не срабатывают во втором
Закомментируйте все остальные, кроме описанных правил и увидите результат...
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Instructor
И еще одно пожелание.
Есть некий xml.coder, в нем
Задает особую подсветку для содержимого <bindings xmlns="http://www.mozilla.org/xbl">…</bindings>.
Все работает, но есть неудобство:
Атрибуты в обычных тэгах подсвечены и при редактировании, а тут закрашивает сразу все.
Тут бы тоже сделать нечто вроде... есть же флаг
И еще одно пожелание.
Есть некий xml.coder, в нем
Задает особую подсветку для содержимого <bindings xmlns="http://www.mozilla.org/xbl">…</bindings>.
Все работает, но есть неудобство:
Атрибуты в обычных тэгах подсвечены и при редактировании, а тут закрашивает сразу все.
Тут бы тоже сделать нечто вроде... есть же флаг
Code: Select all
; 4096 xml fold - "<tag" and "</tag>", "<single" and "/>", "<single" and ">" ("Folds:" section only).
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Если я правильно понял о чем речь, то ведь это разные подмножества:Infocatcher wrote:А тут казус: прямо в середине будет указан «my_js.coder» какой-нибудь (и, возможно, не один раз!), туда напрашивается просто «.js».
В настройках указан один синтаксис для множества разных (неопределенных) файлов, а тут используется множество синтаксисов в одном .coder файле, пусть и для различных элементов... имхо.
-
Offline
- Posts: 1862
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
YuS
Не, ну что для настроек применяется *.coder, в котором указана маска, под которую попадает псевдоним, то есть идет однозначная связь .ext => ext.coder. Что тут нужно применить конкретный *.coder для вложенной секции. И вот его тоже хотелось бы называть не по имени файла подсветки, а по тому, какое он расширение подсвечивает.
Все же *.js у всех подсвечиваются как JavaScript (хотя понятно, что бывают и спорные расширения), а вот js.coder можно и переименовать. А вот пользователю об этом знать не нужно: пусть скачает сторонний файл подсветки и просто его положит в папку.
(Не, я понимаю, что мое добро просто так не положить, но одно дело замену цветов сделать, а другое – еще и пути к файлам править.)
Не, ну что для настроек применяется *.coder, в котором указана маска, под которую попадает псевдоним, то есть идет однозначная связь .ext => ext.coder. Что тут нужно применить конкретный *.coder для вложенной секции. И вот его тоже хотелось бы называть не по имени файла подсветки, а по тому, какое он расширение подсвечивает.
Все же *.js у всех подсвечиваются как JavaScript (хотя понятно, что бывают и спорные расширения), а вот js.coder можно и переименовать. А вот пользователю об этом знать не нужно: пусть скачает сторонний файл подсветки и просто его положит в папку.
(Не, я понимаю, что мое добро просто так не положить, но одно дело замену цветов сделать, а другое – еще и пути к файлам править.)
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Ну, хорошо, c js.coder понятно, а если надо будет подсвечивать из cpp.coder - там ведь масса расширений...Infocatcher wrote:И вот его тоже хотелось бы называть не по имени файла подсветки, а по тому, какое он расширение подсвечивает.
А если будет указано расширение .xml, а сам coder переименован скажем в name.coder (и таких переименованных может быть масса) - как тут соответствие искать? Имхо, это только запутает ещё больше. Лучше уж как есть, конкретный .coder файл указывать - и просто, и понятно любому, кому понадобится Rule file глянуть.
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Так ведь тут, как раз, закрашенный полностью тег указывает на то, что это цельный, открывающий тег и у него должен быть ещё и закрывающий, а на первом скрине, как раз "<single" and ">".Infocatcher wrote: Атрибуты в обычных тэгах подсвечены и при редактировании, а тут закрашивает сразу все.
Тут бы тоже сделать нечто вроде... есть же флагCode: Select all
; 4096 xml fold - "<tag" and "</tag>", "<single" and "/>", "<single" and ">" ("Folds:" section only).
Имхо, так даже удобнее определять, какое из правил фолдинга сработало и есть ли ещё и закрывющий тег...
-
Offline
- Posts: 269
- Joined: Mon Jun 20, 2011 8:33 am
- Location: Электросталь
YuS
Понятно, что более приоритетные правила из Quotes перекрывают следующие за ними (я их потому и указал в сообщении). Связка QuotesRE и Words срабатывает при отключенных Quotes. Но, как я рассуждаю, если бы дело было только в Quotes, то не срабатывало бы ничего. А тут в строке 7 на картинке срабатывает, а в строке 8 – нет. Разница всего в пробеле, наличие которого в указанных правилах нигде не оговаривается. Т.е., с точки зрения правил, между этими двумя случаями (строками) разницы нет. При этом один (на строке 7) работает, а второй (на строке 8 ) – нет
Понятно, что более приоритетные правила из Quotes перекрывают следующие за ними (я их потому и указал в сообщении). Связка QuotesRE и Words срабатывает при отключенных Quotes. Но, как я рассуждаю, если бы дело было только в Quotes, то не срабатывало бы ничего. А тут в строке 7 на картинке срабатывает, а в строке 8 – нет. Разница всего в пробеле, наличие которого в указанных правилах нигде не оговаривается. Т.е., с точки зрения правил, между этими двумя случаями (строками) разницы нет. При этом один (на строке 7) работает, а второй (на строке 8 ) – нет
-
Offline
- Posts: 512
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Вот комплект для проверкиyozhic wrote:А тут в строке 7 на картинке срабатывает, а в строке 8 – нет.