Page 40 of 40

Re: Coder plugin (3)

Posted: Wed Feb 05, 2025 3:10 am
by AZJIO
Cuprum wrote: Sat Dec 30, 2023 12:21 pm Задумал сделать подсветку Котлина.
Можете ли дать файл подсветки для проверки?
У вас внутри кавычек подсвечена переменная. То есть получилось что кавычка не закончена. Внутри кавычек как я понимаю текст, а текст не должен быть подсвечен как будто это код. Или текст или код. Кавычка не закрыта, если так задано регулярным выражением, то будет путаница в открывающих и закрывающих кавычках. Жадность регулируется знаком "?", с ним регвыр не жадный, останавливаясь на минимальной длине совпадения.

Для Kotlin содер Java не подойдёт?

Re: Coder plugin (3)

Posted: Fri Feb 14, 2025 9:20 am
by Cuprum
AZJIO wrote: Wed Feb 05, 2025 3:10 am Можете ли дать файл подсветки для проверки?
К сожалению нет, я долго ковырялся с своим кодер-файлом для Котлина, сейчас глянул, там в файле какая-то билиберда :D. Видимо, плюнул на это дело.
Кодер файл от Java не подойдет, хотя концептуально языки близки, синтаксис у Котлина другой, похитрее.

Re: Coder plugin (3)

Posted: Sun Mar 02, 2025 12:37 pm
by sha
как в "Fold end" отловить подмаску из регекспа в "Fold start"? Ни \1 или $1 не ловят.

Re: Coder plugin (3)

Posted: Sat Mar 08, 2025 12:40 am
by AZJIO
как бы это выглядело если бы \1 или $1 работал?

Re: Coder plugin (3)

Posted: Sat Mar 08, 2025 3:58 pm
by sha
ну вот вижу в каком-то coder-файле в секции Folds: конструкцию

Code: Select all

3145769	0	0	0	"^( *)ifeq"	"^\101endif"	" 	"	0	0
очевидно, что \101 - это подмаска из начального регекспа. Но это не работает. Насколько понимаю, сделать подсветку типа heredoc можно только в секции "Fold:" с флагами допускающими регекспы. "<<<(\w+)$" "^\s*\101" - не работает как и \1 и $1. Это возможно в принципе?

Re: Coder plugin (3)

Posted: Sun Mar 09, 2025 12:59 am
by AZJIO
sha
Насколько я понимаю здесь два независимых регулярных выражения, одно для начала, второе для конца. В справке есть пример показывающий что ссылки на группы работают.

Re: Coder plugin (3)

Posted: Sun May 11, 2025 5:57 pm
by Instructor
AlexeyB wrote: Fri Mar 25, 2022 4:56 pm3. В комментариях к синтаксическим файлам говорится, что в шаблоне конца блока можно использовать обратную ссылку \101 для доступа к значению группы 1 начала блока, \102 - группы 2 и т.д. В секции Folds это не работает:

Code: Select all

;===========================================================================
;Flags  Font    Color   Color   Fold     Fold     Deli    Parent  Rule  Rule
;       style   text    bkgrnd  start    end      miters  ID      ID    file
;===========================================================================
3145728 0       #080    0       "<(\d)"  "\101>"  ""      0       0
Image
sha wrote: Sun Mar 02, 2025 12:37 pmкак в "Fold end" отловить подмаску из регекспа в "Fold start"? Ни \1 или $1 не ловят.
См. Coder v21.0

Re: Coder plugin (3)

Posted: Sun May 11, 2025 5:59 pm
by Instructor
Добавлено: обратная ссылка для начала блока в конце блока при использовании флага 2097152. Обратная ссылка \101 соответствует \1 в начале блока, \102 соответствует \2 и т. д. (секции "Folds:" и "Skips:").
Исправлено: ошибка при выходе из программы с разделённым окном.

Added: backreference for fold start in fold end when 2097152 flag is used. Backreference \101 matches \1 in fold start, \102 matches \2 and so on ("Folds:" and "Skips:" sections).
Fixed: error when exiting program with a split window.

Coder plugin v21.0

Re: Coder plugin (3)

Posted: Wed Jul 16, 2025 4:07 pm
by Лестер Глючный
чё вообще происходит?
"1s.coder" (offset 3561) contain unknown section name "0".
"asm.coder" (offset 3539) contain unknown section name "0".
"au3.coder" (offset 3503) contain unknown section name "0".
"bat.coder" (offset 3510) contain unknown section name "0".
"coder.coder" (offset 3505) contain unknown section name "0".
"cpp.coder" (offset 3605) contain unknown section name "0".
"cs.coder" (offset 3547) contain unknown section name "0".
"css.coder" (offset 3511) contain unknown section name "0".
"html.coder" (offset 3570) contain unknown section name "0".
"ini.coder" (offset 3586) contain unknown section name "0".
"inno.coder" (offset 3543) contain unknown section name "0".
"js.coder" (offset 3540) contain unknown section name "0".
"lua.coder" (offset 3503) contain unknown section name "0".
"nsis.coder" (offset 3586) contain unknown section name "0".
"pascal.coder" (offset 3510) contain unknown section name "0".
"perl.coder" (offset 3524) contain unknown section name "0".
"php.coder" (offset 3565) contain unknown section name "0".
"python.coder" (offset 3509) contain unknown section name "0".
"qsfndall_tofile.coder" (offset 3538) contain unknown section name "0".
"qsfndall_tolog.coder" (offset 3537) contain unknown section name "0".
"rc.coder" (offset 3502) contain unknown section name "0".
"sql.coder" (offset 3503) contain unknown section name "0".
"vbs.coder" (offset 3537) contain unknown section name "0".
"xml.coder" (offset 3999) contain unknown section name "0".
(версия AkelPad за 5 июня)

