Coder plugin (2)
- Author
- Message
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Instructor
Можно ли как-то простым способом (одним регулярным выражением) подсветить JavaScript внутри <handler>…</handler>, но при этом не сломать ничего при наличии <handler foo="bar" />?
Пока что сделал вот так:
Но это хак, который сломается на
Кстати... было бы очень здорово, если бы не только подсветка выставлялась в таких областях, но и автодополнение бралось из соответствующего coder-файла. 
Cuprum
Угу.
Можно ли как-то простым способом (одним регулярным выражением) подсветить JavaScript внутри <handler>…</handler>, но при этом не сломать ничего при наличии <handler foo="bar" />?
Пока что сделал вот так:
Code: Select all
;1052676=4+4096+1048576
1052676 0 0 0 `<handler(?:\s[^<>/]*?)?>` "</handler>" "" 0 2 "js.coder"
Code: Select all
<handler foo="/">

Cuprum
Угу.
-
Offline
- Posts: 76
- Joined: Wed Jan 05, 2011 6:07 am
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Без кавычек – точно нельзя, там XML. Но могут быть одинарные кавычки. Пробелы, по идее, тоже должны отсутствовать.Wio wrote:1. Возможна ли ситуация, когда значения атрибутов задаются без кавычек (<handler path=abc/def />)?
2. Возможна ли ситуация, когда между косой чертой и скобкой расположены пробелы (<handler foo="bar" /_____>)?
Я пытался в таком духе:
Code: Select all
<tag(\s+[^<>]*?[^<>/])?>
-
Offline
- Posts: 76
- Joined: Wed Jan 05, 2011 6:07 am
Infocatcher
Попробуйте такое выражение:
Только оно не увидит <tag foo="bar>1">...</tag>
Попробуйте такое выражение:
Code: Select all
<tag(?=[\s>])(?:[^>]*[^/])?>
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Wio
Хм, а вот не работает...
Вот файл для тестов: https://github.com/Infocatcher/Handy_Cl ... editor.xml
Хм, а вот не работает...
Вот файл для тестов: https://github.com/Infocatcher/Handy_Cl ... editor.xml
-
Offline
- Posts: 1873
- Joined: Mon Aug 06, 2007 1:07 pm
- Contact:
Пока вот так сделал:
Другое дело, что в атрибутах могут быть attr=">", но это уже ладно.
Там в данном случае если код поехал вовнутрь, то в атрибутах уже никакой экзотики быть не должно.
Code: Select all
<handler(?:\s[^<>]*?)?(?<!/)>
Там в данном случае если код поехал вовнутрь, то в атрибутах уже никакой экзотики быть не должно.
-
Offline
- Posts: 76
- Joined: Wed Jan 05, 2011 6:07 am
Переделал регулярное выражение для таких случаев. Но оно работает только при обработке JS-движком. Встроенный обработчик на нём спотыкается. Может быть, есть какая-нибудь опция переключения движка в файлах *.coder?Infocatcher wrote:в атрибутах могут быть attr=">"
Drugmix
Вот так уже не будет работать: <handler attr=">" foo="bar">...</handler>
-
Offline
- Posts: 382
- Joined: Wed Sep 28, 2011 3:05 pm
Instructor
Продолжу по подсветке CSS-Less.
В версиях до 4.9.5 директивы с "собачкой" (@import, @charset и т.д.) целиком подсвечивались одним цветом. Сейчас сам символ @ одним цветом, а слово после него .
Хочется вернуть, как было раньше.
Не очень понятно, почему для @font-face, @media и @page в css.coder установлен Parent ID равный 2. Вроде бы все эти директивы используются только на верхнем уровне, без вложенностей в кавычки или скобки.
+ еще желательно добавить @keyframes. Это часть анимаций.
Продолжу по подсветке CSS-Less.
В версиях до 4.9.5 директивы с "собачкой" (@import, @charset и т.д.) целиком подсвечивались одним цветом. Сейчас сам символ @ одним цветом, а слово после него .
Хочется вернуть, как было раньше.
Не очень понятно, почему для @font-face, @media и @page в css.coder установлен Parent ID равный 2. Вроде бы все эти директивы используются только на верхнем уровне, без вложенностей в кавычки или скобки.
+ еще желательно добавить @keyframes. Это часть анимаций.
-
Offline
- Posts: 582
- Joined: Mon Apr 08, 2013 9:50 pm
- Location: Win7SP1x64, APx64
Wio
Code: Select all
1052676 0 0 0 `<handler(?:\s+\w+?=(['"])[^\1]*?\1)*?(?<!/)>` "</handler>" "" 0 2 "js.coder"
-
Offline
- Posts: 582
- Joined: Mon Apr 08, 2013 9:50 pm
- Location: Win7SP1x64, APx64
-
Offline
- Posts: 76
- Joined: Wed Jan 05, 2011 6:07 am
Drugmix
Всё равно не то, пропускает <handler disabled> и <handler_____> (пробелы)
Адаптировал своё выражение под внутренний обработчик:
Всё равно не то, пропускает <handler disabled> и <handler_____> (пробелы)
Адаптировал своё выражение под внутренний обработчик:
Code: Select all
<handler(?=[\s>])(?:[^>"']*(["'])[^\1]*\1)*[^>]*(?<!/)>
-
Offline
- Posts: 582
- Joined: Mon Apr 08, 2013 9:50 pm
- Location: Win7SP1x64, APx64
Всё то. Это уже срабатывают какие-то другие правила.Wio wrote:Drugmix
Всё равно не то, пропускает <handler disabled> и <handler_____> (пробелы)
Если закомментировать
Code: Select all
;4101=1+4+4096
4101 0 0 0 "<!" ">" "" 0 1
;4101=1+4+4096
4101 0 0 0 "<" "</" "" 0 1
;4101=1+4+4096
4101 0 0 0 "<" "/>" "" 0 1