Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

Можно сделать так:

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

Code: Select all

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

Code: Select all

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

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post 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"	""	""	";()"
Спасибо, работает. Тогда и остальные добавлю.

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

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

Code: Select all

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

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Стал добавлять остальные одноименные слова по рецепту Xephon и заметил

Image

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

Image

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post 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"	":"	""	""	";"

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post 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, проще и скорее всего, правильнее.

Wio
Offline
Posts: 76
Joined: Wed Jan 05, 2011 6:07 am

Post 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 + ".";

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

YuS
Да, пока использую вариант Xephon. В нем все работает, но есть небольшая

Image

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

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post by YuS »

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

Offline
Posts: 124
Joined: Tue Jun 03, 2008 10:32 pm

Post by Xephon »

Правило для подсветки как раз и ориентируется на наличие двоеточия справа от свойства. Поэтому с изменением цвета ничего сделать в данном случае нельзя.

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

Code: Select all

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

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

Ок, попробую еще регулярками по рецепту YuS, вдруг получится ;)

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post 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 (нельзя использовать варианты, даже ограниченной длины) не позволяют это сделать. Хотя, если поломать голову, то можно попытаться, но уже на ночь нет желания напрягать мозги...

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

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

Code: Select all

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

YuS
Offline
Posts: 512
Joined: Sun Sep 15, 2013 8:25 am
Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы

Post 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)"
Вроде работает...
Целые слова нет необходимости проверять, достаточно буквы и пробела - это будет признаком значения...

Offline
Posts: 381
Joined: Wed Sep 28, 2011 3:05 pm

Post by Cuprum »

YuS
Спасибо, ваш способ более элегантный :)
Только opacity там не нужно - нет одноименного значения свойства. Но нашел еще "clip". Тогда получается такой вариант:

Code: Select all

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