Page 41 of 99

Posted: Thu Mar 13, 2014 8:10 pm
by Skif_off
Натолкнулся у себя случайно на nncron.highlight от Casm для nnCron и неудачный набросок nncron.coder, переделал, дополнил (+полно комментов Ru/En), выкладываю: nncron.coder.
Из минусов (на первый взгляд) - цвета были заданы абсолютно, но вполне удобоваримо (проверил на дефолтной и паре темных тем). Была мысль пропиарить в соответствубщей теме на руборде для обратной связи, но как-то неловко.

Posted: Sat Mar 22, 2014 8:45 pm
by Instructor
Изменено: корректировка положения окна дополнения (Coder::AutoComplete).

Changed: correction of auto-complete window position(Coder::AutoComplete).


Coder plugin v13.0

Posted: Mon Mar 24, 2014 5:44 am
by 1
А можно добавить в набор powershell синтаксис? или я могу сам это сделать?

Posted: Mon Mar 24, 2014 8:05 am
by Skif_off

Posted: Fri Mar 28, 2014 2:49 pm
by DV
Обнаружил довольно неприятную (потому что неочевидную и неожиданную) штуку в Coder::AutoComplete. Итак:
1) Настройка редактора заменять табуляцию пробелами отключена - т.е. символ табуляции остаётся символом табуляции
2) Открываем любой файл .ini, для которого в файле ini.coder прописано вот что:
ini.coder wrote:Delimiters:
1 0 ${DEL1} 0 =
3) в этом .ini набираем <TAB> abc <Enter> (т.е. клавишу TAB, текст abc и клавишу Enter) и ещё раз нажимаем клавишу TAB
В результате появляется совершенно неожиданный текст abc, появившийся как результат автодополнения к "слову" <TAB>abc
Другой пример:
В том же .ini файле нажимаем следующую последовательность клавиш:
<Shift+Home> <Del> <Space> def <Enter> <Shift+Home> <Del> <Space> <TAB>
В результате пробел на второй строке "дополняется" до <Space>def
Как-то это странно, в особенности учитывая наличие \t и пробела в списке разделителей слов в настройках редактора.

Posted: Fri Mar 28, 2014 7:54 pm
by Instructor
DV
Не воспроизводится. Выложите/вышлите папку с AkelPad'ом.

Posted: Tue Apr 01, 2014 12:01 pm
by Cuprum
Хочу добить тему подсветки классов и id в CSS и LESS.
При добавлении

Code: Select all

0	"(\.(\w|-)+)" "\1=(0,${AREA},0)" 
0	"(#(\w|-)+)" "\1=(0,${VAR},0)"
в QuotesRE css.coder-а также подсвечиваются и единицы измерения с точкой

Image


Как убрать такую подветку внутри {...}?
Правда LESS еще позволяет делать

Image

Это тоже надо учесть.
Тут видимо надо делать какую-то специальную проверку, но я не силен в регулярках...

Posted: Tue Apr 01, 2014 9:15 pm
by Skif_off
Cuprum
А если добавить условие "в начале строки"

Code: Select all

0	"^\s*(\.(\w|-)+)"	"\1=(0,${AREA},0)"
0	"^\s*(#(\w|-)+)"	"\1=(0,${VAR},0)"
?
Вот еще не забудьте, хотя и не обязательно.

