AkelPad Forum Index AkelPad
Support forum
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Coder plugin (2)
Goto page Previous  1, 2, 3 ... 52, 53, 54 ... 60, 61, 62  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
Cuprum



Joined: 28 Sep 2011
Posts: 196

PostPosted: Mon Jul 21, 2014 6:13 pm    Post subject: Reply with quote

YuS
Любопытный пример. Посмотрел в других редакторах, они почему-то не спотыкаются. Он ведь тоже, наверное, регулярки используют для раскраски...

Upd.
Так, походу сам ошибся используя для этого примера не тот регэксп. Вот с таким
Code:
0   "(\.(?!\d|--|-\d)(\w|-)+)"   "\1=(0,${VAR},0)"

работает.
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 110

PostPosted: Mon Jul 21, 2014 9:01 pm    Post subject: Reply with quote

Cuprum wrote:
Он ведь тоже, наверное, регулярки используют для раскраски...

не факт

Cuprum wrote:

Code:
0   "(\.(?!\d|--|-\d)(\w|-)+)"   "\1=(0,${VAR},0)"

работает.

работает-то оно работает, но это частный случай. Например, есть такие записи:
Code:
   background: url(../images/mm_avatar_bg.png) expand;

такой шаблон их тоже будет подсвечивать местами (.png). К тому же, это ведь только классы ...
Хотя, как вариант, можно выделить только классы и ID. В основном ведь записи у них уникальные, но группировать их можно именно из-за "." и "#" (и если не брать в расчет варианты со скобками), а редкие случаи, как вышеописанный, можно и не учитывать:
Code:
0   "(\.)((?!\d|--|-\d)(\w|-)+)"   "\1=(0,${DEL2},0) \2=(0,${VAR},0)"
0   "(\#)((?!\d|--|-\d)(\w|-)+)"   "\1=(0,${DEL2},0) \2=(0,${IF},0)"

- с ID будут проблемы с пересекающейся регуляркой:
Code:
0   "(#)([A-F\d]{3,6}\b)"  "\1=(0,0,\2)"

но с этим придется мириться

Вот и ещё добавили расцветку общими усилиями. Smile
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 110

PostPosted: Tue Jul 22, 2014 7:14 am    Post subject: Reply with quote

Для тестов css.coder
Back to top
View user's profile Send private message
Cuprum



Joined: 28 Sep 2011
Posts: 196

PostPosted: Tue Jul 22, 2014 7:30 am    Post subject: Reply with quote

YuS
Ваш вариант кодера чуть позднее посмотрю, но вот чтобы не подсвечивалось расширение файла внутри скобок, когда подсвечиваются классы, можно было бы использовать такой вариант:
Code:
0   "(\.(?!\d|--|-\d)(?:[\w\-]+))[\"\']?\s*(?!\))" "\1=(0,${VAR},0)"

только что-то он у меня выдает ошибку, хотя вроде с т.з. синтаксиса написано правильно...
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 110

PostPosted: Tue Jul 22, 2014 9:19 am    Post subject: Reply with quote

Cuprum wrote:
YuS
чтобы не подсвечивалось расширение файла внутри скобок, когда подсвечиваются классы, можно было бы использовать такой вариант:
Code:
0   "(\.(?!\d|--|-\d)(?:[\w\-]+))[\"\']?\s*(?!\))" "\1=(0,${VAR},0)"


Не, так не пойдет, необязательно ведь URL должен заканчиваться расширением файла, в ссылках могут присутствовать символы не попадающие в \w, например так:
Code:
url(../search?fr=cb-max&serveUrl=s.maxthon.com&ei=utf-8&p=%us)

Cuprum wrote:

только что-то он у меня выдает ошибку, хотя вроде с т.з. синтаксиса написано правильно...

Одной скобки не хватает...
Кстати, вот этот вариант:
Code:
(?!\d|--|-\d)

не работает таки (хоть ошибку и не дает), надо так:
Code:
(?!\d)(?!--)(?!-\d)
Back to top
View user's profile Send private message
Cuprum



Joined: 28 Sep 2011
Posts: 196

PostPosted: Tue Jul 22, 2014 4:23 pm    Post subject: Reply with quote

YuS
Quote:

Одной скобки не хватает...

