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 ... 14, 15, 16 ... 58, 59, 60  Next
 
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins
View previous topic :: View next topic  
Author Message
Drugmix



Joined: 08 Apr 2013
Posts: 421

PostPosted: Wed Sep 11, 2013 5:22 pm    Post subject: Reply with quote

Помогите, пожалуйста, улучшить правило так, чтобы не подсвечивались отступы после запятой до первого \S символа:
Code:
2   `^\s*(WinGet)(?:\s*,\s*|\s+)(.*)\s*(,(.*)(\s*,(.*)(\s*,(.*)(\s*,(.*)(\s*,(.*))?)?)?)?)?$` `\1=(2,${OP},0) \2=(2,${VAR},#00ff00) \4=(2,${OP},#ff0000) \6=(2,${VAR},#0000ff) \8=(2,${OP},#ff0000) \10=(2,${VAR},#00ff00) \12=(2,${OP},#0000ff)`

Срабатывает так:


как видно из скриншота - у опциональных аргументов (1-ый - не опциональный, а все последующие - опциональные).
Пробовал использовать позитивные и негативные просмотры назад
(lookbehind'ы), заменяя (.*) группы на ((?<!\S).*) или на ((?<=\s).*) но не помогло.
Кстати, ещё про документацию: regexp-овая документация в AkelHelp-Eng.htm более полная чем та, что в AkelPad4-Eng.chm файле.
А ещё в Plugins-Eng.chm нет документации по Coder плагину.
А в Coder-Eng.txt много рассказывается про внешние вызовы к этому плагину, а вот как правильно создавать правила для различных секций в .coder файлах - не рассказывается.
А в существующих .coder файлах документация плоха тем, что разрозненна и не описан синтаксис правил к различным секциям.

Не только сам плагин Coder сейчас нуждается в серьёзных доработках, но и документация к нему.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2039
Location: Vinnitsa, Ukraine

PostPosted: Thu Sep 12, 2013 7:08 am    Post subject: Reply with quote

Drugmix
1. Нуждается или нет, тут дело абсолютно десятое. Но такой какой сейчас есть он тоже вполне заслуживает жить.
2. Если почитать внимательно, то автором архива справки является ни автор Instructor, ни автор любого другого плагина, а такой же рядовой пользователь как и Вы Surveyor, корый это делает по мере свои возможностей и свободного времени(не так уж много оного у него нашлось за 1.5года когда его просили прошлый раз). Так что могу посоветовать Вам только самостоятельно попытаться разобраться в вопросах(с нашими подсказками) а не ожидать внезапное появление полной документации.
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Drugmix



Joined: 08 Apr 2013
Posts: 421

PostPosted: Thu Sep 12, 2013 10:41 am    Post subject: Reply with quote

FeyFre wrote:
1. Нуждается или нет, тут дело абсолютно десятое. Но такой какой сейчас есть он тоже вполне заслуживает жить.

Вы так говорите, как-будто я предлагаю его уничтожить. Наоборот, я прошу его по возможности допилить до полной юзабельности.
FeyFre wrote:
2. Если почитать внимательно, то автором архива справки является ни автор Instructor, ни автор любого другого плагина, а такой же рядовой пользователь как и Вы Surveyor, корый это делает по мере свои возможностей и свободного времени(не так уж много оного у него нашлось за 1.5года когда его просили прошлый раз). Так что могу посоветовать Вам только самостоятельно попытаться разобраться в вопросах(с нашими подсказками) а не ожидать внезапное появление полной документации.
Я без претензий и считаю, что делаю полезное дело, сообщая о замеченных мной упущениях в той же самой документации. С RegEx'ами-то я почти разобрался (только из-за невозможности никак контролировать жадность - у меня не получаются некоторые вещи, не знаю как исхитриться), а вот где найти описание синтаксиса для правил для каждого из раздела в .coder-файлах - я не нашёл: конкретно меня интересуют FoldPanel, FoldList, Font, Colors, BkImage, AutoMark, TagMark, Skips - не очень понятно за что они отвечают.
И насчёт флагов вопрос: правильно ли я понимаю, что для Quotes и QuotesRE флаги описаны в Highlight

;Flags (sum of the members)
; 1 case sensitive.
; 2 word is a composition of characters ("Words:" section only). Example: "0123456789" - highlight words that contain only digits.
; 4 quote end required ("Quotes:" section only).
; 8 quote start string is ignored and last meet delimiter used as quote start ("Quotes:" section only).
; 16 quote end string is ignored and first meet delimiter used as quote end ("Quotes:" section only).
; 32 don't highlight quote start ("Quotes:" section only).
; 64 don't highlight quote end ("Quotes:" section only).
; 128 don't catch and don't highlight quote start ("Quotes:" section only).
; 256 don't catch and don't highlight quote end ("Quotes:" section only).
; 512 quote start, delimiter or word located at line start.
; 1024 quote end, delimiter or word located at line end.
; 2048 quote start is surrounded with delimiters ("Quotes:" section only).
; 4096 quote end is surrounded with delimiters ("Quotes:" section only).
; 8192 quote doesn't contain delimiters ("Quotes:" section only).
; 16384 only quote start string is catched ("Quotes:" section only).
, а для Skips и Folds в CodeFold

;Flags (sum of the members)
; 1 case sensitive.
; 2 force get fold name for function list from left at the fold start ("Folds:" section only).
; 4 force get fold name for function list from right at the fold start, including fold start ("Folds:" section only).
; 8 fold start located at line start ("Folds:" section only).
; 16 fold start located at line end ("Folds:" section only).
; 32 fold end located at line start ("Folds:" section only).
; 64 fold end located at line end ("Folds:" section only).
; 128 don't catch fold end ("Folds:" section) or skip end ("Skips:" section).
; 256 additional to 128 flag - more priority is given to sibling level instead of parent level ("Folds:" section only).
; 512 comment fold - fold ignore any other folds and skips inside ("Folds:" section only).
; 1024 reserved.
; 2048 deny fold - founded fold will be ignored ("Folds:" section only).
; 4096 xml fold - "<tag" and "</tag>", "<single" and "/>", "<single" and ">" ("Folds:" section only).
; 8192 don't check delimiters from left of fold start ("Folds:" section only).
; 16384 don't check delimiters from right of fold start ("Folds:" section only).
; 32768 don't check delimiters from left of fold end ("Folds:" section only).
; 65536 don't check delimiters from right of fold end ("Folds:" section only).
; 131072 deny delimiters ("Folds:" section only).
; 262144 don't show fold in list ("Folds:" section only).
?
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 326

PostPosted: Thu Sep 12, 2013 12:18 pm    Post subject: Reply with quote

Drugmix
1. По мануалам - "просить" и сообщать об ошибках следовало бы на английском (их автор канадец) в соответствующей ветке.
2. FoldPanel, FoldList, Font, Colors, BkImage никаких флагов не содержат. У трех последних в качестве флага используется едва ли не одна только регистрозависимость. Так о каком же "описании синтаксиса" там разговоры разговаривать?
3. О назначении указанных "разделов" проще всего самому догадаться, для чего взять да и поиграться с изменением цветовой темы при включенных CodeFold/HighLight и открытых подсвечиваемых файлах (для тэгов хорошо держать открытым файл-xml, и т.д.).
4. "насчёт флагов" - предположение верно.
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 421

PostPosted: Thu Sep 12, 2013 1:36 pm    Post subject: Reply with quote

opk44
1. Я не сразу сообразил, что русскоязычных .chm доков для акелпада нет не только у меня, а вообще. По поводу того, куда сообщать про .chm файлы - мне теперь понятно, спасибо. В русском мануале Coder-Rus.txt те же недостатки, что и в английской версии.
2. Я про эти секции интересовался не про флаги, а про то, что они вообще делают. Из их названий, лично мне, не понятно за что они отвечают, а описаний работы этих секций нет ни в .coder файлах, ни в мануалах Coder-Eng.txt/Coder-Rus.txt.
3. Да можно, конечно, но лучше бы в документацию добавить нормальное описание (не всё можно заметить глазами, что-то можно пропустить).
4. Ок, понял, спасибо. Хотя на мой взгляд - и это не очень очевидно расписано, стоило бы, прежде всего, это продублировать в Coder-Eng.txt/Coder-Rus.txt, а также внутри .coder-файлов заменить их шапки
Code:
;----------------------------------------------;
;                   CodeFold                   ;
;----------------------------------------------;

на что-то типа "Flag keys for FoldPanel, FoldList, TagMark, Skips, Folds and Blocks sections".

5. С документацией проблемы выяснены, помогите подправить regex шаблон.
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 421

PostPosted: Thu Sep 12, 2013 2:47 pm    Post subject: Reply with quote

Drugmix wrote:
А ещё в мануале в разделе "Elements" непонятно написано про circumflex (^):
Quote:
Note that this symbol (^) has alternate meaning when used outside the square brackets.
И не даётся пояснение того, какое он имеет тогда значение.

Начал править мануал и понял, что туплю: [^\d] == \D, а ^\d == цифра в начале строки, а вовсе не \D
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 326

PostPosted: Thu Sep 12, 2013 11:33 pm    Post subject: Reply with quote

Drugmix wrote:
заменить их шапки ... на что-то типа ...
1. AkelPad всегда отличался лаконичностью (граничащей со скупостью). С этим не бороться нужно, а просто постараться принять.
2. Если вы поинтересуетесь историей развития плагина Coder, то увидите, что он образовался слиянием трех отдельных плагинов (CodeFold+HighLight+AutoComplete) имевших отдельные файлы-настройки. Поэтому и coder-файлы стали состоять как бы из трех кусков. Код на вашей иллюстрации - одно из мест их "склейки".
3. Предложение "менять шапки" сродни требованию заставить писать, например, вместо «Приключения Робинзона Крузо» его полное название
«Жизнь, необыкновенные и удивительные приключения Робинзона Крузо, моряка из Йорка, прожившего 28 лет в полном одиночестве на необитаемом острове у берегов Америки близ устьев реки Ориноко, куда он был выброшен кораблекрушением, во время которого весь экипаж корабля кроме него погиб, с изложением его неожиданного освобождения пиратами; написанные им самим»
на том основании, что оно "более правильное".
Область действия флагов следует воспринимать как "отсюда и далее, пока не будет указано иное (только с учетом оговорок!)". Это проще чем всякого рода перечисления.
Об оговорках: использование вами флага "2" для секции "QuotesRE:" напрасно. Этот флаг работает только в секции "Words:".
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5358

PostPosted: Mon Sep 16, 2013 9:48 am    Post subject: Reply with quote

Drugmix wrote:
Помогите, пожалуйста, улучшить правило так, чтобы не подсвечивались отступы после запятой до первого \S символа:...


Код для тестовой версии.
Code:
QuotesRE:
;==================================================================
;Flags  Pattern \BackRef=(FontStyle,ColorText,ColorBk) \BackRef=...
;==================================================================
0   `^\s*(WinGet)(?:\s*,\s*|\s+)(.*)(\s*,\s*(.*)(\s*,\s*(.*)(\s*,\s*(.*)(\s*,\s*(.*)(\s*,\s*(.*))?)?)?)?)?` `\1=(2,${OP},0) \2=(2,${VAR},#00ff00) \4=(2,${OP},#ff0000) \6=(2,${VAR},#0000ff) \8=(2,${OP},#ff0000) \10=(2,${VAR},#00ff00) \12=(2,${OP},#0000ff)`
Back to top
View user's profile Send private message Send e-mail
Drugmix



Joined: 08 Apr 2013
Posts: 421

PostPosted: Sun Sep 29, 2013 1:38 pm    Post subject: Reply with quote

Instructor
спасибо, правило работает хорошо, но только все правила секции QuotesRE - регистрозависимы, а из-за того, что RegEx-парсер в акелпаде не поддерживает i), то приведённое Вами правило не срабатывает на строке начинающейся с Winget или winget, а срабатывает только с WinGet.
Back to top
View user's profile Send private message
FeyFre



