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 ... 22, 23, 24 ... 63, 64, 65  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
Skif_off



Joined: 20 Oct 2013
Posts: 417

PostPosted: Thu Dec 26, 2013 1:20 am    Post subject: Reply with quote

Serge Yolkin wrote:

Code:
0   "\b(([0-1][0-9])|([2][0-3]))(:([0-5][0-9])){1,2}"   "\0=(0,#00FF00,0)"
?

Удобное сокращение, спасибо, исправил. Вот с \b не все гладко местами, решил отказаться. Хотелось бы понять, почему не срабатывает с условием
Code:
(?<!:)
?
1е срабатывает, 2е нет:
Code:

0   "(([0-1][0-9])|([2][0-3]))(:([0-5][0-9])){1,2}"      "\0=(0,${IF},0)"
0   "(?<!:)((([0-1][0-9])|([2][0-3]))(:([0-5][0-9])){1,2})"   "\0=(0,${IF},0)"


Drugmix wrote:
Я думал у нас для обсуждения регулярок есть отдельная тема

Я сюда пишу ибо у плагина могут быть нюансы (например).


Instructor
Поправьте, пожалуйста, au3.coder:
стр. 491-492
Code:
0   0   ${OP}   0   TCPShutdown, UDPShutdown
0   0   ${OP}   0   TCPStartup, UDPStartup

+ новые функции v3.3.10.0
FileReadToArray
FuncName
IsFunc
ObjCreateInterface
StringReverse

Если кого интересует: полный список UDF (3080 штук, у себя пока оставил, но склоняюсь к мысли - как-то дофига Smile)
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Thu Dec 26, 2013 5:01 am    Post subject: Reply with quote

Skif_off wrote:
Почему правило
Code:
QuotesRE:
; Time - HH:MM:SS or HH:MM
0   "(?<!:)((([0-1][0-9]|[2][0-3])(:([0-5][0-9])){2})|(([0-1][0-9]|[2][0-3]):([0-5][0-9])))"   "\0=(0,${IF},0)"

не работает в начале строки?
Лучше воздержаться от использования конструкций (?<!) и (?<=) в "QuotesRE:" (пояснение).

Serge Yolkin wrote:
Вероятно, проблема с вложенными скобками:
Code:
1 "(что)\-(то)(\s`(там)`)+" "\3=(0,#0000ff,0)"
; работает правильно
1 "(что)\-(то)(\s`(там)`)+" "\4=(0,#0000ff,0)"
; подсвечивает только последнее вхождение
Одна группа может хранить только один диапазон. В данном случае сохраняется последний найденный.

Skif_off wrote:
au3.coder
Сделано.
Back to top
View user's profile Send private message Send e-mail
Skif_off



Joined: 20 Oct 2013
Posts: 417

PostPosted: Thu Dec 26, 2013 8:21 am    Post subject: Reply with quote

Instructor wrote:
Лучше воздержаться от использования конструкций (?<!) и (?<=) в "QuotesRE:" (пояснение).

Понял, спасибо, добавил правило
Code:
; Time - H:MM:SS or H:MM
0   "([0-9]|([1][0-9])|([2][0-3]))(:([0-5][0-9])){1,2}"      "\0=(0,${IF},0)"

вроде как надо получается.
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 448

PostPosted: Thu Dec 26, 2013 9:13 pm    Post subject: Reply with quote

Instructor wrote:
Serge Yolkin wrote:
Вероятно, проблема с вложенными скобками:
Code:
1 "(что)\-(то)(\s`(там)`)+" "\3=(0,#0000ff,0)"
; работает правильно
1 "(что)\-(то)(\s`(там)`)+" "\4=(0,#0000ff,0)"
; подсвечивает только последнее вхождение
Одна группа может хранить только один диапазон. В данном случае сохраняется последний найденный.

А Вы бы не могли это исправить?

И ещё:
Я пытаюсь сделать хороший .coder-файл для *.ahk, но возникла проблема с нехваткой встроенных цветовых переменных.
Если я буду вводить новые переменные, то все встроенные цветовые схемы для coder-плагина будут выдавать оповещение об отсутствующей переменной.
Хотелось бы избежать таких оповещений, т.к. помимо того, что они могут оказать моральный ущерб пользователям - они ломают подсветку в файлах, т.к. AkelPad "спотыкается" на первом же правиле с переменной, значения для которой он не имеет.