Не, там дело не в скобках было; походу спотыкалось о кавычки. Если заключить правило в такие кавычки `
Code:
0   `(\.(?!\d|--|-\d)(?:[\w\-]+))[\"\']?\s*(?!\))` `\1=(0,${VAR},0)`

то работает.
Quote:

Кстати, вот этот вариант:
Code:
(?!\d|--|-\d)   

не работает

Проверил оба, оба работают. Это если для отрицательной ретроспективной, то надо именно так:
Code:
(?<!ab)(?<!cd)

Quote:

Не, так не пойдет, необязательно ведь URL должен заканчиваться расширением файла, в ссылках могут присутствовать символы не попадающие в \w, например так:

Code:
url(../search?fr=cb-max&serveUrl=s.maxthon.com&ei=utf-8&p=%us)



Можно тогда просто не подсвечивать в скобках:
Code:
0   "(\.(?!\d|--|-\d)[\w\-]+)\b" "\1=(0,${VAR},0)"
0   "\(.*(\.[\w\-]+).*\)" "\1=(0,0,0)"
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 110

PostPosted: Tue Jul 22, 2014 5:27 pm    Post subject: Reply with quote

Cuprum wrote:

Не, там дело не в скобках было; походу спотыкалось о кавычки.

Действительно, обсчитался со скобками, там ведь экранирована была одна...

Cuprum wrote:

Quote:

Кстати, вот этот вариант:
Code:
(?!\d|--|-\d)   

не работает

Проверил оба, оба работают.

Не, на моей версии (релиз 4.8.9 x64) работает некорректно (возможно баг). Вот такая строка:
Code:
0   "(\.)(?!\d|--|-\d)(\w|-)+"   "\1=(0,${DEL2},0) \2=(0,${VAR},0)

подсвечивает точку с цифрой:
Code:
background: rgba(209, 210, 211, .8);

и дело не в скобках, подсвечивается именно одна точка с одной цифрой в любом месте (если цифр больше, то не подсвечивается), хотя по условию не должна бы. А вот такой вариант:
Code:
0   "(\.)(?!\d)(?!--)(?!-\d)(\w|-)+"   "\1=(0,${DEL2},0) \2=(0,${VAR},0)"

работает корректно.

Cuprum wrote:

Можно тогда просто не подсвечивать в скобках:
Code:
0   "(\.(?!\d|--|-\d)[\w\-]+)\b" "\1=(0,${VAR},0)"
0   "\(.*(\.[\w\-]+).*\)" "\1=(0,0,0)"

Это плохой выход, подсветка в скобках тоже нужна. В принципе, этот момент не часто встречается, можно не учитывать, а если ссылка будет полной, то подсветка URL скроет и этот момент.
Back to top
View user's profile Send private message
Cuprum



Joined: 28 Sep 2011
Posts: 196

PostPosted: Tue Jul 22, 2014 5:58 pm    Post subject: Reply with quote

YuS
Да, подтверждаю. Просто такой вариант
Code:
background: rgba(209, 210, 211, .8);

я не тестировал.
Посмотрел на regex101.com - оба варианта
Code:
(\.(?!\d)(?!--)(?!-\d)[\w\-]+)
(\.(?!\d|--|-\d)[\w\-]+)

дают одинаковый результат - не захватывают точку с цифрой. Значит, баг. Тогда просьба к Instructor-у поправить.
Quote:
а если ссылка будет полной, то подсветка URL скроет и этот момент.

Разве есть подсветка URL? )
Back to top
View user's profile Send private message
Lenchik



Joined: 10 Jan 2011
Posts: 252

PostPosted: Tue Jul 22, 2014 7:16 pm    Post subject: Reply with quote

Настройки - Редактор 2. Гиперссылки.
Back to top
View user's profile Send private message Visit poster's website
Wio



Joined: 05 Jan 2011
Posts: 63

PostPosted: Wed Jul 23, 2014 10:07 am    Post subject: Reply with quote

Instructor wrote:
Для многострочности "закавыченного" добавляем в синтаксический файл (Coder::CodeFold должен быть включен):

Текст между строками (Smth) не должен подсвечиваться:
Code:
var Bar = "It is too \
   fine a day to " + Smth + ".";

А без Coder::CodeFold нельзя что-нибудь придумать?
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5373

PostPosted: Wed Jul 23, 2014 11:25 am    Post subject: Reply with quote

Wio
После добавления правила в "Folds:", правило в "Quotes:" необходимо удалить.
Back to top
View user's profile Send private message Send e-mail
Cuprum



Joined: 28 Sep 2011
Posts: 196

PostPosted: Wed Jul 23, 2014 1:23 pm    Post subject: Reply with quote

Lenchik
Только там могут быть не только гиперссылки но и просто пути.

По поводу ID. Вот такая связка неплохо себя показывает
Code:
0   "(#(?!\d)(?!--)(?!-\d)(\w|-)+)"  "\1=(0,${VAR},0)"
0   ":.*(#)([A-F\d]{6}|[A-F\d]{3})"  "\1=(0,0,\2)"

Но только до тех пор, пока нет нескольких значений цвета, типа
Code:
background: linear-gradient(to right, #ff0, #ff0000);

Почему решетка во втором цвете не подсвечивается, ума не приложу. И можно ли с этим что-то поделать?
Back to top
View user's profile Send private message
YuS



Joined: 15 Sep 2013
Posts: 110

PostPosted: Wed Jul 23, 2014 2:48 pm    Post subject: Reply with quote

Cuprum wrote:

Почему решетка во втором цвете не подсвечивается, ума не приложу. И можно ли с этим что-то поделать?

Вижу, что предложенный выше вариант ccs.coder не проверялся до сих пор. Smile
Back to top
View user's profile Send private message
Cuprum



Joined: 28 Sep 2011
Posts: 196

PostPosted: Wed Jul 23, 2014 4:57 pm    Post subject: Reply with quote

YuS
Каюсь Wink
Теперь чуть понятнее. Видимо, порядок строк тоже имеет значение.
Немного напрягает, что если id напечатать как цвет, решетка в нем тоже подсвечивается



+ при ручной печати цвета, во время набора первых 2 симолов они светятся как id



И вот это надо побороть

Back to top
View user's profile Send private message
Wio



Joined: 05 Jan 2011
Posts: 63

PostPosted: Wed Jul 23, 2014 5:01 pm    Post subject: Reply with quote

Instructor wrote:
После добавления правила в "Folds:", правило в "Quotes:" необходимо удалить.

Оно как бы работает, но совершенно не учитывает наличие обратной косой черты в конце строки, т.е. если удалить \, то блок все равно подсвечивается. К тому же, если удалить одну кавычку, то не все идущие впереди кавычки учитываются, и подсветка начинает глючить.

По правде говоря, плагин Coder::CodeFold совершенно неудобен в ежедневной работе. Пожалуй, я пока обойдусь без подсветки многострочного варианта. Надеюсь на доработку Coder::HighLight в будущем, чтобы не было необходимости прибегать к помощи Coder::CodeFold.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3 ... 52, 53, 54 ... 60, 61, 62  Next
Page 53 of 62

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


SourceForge.net Logo Powered by phpBB © 2001, 2005 phpBB Group