Re: Coder plugin (3)

Posted: Fri Jul 18, 2025 12:23 pm
by DV
Лестер Глючный wrote: Wed Jul 16, 2025 4:07 pm чё вообще происходит?
"1s.coder" (offset 3561) contain unknown section name "0".
Checking the mentioned offset in the given files (open the file in AkelPad, select Edit -> Go To and specify an Offset) leads to the following:

Code: Select all

${HighLight_LineBkColor}
Looks like this variable either is not present or has been removed from the current Color Theme in AkelPad.
It may happen with a custom Color theme that has been incorrectly updated.

Re: Coder plugin (3)

Posted: Wed Jul 23, 2025 4:08 pm
by Лестер Глючный
А… offset по символам, а не по байтам, LOL… but it is "by design"! Open "Plugs\Coder.dll" in AkelPad @CP_1200 (UTF-16LE) and look at this piece of s… offset 105264 (Row=1503)…
Я вообще хочу выкинуть все "встроенные темы" из .dll`ки, чтоб не путались под рукой — ни одна меня не устраивает, too high contrast, см. topic.php?p=36835
Зачем вообще существует переменные, конфликтующие с настройкой View — Colors… (где, к тому же, так же нельзя указать системные цвета)?

Re: Coder plugin (3)

Posted: Wed Oct 08, 2025 6:12 pm
by Infocatcher
Применительно к вопросам/замечаниям по подсветке bat-файлов (https://github.com/Infocatcher/AkelPad_ ... 3152554105) возникло пожелание добавить какое-нибудь условное включение/выключение правил в coder-файле – чтобы можно было через глобальные переменные повлиять на логику работы (а не делать, например, несколько альтернативных coder-файлов, их синхронно править муторно).

Некий аналог для чего-то типа

Code: Select all

#ifdef CodeFold_Extended
; Какое-то правило
#else
; Какое-то альтернативное правило
#endif
Или дополнительным флагом:

Code: Select all

;======================================================================================
;Flags  Font    Color   Color   Fold   Fold   Deli      Parent  Rule    Rule    Rule
;       style   text    bkgrnd  start  end    miters    ID      ID      file    enabled
;======================================================================================
; Show ( … ) folds in list:
1       0       0       0       (       )     ""        0       0       ""      ${CodeFold_Extended}
; Alternative, don't show ( … ) folds in list:
;262145=1+262144
262145  0       0       0       (       )     ""        0       0       ""      ${!CodeFold_Extended}

Re: Coder plugin (3)

Posted: Mon Oct 13, 2025 5:49 pm
by yozhic
Очень вероятно, что я чего-то
Но пока кажется, что так быть не должно :) В .coder правило:

Code: Select all

Folds:
;--Switch...Case...EndSwitch--
40	0	0	0	"Switch"  "EndSwitch" ""	0	31
424	0	0	0	"Case"    "Case"       ""	0	0
424	0	0	0	"Case"    "Else"       ""	0	0
424	0	0	0	"Case"    "EndSwitch"  ""	0	0
424	0	0	0	"Else"    "EndSwitch"  ""	31	0
В коде пользовательская ф-ция, начинающаяся со слова Switch:

Code: Select all

Func SwitchColors(lParam)
    ...
EndFunc

If lParam = 1 And IsPressed(0x5B) Then
   SwitchColors(1)
   Return
EndIf

Func DateDiff(DateTime1, DateTime2, Unit)
    ...
    Switch Unit
        Case "M"
            Return Floor(Diff / 60)
        Case "H"
            Return Floor(Diff / 3600)
        Else
            Return Diff
    EndSwitch
EndFunc
Switch Unit работает корректно. А SwitchColors(1) сворачивает (поглощает) всю оставшуюся часть файла. Получается, что плагин не проверяет разделитель справа от Switch? Хотя пробел в Delimiters есть. Должен же, вроде, разделитель справа проверяться, иначе бы не имел смысла флаг 16384 («не проверять разделители справа от начала блока»).

Можно, конечно, регуляркой (с флагом 1048576) начало блока уточнить. Я пока добавил пробел перед закр. кавычкой "Switch ", и подсветка заработала так, как ожидалось. Но всё же хотелось бы понять, справедливо ли я засомневался или недопонял чего?

Да, действительно недопонял. У Folds свои разделители, и Delimiters из другого раздела (Highlight), здесь не учитываются. Добавил пробел в Folds->Delimiters, и правило заработало, как ожидалось. А я почему-то подумал, что в этом месте Delimiters перечисляются только для флага 131072 (разделители запрещены) :? Но, спасибо Cuprum — помог разобраться.