Сейчас, ничего не меняя, избежать таких оповещений можно, но это повлечёт за собой некоторые неудобства
:
Если использовать другие встроенные переменные не по их назначению, то нельзя будет визуально дифференцировать эти типы данных.
Если использовать набор встроенных переменных не для окрашивания текста, а для окрашивания фона (или и для того, и для другого), то тогда возможны случаи, когда в текст не будет читаться хорошо из-за возможного диссонанса цветов в различных цветовых схемах
.

Поэтому прошу добавить:
а) несколько (хотя бы штук 5) переменных про запас во встроенный набор цветовых схем;
б) возможность задавать внутри .coder файлов значения по умолчанию для переменных, которые бы использовались в случае если в выбранной у пользователя цветовой схеме не задано значение для указанной переменной (а если задано, то использовалось бы оно, а не указанное внутри .coder файла).


Last edited by Drugmix on Thu Dec 26, 2013 10:57 pm; edited 1 time in total
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 360

PostPosted: Thu Dec 26, 2013 9:34 pm    Post subject: Reply with quote

Drugmix wrote:
А Вы бы не могли это исправить?
Не нужно чинить то, что не сломано.
Посмотрите на сторонних ресурсах типа "regex101.com". Надо ввести там правило и посмотреть протокол разбора выражения.
Цитирую:
Note: A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 448

PostPosted: Thu Dec 26, 2013 10:11 pm    Post subject: Reply with quote

opk44 wrote:
Посмотрите на сторонних ресурсах типа "regex101.com". Надо ввести там правило и посмотреть протокол разбора выражения.
Цитирую:
Note: A repeated capturing group will only capture the last iteration. Put a capturing group around the repeated group to capture all iterations or use a non-capturing group instead if you're not interested in the data

Ценное замечание, спасибо.
opk44 wrote:
Не нужно чинить то, что не сломано.

Вот это спорно. То, что ничего с точки зрения машины или соответствия RegEx не сломано - не означает, что ничего на самом деле не сломано:
из-за этого внутреннего ограничения PCRE плохо работает подсветка в плагине .coder. Т.к. в код плагина можно вносить правки, то и обойти внутреннее ограничение PCRE - в принципе возможно.
А раз возможно, но этого нет, то логично и попросить такое исправление.
Я же прошу это изменение не ради изменения, а ради того, чтобы можно было, наконец, сделать более гибкие правила раскраски текста.
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 448

PostPosted: Thu Dec 26, 2013 10:41 pm    Post subject: Reply with quote

