Page 51 of 99

Posted: Sun Jul 13, 2014 6:17 pm
by Xephon
Можно сделать так:

убираем из Words строку

Code: Select all

0	0	${ATTR}	0	left
добавляем в Quotes строку

Code: Select all

;37=1+4+32
37	1	${ATTR}	0	":"	"left"	""	""	";()"

Posted: Sun Jul 13, 2014 6:57 pm
by Cuprum
Xephon wrote:
убираем из Words строку

Code: Select all

0	0	${ATTR}	0	left
добавляем в Quotes строку

Code: Select all

;37=1+4+32
37	1	${ATTR}	0	":"	"left"	""	""	";()"
Спасибо, работает. Тогда и остальные добавлю.

Posted: Mon Jul 14, 2014 6:35 am
by YuS
Cuprum wrote: Судя по coder.css они разделены по группам, у них даже цвета подсветки разные - для одних ${OP}, для других ${ATTR}. Но вот когда в файле встречается такое свойство:

Code: Select all

a {
  left: 10px;
}
оно все равно подсвечивается другим цветом, цветом значения, а не самого свойства. Можно ли это как-то исправить?
1. css.coder
2. Они-то разделены, но встречаются в нескольких группах одни и те же наименования. В общем, поправить можно, если проанализировать дубликаты.
см. группы: ";Properties" и ";Property values"

Posted: Tue Jul 15, 2014 8:52 am
by Cuprum
Стал добавлять остальные одноименные слова по рецепту Xephon и заметил

Image

"bottom" добавлено и, в данном случае, "10px" тоже подсвечены таким же цветом. Но такого быть не должно. Вот в background-position: 10px center; правильная подсветка. Можно как-то поправить?
ЗЫ.
С множественными значениями тоже не работает

Image

Posted: Tue Jul 15, 2014 10:13 am
by Xephon
Тогда оставляем строку

Code: Select all

0   0   ${ATTR}   0   left
удаляем строку

Code: Select all

0   0   ${OP}   0   left
и добавляем правило

Code: Select all

;69=1+4+64
69	1	${OP}	0	"left"	":"	""	""	";"

Posted: Tue Jul 15, 2014 10:54 am
by YuS
Cuprum wrote:Можно как-то поправить?
ЗЫ.
С множественными значениями тоже не работает
Попробуйте в секцию "QuotesRE:" добавить строку, типа такой:

Code: Select all

0	"(:|,)[^\n]*?(left|right|bottom|top)(?!\w)" "\1=(0,${DEL2},0) \2=(0,${ATTR},0)"
для полного функционала, строку необходимо подкорректировать... в том числе, перечислить все необходимые варианты параметров. Естественно, что в секции Words: соответствующие параметры в группе ";Property values", надо закомментировать.

PS Хотя, вариант предложенный Xephon, проще и скорее всего, правильнее.

Posted: Wed Jul 16, 2014 10:00 am
by Wio
Подсветка JScript не работает должным образом:

Code: Select all

var Foo = "Single line of text";

var Bar = "1st line of text \
	2nd line of text \
	3rd line of text";
Многострочный вариант не определяется Coder-ом:

Code: Select all

var Foo = "It is too fine a day to " + Smth + ".";

var Bar = "It is too \
	fine a day to " + Smth + ".";

Posted: Wed Jul 16, 2014 10:48 am
by Cuprum
YuS
Да, пока использую вариант Xephon. В нем все работает, но есть небольшая

Image

Пока не поставлено двоеточие, но свойство напечатано полностью, оно раскрашивается как значение, а не как свойство. Есть ли способ сделать по аналогии с "color"?

Posted: Wed Jul 16, 2014 11:32 am
by YuS
Cuprum wrote:YuS
Пока не поставлено двоеточие, но свойство напечатано полностью, оно раскрашивается как значение, а не как свойство. Есть ли способ сделать по аналогии с "color"?
Думаю, что нет. Привязка отличия свойства от значения должна быть. Иначе слова будут идентичными и всегда раскрашены в один цвет.
Ну или попробуйте вариант с QuotesRE

Posted: Wed Jul 16, 2014 1:01 pm
by Xephon
Правило для подсветки как раз и ориентируется на наличие двоеточия справа от свойства. Поэтому с изменением цвета ничего сделать в данном случае нельзя.

Можно попробовать регексп по совету YuS, но с ним будут проблемы в случае

Code: Select all

background-position: top left;
Т.е. понадобится как минимум еще один регексп для обработки таких случаев.

Posted: Wed Jul 16, 2014 2:34 pm
by Cuprum
Ок, попробую еще регулярками по рецепту YuS, вдруг получится ;)

Posted: Wed Jul 16, 2014 4:25 pm
by YuS
Xephon wrote: Можно попробовать регексп по совету YuS, но с ним будут проблемы в случае

Code: Select all

background-position: top left;
Т.е. понадобится как минимум еще один регэксп для обработки таких случаев.
Да, верно, этот момент не учтен. Тогда добавляем пару строк:

Code: Select all

0	"(:|,)\s*(left|right|bottom|top)(?!\w)" "\1=(0,${DEL2},0) \2=(0,${ATTR},0)"
0	"(?<=\w)\s+(left|right|bottom|top)(?!\w)" "\1=(0,${ATTR},0)"
В принципе, можно было бы обойтись одной строкой, но ограничения в движке регэкспов относительно lookbehind (нельзя использовать варианты, даже ограниченной длины) не позволяют это сделать. Хотя, если поломать голову, то можно попытаться, но уже на ночь нет желания напрягать мозги...

Posted: Wed Jul 16, 2014 6:00 pm
by Cuprum
YuS wrote: В принципе, можно было бы обойтись одной строкой, но ограничения в движке регэкспов относительно lookbehind (нельзя использовать варианты, даже ограниченной длины) не позволяют это сделать.
Можно ;)
В одну строчку у меня что-то не вышло, поэтому к вашему первоначальному варианту добавил еще второе

Code: Select all

0   "((?<=left)|(?<=right)|(?<=bottom)|(?<=top))\s+(left|right|bottom|top)" "\2=(0,${ATTR},0)"
Вроде работает...

Posted: Wed Jul 16, 2014 7:01 pm
by YuS
Cuprum wrote: Можно ;)
Ну, раз можно, то для тестовой версии:

Code: Select all

0   "(?:(?<=,)|(?<=:)|(?<=\w\s))\s*?(left|right|bottom|top|opacity)(?!\w)" "\1=(0,${ATTR},0)"
Cuprum wrote: В одну строчку у меня что-то не вышло, поэтому к вашему первоначальному варианту добавил еще второе

Code: Select all

0   "((?<=left)|(?<=right)|(?<=bottom)|(?<=top))\s+(left|right|bottom|top)" "\2=(0,${ATTR},0)"
Вроде работает...
Целые слова нет необходимости проверять, достаточно буквы и пробела - это будет признаком значения...

Posted: Thu Jul 17, 2014 11:39 am
by Cuprum
YuS
Спасибо, ваш способ более элегантный :)
Только opacity там не нужно - нет одноименного значения свойства. Но нашел еще "clip". Тогда получается такой вариант:

Code: Select all

0   "(?:(?<=,)|(?<=:)|(?<=\w\s))\s*?(left|right|bottom|top|clip)(?!\w)" "\1=(0,${ATTR},0)"