Coder plugin (3)

Discuss and announce AkelPad plugins
  • Author
  • Message
Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Skif_off
[A-Za-z0-9_],
учту, хотя не латинские буквы могут либо внутри кавычек, либо в комментариях, а они оба просматриваются первее, в Quotes:.
1. В каком порядке идут coder-файлы, в таком и будут обрабатываться открываемые файлы
я не переименовывал, а свой ini-кодер переименовал, как мне советовали, чтобы он не перезаписался обновлениями. Жаль что это в справке не написано. А к примечанию тоже можно было дописать причину, чтобы понимать нужно ли это придерживание правил, ведь у меня не сработало.

Offline
Posts: 1162
Joined: Sun Oct 20, 2013 11:44 am

Post by Skif_off »

AZJIO wrote:учту, хотя не латинские буквы могут либо внутри кавычек, либо в комментариях, а они оба просматриваются первее, в Quotes:.
Это да, но есть ещё опечатки, копипаста.

Кстати, что быстрее - более конкретное [A-Za-z0-9_] или \w? Как-то не приходило в голову проверить :) (перестал пользоваться \w после того, как поведение изменилось на нынешнее).
AZJIO wrote:Жаль что это в справке не написано. А к примечанию тоже можно было дописать причину, чтобы понимать нужно ли это придерживание правил, ведь у меня не сработало.
Где-то в теме заходила речь, наверное, что-то вроде тех нюансов, которые всплывают лишь по ходу дела в не самых частых случаях. (В принципе, может кто и сам догадался (не я), т.к. в Files используется не расширение, а маска файла, это видно в изкоробочных coder-файлах.)
Не знаю, почему может не сработать. Можно попробовать включить кэш в плагине и посмотреть, все ли coder-файлы попадают в него вместе со своими типами файлов.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Skif_off
Не знаю, почему может не сработать.
потому что ini переименован в _ini и выше _grub2 или _syslinux, поэтому включался он.

Я подумал, допустим переделаю кодеры используя новые переменные, в этом случае чел взявший мой кодер лишится подсветки в виду отсутствия переменных. Внимание вопрос: можно ли в начале кодера задать значения переменных при их отсутствии в глобальных?

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

в HTML-кодер добавил *[1], теперь "Просмотр HTML-кода" включает HTML-подсветку

Code: Select all

Files:
*[1]
или *[*]

Offline
Posts: 18
Joined: Fri Mar 20, 2020 9:51 am

Post by VerTus »