Joined: 07 Aug 2007
Posts: 2039
Location: Vinnitsa, Ukraine

PostPosted: Sun Sep 29, 2013 3:40 pm    Post subject: Reply with quote

Drugmix, кто ищет, то всегда найдет.
Code:
[Ww][Ii][Nn][Gg][Ee][Tt]
Back to top
View user's profile Send private message AIM Address Yahoo Messenger MSN Messenger
Drugmix



Joined: 08 Apr 2013
Posts: 421

PostPosted: Sun Sep 29, 2013 3:46 pm    Post subject: Reply with quote

FeyFre
хитро́, я до такого не додумался Smile
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 326

PostPosted: Sun Sep 29, 2013 3:48 pm    Post subject: Reply with quote

Drugmix wrote:
Instructor
спасибо, правило работает хорошо, но только все правила секции QuotesRE - регистрозависимы, а из-за того, что RegEx-парсер в акелпаде не поддерживает i), то приведённое Вами правило не срабатывает на строке начинающейся с Winget или winget, а срабатывает только с WinGet.
С чего вы взяли, что "все правила секции QuotesRE - регистрозависимы"? Это чепуха.
Регистрозависимостью управляет флаг "1" (следовательно, и любая нечетная сумма). В примере этого флага нет ("0"). Значит, если использовать правило в точности так, как это указано, то получится следующее:
Back to top
View user's profile Send private message
Drugmix