Posted: Wed Apr 02, 2014 1:32 pm
by Drugmix
Skif_off
тогда вложенность не будет учитываться если точка не с начала строки идёт.
Предлагаю добавить positive look ahead {
, вообще по синтаксису CSS (и, вероятно, LESS тоже) она не обязательно должна идти на этой же строке. Вот такое употребление тоже валидно:

Code: Select all

.selector
{ property: value !important; }
а quotesRE правила, кажется, не умеют в мультстрочность, т.е. \s* перед (?=\{) должно бы и символ конца строки в себя включать, но как оно по факту в акелпаде будет работать - надо проверять.

Code: Select all

0   "\s*(\.(\w|-)+)\s*(?=\{)"   "\1=(0,${AREA},0)"
0   "\s*(#(\w|-)+)\s*(?=\{)"   "\1=(0,${VAR},0)"
В любом случае - так тоже не правильно, ведь селектор может быть комплексным, да ещё и порядок перечисления id и class может быть произвольным:

Code: Select all

#id1 #id2 .class1 .class2, .class1.class2 #id1 #id2
{property: value}
И ни предложенные мной правила, ни предложенные Skif_off правила здесь не сработают.

И тут логично предположить, что если в верхнее правило добавить условие, что после class может идти id, а в нижнее правило добавить условие, что после id может идти class, т.е. примерно вот так

Code: Select all

0   "\s*(\.(?:\w|-)+)\s*(#(?:\w|-)+)?\s*(?=\{)"   "\1=(0,${AREA},0) \2=(0,${VAR},0)"
0   "\s*(#(?:\w|-)+)\s*(\.(?:\w|-)+)\s*(?=\{)"   "\1=(0,${VAR},0) \2=(0,${AREA},0)"
- то это решит наши проблемы, но на самом деле нет: верхнее правило всегда будет перебивать нижнее. Единственный выход - объединить правила в одно и расписать вообще все возможные случаи употребления селекторов в нём. Такое правило будет очень длинным и очень сложным в составлении.

И тем самым мы снова возвращаемся к нашим баранам и моей просьбе к Instructor'у добавить каскадность работы QuotesRE правил.

Posted: Wed Apr 02, 2014 5:16 pm
by Cuprum
Drugmix
Может лучше идти другим путем, отсеять все лишнее, что не является идентификатором CSS? По-русски: после # или точки не может сразу идти цифра или два дефиса подряд или дефис+цифра. Тут поподробнее. Тогда и проверять наличие скобок {} не придется. Правда, как такое правило записать регуляркой, хз.

Posted: Wed Apr 02, 2014 5:46 pm
by Skif_off
Drugmix wrote:quotesRE правила, кажется, не умеют в мультстрочность, т.е. \s* перед (?=\{) должно бы и символ конца строки в себя включать, но как оно по факту в акелпаде будет работать - надо проверять.
Не умеют, по факту \s* сработает как "ноль или более пробелов и/или табов", поэтому можно оставить для тех, которые были приведены в качестве примеров, и копать произвольное перечисление: как минимум - точно известно, какие символы можно использовать для названия.

Posted: Wed Apr 02, 2014 6:32 pm
by Drugmix
Cuprum wrote:Drugmix
Может лучше идти другим путем, отсеять все лишнее, что не является идентификатором CSS?
Skif_off wrote:поэтому можно оставить для тех, которые были приведены в качестве примеров, и копать произвольное перечисление: как минимум - точно известно, какие символы можно использовать для названия.
Так не получится: допустимые имена классов пересекаются с допустимыми именами значений для целого списка свойств.

Code: Select all

.55 { border-width: .55 em }

Posted: Wed Apr 02, 2014 7:23 pm
by Cuprum
Drugmix
Так не получится: допустимые имена классов пересекаются с допустимыми именами значений для целого списка свойств.
Что-то я тут не понял. .55 это недопустимое имя для класса...

Posted: Wed Apr 02, 2014 7:55 pm
by Drugmix
Cuprum
я прочитал как-то по диагонали и подумал, что наоборот может.
Хм, тогда должно быть проще.
Как-то так (не тестировал):

Code: Select all

0   "\s*(\.([a-z]|-(?!-|\d))(\w|-)*)"   "\1=(0,${AREA},0)"

Posted: Wed Apr 02, 2014 8:49 pm
by Cuprum
Drugmix
Да, все ближе к нужному варианту ;)
Я только немножко поправил, т. к. в вашем варианте также выбирались
.--class и .-9class что невалидно. Получилось так

Code: Select all

"\s*(\.(?!\d|--|-\d)(\w|-)+)"   "\1=(0,${AREA},0)"
Но все равно смущает несколько моментов. Хотя бы такой - если заменить
(\w|-)+ на [\w-]+ то перестает работать. Не знаете, почему ;) ? Ведь это синонимы.