Обнаружил проблемку с плагином - после { не видит открытия-закрытия тегов.

Например вот в таких конструкциях не подсвечивает div-ы и соответственно не переходит по ним.

Code: Select all

<?php
	if ($a > $b) {
	?>
	<div>
		Больше. Дивы не подвечиваются.
	</div>
	<?php
	}

	else{
?>
	<div>
		Меньше. Дивы не подвечиваются.
	</div>
	
<?php
}

for ($i = 1; $i <= 10; $i++) {
 ?>
 	<span>
		 Спаны не подвечиваются.
	</span>

 <?php
}

?>
	<div>
		echo "А вот тут всё работает"";
	</div>
Image


Стоит удалить { как всё работает.

Как бы это пофиксить?

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Используя регулярные выражения из своей проги набросал кодер для подсветки регулярных выражений в AkelPad. В синтаксис добавить "RegExp" Call("Coder::Settings", 1, "rex")
Включать вручную, но не исключено использовать "alias:.rex" в секции "Folds:".

Code: Select all

Files:
*.rex

QuotesRE:
; Цвет текстом
; скобки
1	"(?<!\\)(\((?:\?[smixJU\-]+?|\?<?[\:\=\!])?|\))"	"\1=(0,#FF8080,#3f3f3f)	"
; {n,m}
1	"(?<!\\)\{[\d,]+\}"	"\0=(0,#71AE71,#3f3f3f)	"
; .+? .*?
1	"(?<!\\)\.[*+]\??"	"\0=(0,#b175ff,#3f3f3f)	"
; \f, \h, \v, \w, \d и т.д.
1	"(?<!\\)\\[fhrntvdswFHRNVDSW][*+]?\??"	"\0=(0,#C4C072,#3f3f3f)	"
; Границы \b, \z, \A, разделитель ИЛИ
1	"(?<!\\)\\[ABbZzQE]|(?<![\[\\^])[$^|]"	"\0=(0,#F666FF,#3f3f3f)	"
; \x32\032\x{FF}
1	"\\(x\d\d|x\{[0-9A-Fa-f]{2}(?:[0-9A-Fa-f]{2})?\}|\d{3})[*+]?\??"	"\0=(0,#D997DE,#3f3f3f)	"
; типа [:alnum:]
1	"\[:\^?(alnum|alpha|ascii|blank|cntrl|digit|graph|lower|print|punct|space|upper|word|xdigit):\]"	"\1=(0,#009FFF,#3f3f3f)	"
; класс [...]
1	"(?<!\\)(\[\^|\[)(.*?[^\\:])(\]\+?\??)"	"\1=(0,#0080FF,#3f3f3f)	\2=(0,#009FFF,#3f3f3f)	\3=(0,#0080FF,#3f3f3f)"


QuotesRE:
; Цвет фоном
; скобки
1	"(?<!\\)(\((?:\?[smixJU\-]+?|\?<?[\:\=\!])?|\))"	"\1=(0,#fff,#ba4747)	"
; {n,m}
1	"(?<!\\)\{[\d,]+\}"	"\0=(0,#fff,#1c8517)	"
; .+? .*?
1	"(?<!\\)\.[*+]\??"	"\0=(0,#fff,#9342FF)	"
; \f, \h, \v, \w, \d и т.д.
1	"(?<!\\)(\\[fhrntvdswFHRNVDSW])([*+]?\??)"	"\1=(0,#ffea00,#806600)	\2=(0,#fff,#806600)"
; Границы \b, \z, \A, разделитель ИЛИ
1	"(?<!\\)\\[ABbZzQE]|(?<![\[\\^])[$^|]"	"\0=(0,#fff,#ff00bb)	"
; \x32\032\x{FF}
1	"\\(x\d\d|x\{[0-9A-Fa-f]{2}(?:[0-9A-Fa-f]{2})?\}|\d{3})[*+]?\??"	"\0=(0,#fff,#8f4680)	"
; типа [:alnum:]
1	"\[:\^?(alnum|alpha|ascii|blank|cntrl|digit|graph|lower|print|punct|space|upper|word|xdigit):\]"	"\1=(0,#fff,#3651a8)	"
; класс [...]
1	"(?<!\\)(\[\^|\[)(.*?[^\\:])(\]\+?\??)"	"\1=(0,#00ffaa,#3b3199)	\2=(0,#fff,#3651a8)	\3=(0,#00ffaa,#3b3199)"

Blocks:
$~zz_(?=)
(?=)

$~zz_(?!)
(?!)

$~zz_(?<=)
(?<=)

$~zz_(?<!)
(?<!)

$~zz_(?smi)
(?smi)

$~zz_(?:)
(?:)

$~zz_.*?
.*?

$~zz_\r\n
\r\n

$~zz_\r?$
\r?$

$~zz_[А-яЁё]
[А-яЁё]

$~zz_\Q\E
\Q\E

$~zz_\x{01}
\x{01}

$~zz_\x41
\x41

$~zz_\120
\120

$~zz_[\dA-Fa-f]
[\dA-Fa-f]

$~zz_[:alnum:]
[:alnum:]



Image

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Есть хотелка, для автозавершения есть код мессаги

Code: Select all

$(2)~ms_2_строки
MessageRequester("$[title]", "$[text]")
Но мне надо так:

Code: Select all

$(2)~ms_2_строки
$(2)~mb_2_строки
$(2)~MessageRequester
$(2)~MsgBox
MessageRequester("$[title]", "$[text]")
то есть я на некоторые популярные фрагменты сделаю несколько вариантов запроса. Я понимаю, что я могу сделать каждый индивидуально с одинаковым контекстом, но там могут быть многострочные фрагменты и я бы сэкономил в объёме текста.
Причина, по которой я хочу сделать разные запросы, например сделать классический вариант MessageRequester, свой новый вариант "mb", свой старый вариант ms, на который привычка, вариант MsgBox для тех кто перешёл с AutoIt3 на PureBasic для быстрого нахождения однотипных функций. Тоже самое для популярных строк отладчика, фрагментов GUI и т.д.

Я понимаю что скрипт ищет строки-имена начинающиеся на $~ или сложнее \$(\(\d+\))?~, то есть не замедлит скорость или замедлит только по количеству добавленных (на что пользователь соглашается), а уже вставка удалить строки-имена. То есть технически никакого утяжеления на скорость, но позволит универсальность.

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

AZJIO wrote:Есть хотелка, для автозавершения есть код мессаги ... то есть я на некоторые популярные фрагменты сделаю несколько вариантов запроса.
А в чём проблема? Вот для js-файлов:

Code: Select all

$~Arguments $~WScript.Arguments
WScript.Arguments($[0])
Ваш пример:

Code: Select all

$~MessageRequester $~MsgBox
MessageRequester("$[title]", "$[text]")

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

VladSh
гениально... вот так бы всегда, ты только подумал, а оно уже было.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Добавил русифицирующие строки в pb.coder, вот эти строки

Offline
Posts: 157
Joined: Thu Nov 26, 2015 8:03 pm
Location: Rostov-on-Don

Post by Eskander88 »

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

Удобно было бы включать опцию для того, чтобы словарь формировался и из файлов в открытых вкладках текущего экземпляра окна, например. AkelPad. Или может быть из файлов в текущей директории где расположен файл.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

Code: Select all

$~a:link
<a href="http://$[]">$[]</a>
кто подскажет как это использовать? двоеточие является разделителем, при наборе 2 символов выпадает список, у меня не выпадает, ни Ctrl+пробел не завершает. Видимо это используется при вводе 1 буквы в настройках для вывода списка.

в html.coder нет тега font в автозавершении.

Code: Select all

$~nb $~пробел
 

$~font $~шрифт
<font>$[]</font>

$~colspan $~колонка $~колспан
colspan=

$~rowspan $~строка $~роуспан
rowspan=

Offline
Posts: 874
Joined: Sat Jan 16, 2010 2:03 pm

Post by opk44 »

AZJIO wrote:...двоеточие является разделителем...
Можно предложить включить опцию
"AutoComplete 2" --> "Задействовать разделители из синтаксической темы"
В стандартной html-теме двоеточия в разделителях нет.

Offline
Posts: 348
Joined: Mon Jun 03, 2019 2:33 am

Post by AZJIO »

opk44
Работает. Ищу теперь разделитель в синтаксической теме, сделал поиск ":" получил список строк, ни в одной оно не выглядит как определение разделителей. Предположил что использование этой галки берёт слово от "$" до конца строки или до запятой, то есть в формате имен разделителя являются пробел, запятая и доллар.

Просто у меня сразу мечта, а может для каждого типа файлов определены разделители, например я выделяю кликом слово в PureBasic и оно не захватывает $, # и @, иногда это удобно но в большинстве случаев нет. Я видел в настройках разделители, но они определены для всех документов.

Offline
Posts: 165
Joined: Fri Aug 15, 2008 8:58 am

json not active syntax theme

Post by Diamen »

When I open a javascript file I have also
coder > syntax theme > javascript (checked)
instead When I open a json file I have also
coder > syntax theme
- all unchecked;
- json item missing in syntax theme menu;
- json.coder exist in coder folder.
Why?
At present json not work fine, it not match when have comment symbols, f.e. ~
How to set Akelpad to apply json coder syntax?
Post Reply