Joined: 08 Apr 2013
Posts: 421

PostPosted: Sun Sep 29, 2013 4:51 pm    Post subject: Reply with quote

opk44
извините, но мой случай, видимо, клинический: я не понимал, что там за флаг слева и думал, что это для нумерации QuotesRE правил.
Порой я жёстко туплю.
Back to top
View user's profile Send private message
opk44



Joined: 16 Jan 2010
Posts: 326

PostPosted: Sun Sep 29, 2013 5:03 pm    Post subject: Reply with quote

Drugmix wrote:
opk44
извините, но мой случай, видимо, клинический: я не понимал, что там за флаг слева и думал, что это для нумерации QuotesRE правил.
Порой я жёстко туплю.

А судя по той фотографии, что вы уже успели убрать (подсвеченные лидирующие пробелы), так вы и вовсе до сих пор используете свое правило, а совсем не то, которое дал вам Instructor.
Back to top
View user's profile Send private message
Instructor
Site Admin


Joined: 06 Jul 2006
Posts: 5358

PostPosted: Mon Oct 14, 2013 8:04 am    Post subject: Reply with quote

Исправлено: отложенное обновление фолдинга (Coder::CodeFold).

Fixed: deferred folding refresh (Coder::CodeFold).


Coder plugin v11.8
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic    AkelPad Forum Index -> Plugins All times are GMT
Goto page Previous  1, 2, 3 ... 14, 15, 16 ... 58, 59, 60  Next
Page 15 of 60

 
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