Ещё вопрос по coder.coder и RegEx:
в секции QuotesRE есть такое правило:
Code:
0   "^\s*(\d+)\s+[`"](.*)[`"]\s*[`"](?:\s*\\(\d*)=\((.*),(.*),(.*)\)\s*)*[`"]\s*$"  "\1=(0,#ff0000,0) \2=(0,#00ff00,0) \3=(2,#0000ff,0) \4=(0,#ff0000,0) \5=(0,#00ff00,0) \6=(2,#0000ff,0)"

Но оно не срабатывает на этом же самом правиле в этом же файле (и в других .coder-файлах, хотя если в нём везде заменить [`"] на ` - то в других .coder-файлах правила для секции QuotesRE будут подсвечиваться этим правилом нормально).
Тот же самый regex101.com показывает, что всё должно работать.
Если же правило изменить на
Code:
0   "^\s*(\d+)\s+`|"(.*)`|"\s*`|"(?:\s*\\(\d*)=\((.*),(.*),(.*)\)\s*)*`|"\s*$"  "\1=(0,#ff0000,0) \2=(0,#00ff00,0) \3=(2,#0000ff,0) \4=(0,#ff0000,0) \5=(0,#00ff00,0) \6=(2,#0000ff,0)"

То это приводит к тому, что при открытии акелпад зависает.

Зависания - это не хорошо даже в том случае, когда понятна их причина. Если как-то можно - то, пожалуйста, исправьте это.
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 417

PostPosted: Fri Dec 27, 2013 7:29 am    Post subject: Reply with quote

Drugmix
Не планируется ли в будущем заменить в ahk.coder #00ff00 на что-нибудь менее вырвиглазное (на темах со светлым фоном)? Для удобства синхронизации по возможности стараюсь не трогать цвета.
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 27 Jul 2010
Posts: 274

PostPosted: Fri Dec 27, 2013 8:26 am    Post subject: Reply with quote

Skif_off wrote:
Вот с \b не все гладко местами, решил отказаться.
А что не гладко? (я не для поспорить, мне интересно). Насколько я понимаю, \b это граница между \w и \W в любой последовательности, поэтому не гладко будет с подчерком "_" перед временем - он тоже \w, других проблем, на первый взгляд, не видно.
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 448

PostPosted: Fri Dec 27, 2013 9:12 am    Post subject: Reply with quote

Skif_off
конечно. Я пока просто правила сами составляю, тут у меня локально намного больше изменений, просто важно сначала сами правила составить и отладить.
В планах - на каждую команду по RegEx'у, чтобы каждая команда и каждый атрибут у каждой команды - подсвечивался в соответствии с тем типом данных, к которому он относится.
Как я уже писал выше - сейчас вскрылась даже просто нехватка цветов из встроенного набора, надо и эту проблему как-то решать.
Back to top
View user's profile Send private message
Skif_off



Joined: 20 Oct 2013
Posts: 417

PostPosted: Fri Dec 27, 2013 9:43 am    Post subject: Reply with quote

Serge Yolkin
Честно говоря, уже не помню деталей и к сожалению (или к счастью) отказался от систем контроля версий (источников coder-файлов несколько, KDiff3 показался удобнее). Вполне допускаю, что условия были не реальные, а смоделированные в процессе тестирования (только знакомлюсь с регулярными выражениями).

Drugmix
Прошу прощения за любопытство, с какой целью в Words были добавлены функции, UDF и макросы AutoIt, а позже закомментированы?
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 448

PostPosted: Fri Dec 27, 2013 10:09 am    Post subject: Reply with quote

Skif_off wrote:
Drugmix
Прошу прощения за любопытство, с какой целью в Words были добавлены функции, UDF и макросы AutoIt, а позже закомментированы?

Это наследие прошлого (было до меня), с которым я пытался бороться и только сейчас получил одобрение от Lenchik'а, соавтора ahk.coder.
Back to top
View user's profile Send private message
Serge Yolkin



Joined: 27 Jul 2010
Posts: 274

PostPosted: Fri Dec 27, 2013 11:33 am    Post subject: Reply with quote

Как-то невзначай версия 12.0 появилась...
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5454

PostPosted: Fri Dec 27, 2013 2:03 pm    Post subject: Reply with quote

Drugmix wrote:
Зависания - это не хорошо даже в том случае, когда понятна их причина.
В избранное Smile

В вашей строке нарушено правило заключения в кавычки:
Quote:
"^\s*(\d+)\s+`|"(.*)`|"\s*`|"(?:\s*\\(\d*)=\((.*),(.*),(.*)\)\s*)*`|"\s*$"
В данном случае можно использовать '.

Serge Yolkin
Невзначай? Smile
Back to top
View user's profile Send private message Send e-mail
Drugmix



Joined: 08 Apr 2013
Posts: 448

PostPosted: Fri Dec 27, 2013 2:50 pm    Post subject: Reply with quote

Instructor wrote:
В вашей строке нарушено правило заключения в кавычки:
Quote:
"^\s*(\d+)\s+`|"(.*)`|"\s*`|"(?:\s*\\(\d*)=\((.*),(.*),(.*)\)\s*)*`|"\s*$"
В данном случае можно использовать '.

Я не понял как Вы предлагаете их использовать. Можно, пожалуйста, исправленный вариант?
Пробовал везде заменить " на ' - зависание при старте.
Пробовал только обрамляющие кавычки заменить на ' вот так
Code:

0   '^\s*(\d+)\s+`|"(.*)`|"\s*`|"(?:\s*\\(\d*)=\((.*),(.*),(.*)\)\s*)*`|"\s*$'  "\1=(0,${STR},0) \2=(0,${OP},0) \3=(2,${AREA},0)"

зависания нет, но правило не работает должным образом.

А ещё меня очень расстраивает, что многие из моих других обращений и вопросов к Вам - Вы оставляете без ответа (что ещё хуже, чем получить прямой отказ или ответ, что заявка на изменение принята, но не является приоритетной).
Вы их не читаете или просто молча принимаете их к сведению? Smile
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 ... 22, 23, 24 ... 63, 64, 65  Next
Page 23 of 65

 
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