Page 87 of 99

Posted: Tue Sep 29, 2015 10:27 pm
by Wio
Drugmix wrote:Всё то. Это уже срабатывают какие-то другие правила.
Как раз другие правила и создают иллюзию работы вашего. Закомментируйте все правила, кроме вашего, и тогда увидите, что оно спотыкается на указанных примерах. Попробуйте подставить моё регулярное выражение в ваше правило :wink:

Posted: Wed Sep 30, 2015 7:11 am
by YuS
Infocatcher wrote: Можно ли как-то простым способом (одним регулярным выражением) подсветить 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="/">
А "на пальцах", то бишь в картинках можно глянуть, что должно получиться и что именно не должно ломаться? А то есть вроде мысли, но не уверен в том, что же всё таки требуется...

Posted: Wed Sep 30, 2015 8:25 am
by Drugmix
Wio wrote:
Drugmix wrote:Всё то. Это уже срабатывают какие-то другие правила.
Как раз другие правила и создают иллюзию работы вашего. Закомментируйте все правила, кроме вашего, и тогда увидите, что оно спотыкается на указанных примерах.
Я так понял, что на этих 2 случаях правило как раз и не должно срабатывать и я именно этого и добивался.

Image

Wio wrote:Попробуйте подставить моё регулярное выражение в ваше правило :wink:
А ваше на тех 2 случаях срабатывает, видимо вам это и требовалось.
Я не знаток синтаксисов, но вроде это не правильно.

Posted: Wed Sep 30, 2015 11:18 am
by Infocatcher
YuS wrote:А "на пальцах", то бишь в картинках можно глянуть, что должно получиться и что именно не должно ломаться? А то есть вроде мысли, но не уверен в том, что же всё таки требуется...
Я уже показывал пример файла.
Например, вот такое надо игнорировать и не искать закрывающий тэг:

Code: Select all

<handler event="keypress" keycode="VK_RIGHT" action="this.moveCaret(false, event);" />
А внутри такого надо подсветить JavaScript:

Code: Select all

			<handler event="keypress">
			<![CDATA[
				...
			]]>
			</handler>
Причем может быть и такое:

Code: Select all

<handler event="keypress">
	...
</handler>
Плюс там допустимы всякие разные атрибуты, в которых может быть и «/», и «>». Хотя последнее все же редкость, это скорее код будет и окажется записан в action="...".

Posted: Wed Sep 30, 2015 1:56 pm
by YuS
Infocatcher wrote: Например, вот такое надо игнорировать и не искать закрывающий тэг:

Code: Select all

<handler event="keypress" keycode="VK_RIGHT" action="this.moveCaret(false, event);" />
А внутри такого надо подсветить JavaScript:

Code: Select all

			<handler event="keypress">
			<![CDATA[
				...
			]]>
			</handler>

Code: Select all

`<handler(?:\s[^<]+)?(?<!/)>`
На счет подсветки js не уверен (а оно так работает? из другого файла .coder), но с фолдингом вроде справляется и игнорирует то, что выше описано...
Infocatcher wrote: Причем может быть и такое:

Code: Select all

<handler event="keypress">
	...
</handler>
А в чем тут отличие?
Infocatcher wrote: Плюс там допустимы всякие разные атрибуты, в которых может быть и «/», и «>». Хотя последнее все же редкость, это скорее код будет и окажется записан в action="...".
Регэксп вроде работает, но с ">" могут быть пересечения c XBrackets

Posted: Wed Sep 30, 2015 4:01 pm
by Infocatcher
YuS wrote:На счет подсветки js не уверен (а оно так работает? из другого файла .coder)
В новых версиях – работает. :roll:
YuS wrote:А в чем тут отличие?
Если отлавливать сам тэг, то разницы никакой. Просто один из вариантов – отлавливать уже <![CDATA[ … ]]>, только это дело не обязательное и может отсутствовать.

Posted: Wed Sep 30, 2015 6:46 pm
by Instructor
Kley wrote:в тексте есть слово, например: THEMES;
ввожу the, жму Enter, печатает THEMES;
ввожу the, жму Shift+Enter, печатает theMES;
Неужели это нужно бывает? Почему не Shift+Enter --> themes.
См. Coder 17.8 + тестовая.
Infocatcher wrote:Хм, а еще по умолчанию там JavaScript, так что надо еще и <script>…</script> добавить (и в HTML5 атрибут type не является обязательным).
Cuprum wrote:Хотелось бы, чтобы html.coder отлавливал и подсвечивал внутренности у элементов style и script без атрибута type. Этот атрибут может отсутствовать.
См. Coder 17.8
Infocatcher wrote:Кстати... было бы очень здорово, если бы не только подсветка выставлялась в таких областях, но и автодополнение бралось из соответствующего coder-файла. :roll:
См. Coder 17.8
Wio wrote:

Code: Select all

<tag(?=[\s>])(?:[^>]*[^/])?>
Только оно не увидит <tag foo="bar>1">...</tag>
Тестовая
Cuprum wrote:Сейчас сам символ @ одним цветом, а слово после него

Image
Не воспроизводится.
Не очень понятно, почему для @font-face, @media и @page в css.coder установлен Parent ID равный 2...
+ еще желательно добавить @keyframes.
Изменено.

Posted: Wed Sep 30, 2015 7:23 pm
by YuS
Infocatcher wrote: Например, вот такое надо игнорировать и не искать закрывающий тэг:

Code: Select all

<handler event="keypress" keycode="VK_RIGHT" action="this.moveCaret(false, event);" />
А внутри такого надо подсветить JavaScript:

Code: Select all

			<handler event="keypress">
			<![CDATA[
				...
			]]>
			</handler>
...
Плюс там допустимы всякие разные атрибуты, в которых может быть и «/», и «>». Хотя последнее все же редкость, это скорее код будет и окажется записан в action="...".
В общем, показалось, что подсветка "<![CDATA[ ...]]>" внутри "<handler>...</handler>" из другого файла будет излишней...
Для наглядности сделал коротенький тестовый
Image

Тут xml.coder
Только флаги надо перепроверить для конкретного применения, их вообще не трогал и не изменял, взял готовые из Вашего примера строки секции Fold:...

Posted: Wed Sep 30, 2015 7:40 pm
by Instructor
Добавлено: поддержка вложенных .coder'ов (Coder::AutoComplete).
Добавлено: опция для наследования регистра введённых символов (Coder::AutoComplete). Требуется AkelPad 4.9.7 или выше.

Added: support for nested .coder's (Coder::AutoComplete).
Added: option to inherit typed case (Coder::AutoComplete). Required Akelpad 4.9.7 or higher.


Coder plugin v17.8

Posted: Wed Sep 30, 2015 7:51 pm
by Cuprum
Instructor
В версии 17.8 у меня почему-то вложенные @директивы подсвечиваются целиком, а на верхнем уровне только

Image
Тестировал на less-файле.

Posted: Wed Sep 30, 2015 9:08 pm
by YuS
Instructor,
Можно ли использовать в .coder файлах несколько идентичных правил (отличие только в цветах подсветки), но с разными ParentID или это категорически противопоказано?
Вопрос возник из наблюдения, что при наличии таких правил, они перекрывают друг друга вплоть до неработоспособности.
Например:

Code: Select all

;1052676=4+4096+1048576
1052676	3	${DEL2}	0	`<handler(?:\s[^<]+)?(?<!/)>`	"</handler>"	""	0	3
;517=1+4+512	
517	0	${VAR}	${OP}	"<![CDATA["  "]]>"      ""      3	0
;517=1+4+512
517	0	0	0	"<![CDATA["  "]]>"      ""      0	0
;4101=1+4+4096
4101	0	0	0	"<!"         ">"        ""      0	1
Дают такой результат:
Image
т.е. второе из двух правил ' "<![CDATA[" "]]>" ' уже не работает, фолдинг по этим строкам (кроме непосредственно вложенных в родителя с RuleID = 3) срабатывает по другим правилам...

Posted: Wed Sep 30, 2015 9:12 pm
by Kley
Instructor
ВКЛ.-Дополнять также из документа без синтаксической темы
ВКЛ.-Сохранять регистр введённых символов
ВКЛ.-Наследовать регистр введённых символов
А что-то ничего не изменилось.:( Или я не правильно понял настройки?

Posted: Thu Oct 01, 2015 12:08 am
by YuS
Infocatcher wrote: А внутри такого надо подсветить JavaScript:

Code: Select all

			<handler event="keypress">
			<![CDATA[
				...
			]]>
			</handler>
Что-то тут меня "осенило" :), наверное, нужна не просто подсветка, а подсветка синтаксиса? Тогда, можно добиться максимум

Image

т.е., подсветка атрибутов слева от "=", всё же ломается, т.к. при использовании внешнего .coder, перестают работать RuleID-ParentID... ну и ">" тоже победить не удалось, увы.
js.coder+xml.coder

Posted: Thu Oct 01, 2015 1:45 am
by Wio
Instructor wrote:Тестовая
Заработало.

Позвольте спросить, какой стиль был взят за основу для внутреннего движка? Во всех реализациях, которые я видел, "." обозначает любой символ за исключением \r\n.

Posted: Thu Oct 01, 2015 2:17 am
by YuS
Wio wrote:Во всех реализациях, которые я видел, "." обозначает любой символ за исключением \r\n.
AkelHelp-Rus.htm wrote: (?s) точка '.' соответствует любому одиночному символу (по умолчанию).
(?-s) точка '.' соответствует любому одиночному символу, кроме символа новой строки.