Page 31 of 40

Posted: Tue Nov 19, 2019 1:31 am
by AZJIO
Сделал описание пока 2-х вкладок автозавершения

RE:

Posted: Tue Nov 19, 2019 8:06 pm
by фдуч
Благодарю!

Я так и не понял, почему при вставке по образцу типа "24px" буквы переводились в заглавный регистр — по-моему, это прямая противоположность любому типу наследования... Тип файла был .txt

...Но при поправленных настройках проблема исчезла. Спасибо!

Кстати — предлагаю, по возможности, в "Настройки - Плагины" добавить ссылки на их настройку.

Это будет естественно, и простные смертные пользователи легче сами найдут ответы на такие вопросы.

Иначе мы ищем
"Настройки - Плагины - Coder - Autocomplete"

и остаёмся в недоумении, что надо лезть в
"Плагины - Программирование - Настроить".

Это разные слова "Coder - Autocomplete" и "Программирование", поэтому в поисках настроек мозг их даже не ассоциирует...

Re: RE:

Posted: Tue Nov 19, 2019 11:24 pm
by opk44
фдуч wrote:Я так и не понял, почему
Поскольку ни старых ни поправленных настроек вы не предоставили, то и у нас шансов нет.
фдуч wrote:Кстати — предлагаю, по возможности, в "Настройки - Плагины" добавить ссылки на их настройку.

Это будет естественно, и простные смертные пользователи легче сами найдут ответы на такие вопросы.
Открою вам страшную тайну - они там уже есть! Все записи вида "<Название-плагина>::Settings" - это и есть "ссылки на их настройку".

Re: RE:

Posted: Wed Nov 20, 2019 12:44 am
by AZJIO
opk44 wrote:Поскольку ни старых ни поправленных настроек вы не предоставили, то и у нас шансов нет.
По моему для данного случая какими бы не были настройки автозавершение (при отмеченном "Наследовать регистр введённых символов") 28PX не могло произойти, если только цифры не определились как верхний регистр. Теоретически алгоритм ищет слева первый символ, у которого можно определить регистр и при ненайденности должен вставить как есть в списке автозавершения. Я произвёл тест (в пустом файле и в не пустом), ввёл 28px, в новой строке ввёл 28, выбрал из списка 28px, получил 28PX.
Попробовал t8px и ввёл t8, выбрал из списка t8px, получил t8px. Вот, уже видит регистр.

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

Posted: Fri Jan 10, 2020 8:38 am
by Diamen
I have this annoying defect.ini coder.
How can I avoid it?
Image

Posted: Fri Jan 10, 2020 2:53 pm
by opk44
Diamen wrote:How can I avoid it?
Try some monospaced font. For example: https://dejavu-fonts.github.io

Posted: Fri Jan 10, 2020 4:26 pm
by Diamen
The problem is:
517 2 0 0 "[" "]" "" "" "" 0 0
if i change to
517 0 0 0 "[" "]" "" "" "" 0 0
work fine
do it have a problem with brackets and bold?

Posted: Fri Jan 31, 2020 4:10 pm
by W0LF
1. Имеет ли значение порядок секций в .coder-файле?
Т.е., если я на пример секцию QuotesRE перенесу после секции Words это как-то повлияет на раскраску?

2. Для раскраски слов, начинающихся с "_" и заканчивающихся ":" использую такую регулярку:

Code: Select all

"\b_\S+:?\b"
Для раскраски слов, начинающихся с "." и заканчивающихся ":" использую такую регулярку:

Code: Select all

"\b\.\S+:?\b"
Дык вот для "_" раскраска работает, а для точки - нет. Что я делаю не так?

Image

Posted: Fri Jan 31, 2020 5:26 pm
by YuS
W0LF
1.
.. возрастающий приоритет (от меньшего к большему):
1. "Words:".
2. "Delimiters:".
3. "QuotesRE:", "Quotes:" - сейчас может меняться.
4. "Folds:".


2.
Регулярка:
"\b\.\S+:?\b"
- не имеет смысла, ибо:
"\b" - граница слова
"\." - не является словом, это разделитель.
"\S" - любой не пробельный символ.
" " - пробел тоже не является словом, а значит границы слова там тоже не будет...
т.е. совпадения не будет найдено в том тексте, который у Вас на скрине, да и в принципе, такой регэксп может сработать только на таком, например, тексте:
a.abc
a.abc:b

тест
====

Posted: Sat Feb 01, 2020 8:27 am
by W0LF
YuS wrote: "\b" - граница слова
"\." - не является словом, это разделитель.
Тогда как же правильно составить регулярку?

Posted: Sat Feb 01, 2020 11:57 am
by AZJIO
W0LF
както так:

Code: Select all

"(?<=[ \t\\*+-])\.\S+:?\b"
"(?<!\w)\.\S+:?\b"

Posted: Sat Feb 01, 2020 3:53 pm
by W0LF
AZJIO wrote:W0LF
както так:

Code: Select all

"(?<=[ \t\\*+-])\.\S+:?\b"
"(?<!\w)\.\S+:?\b"
AkelPad ругается на первую строчку, а вторая - да, работает. Спасибо.

Posted: Sun Feb 02, 2020 11:01 am
by YuS
W0LF wrote: Тогда как же правильно составить регулярку?
Правильность составления шаблона зависит от того, что именно требуется найти (что должен захватить шаблон), а что исключить из результатов поиска...
И пример текста не помешает для анализа, чтобы понять, какие возможны варианты расположения символов...

Posted: Sat Feb 22, 2020 12:56 am
by AZJIO
1. в кодерах имеем разные пересечения *.cfg, как они будут обрабатываться?
ini.coder
*.cfg
_syslinux.coder
syslinux.cfg
_grub2.coder
grub.cfg
*.txt
txt.coder
7zsfxconfig.coder
*config.txt
У меня с cfg была проблема, пришлось указывать *.cfg1 *.cfg2 *.cfg3 в разных чтобы не мешали друг-другу, а в ini.coder пришлось делать так:

Code: Select all

3145733    0    0    0    "(?i)\A(?=.*menu label)"    "\Z"    ""    0    0    "_syslinux.coder"
3145733    0    0    0    "(?i)\A(?=.*menuentry)"    "\Z"    ""    0    0    "_grub2.coder"
2. В пунктах меню сделал так:

Code: Select all

"Grub2 AZJIO" Call("Coder::Settings", 1, "cfg1")
"Grub2 Skif_off" Call("Coder::Settings", 1, "cfg3")
"syslinux" Call("Coder::Settings", 1, "cfg2")
Но изначально я не хотел прописывать в них расширения *.cfg1 *.cfg2 *.cfg3, а просто указать файл целиком, например "_syslinux.coder", но это не работало. Посмотрел в справке:

Code: Select all

Call("Coder::Settings", 1, "EXTENSION")
Call("Coder::Settings", 6, "ALIAS")
тут либо расширение "cfg" либо псевдоним ".cfg" что в принципе одно и тоже расширение.

3. В AutoIt3 и PureBasic одинаковый синтаксис функций

Code: Select all

Func FuncName(...)
	...
EndFunc

Procedure FuncName(...)
	...
EndProcedure
если в секции Folds: указать так:

Code: Select all

40	0	0	0	"Procedure"	"EndProcedure"	" 	"	0	0
40	0	0	0	"Func"            "EndFunc"       " 	"       0	0
; 1048576	0	0	0	"(?<=Func[ \t])\w+"            "EndFunc"       " 	"       0	0
то первые 2 вставляют в панель списка свёрток
Procedure FuncName()
Func _FuncName()
а надо только имя FuncName(). Попробовал регулярное выражение, оно добавляет в список только имя, а выделяет начало и конец не Func-EndFunc, а FuncName-EndFunc (который маркер CodeFold_TagMark), что не совсем идеально.
Подумал может флаг 4 сработает (4 форсировать получение имени для списка справа от начала блока, включая начало блока (только для секции "Folds:").), но не помогло.
И, кстати, понятно, что каждый флаг создавался для реального случая, вот к описанию бы примеры, потому что методом тыка тяжело разгадывать.

Для коллекции дополнительных кодеров добавьте
au3.coder (AutoIt3, 3741 элементов автозавершения, оптимизированный поиск всех имён функций включая UDF и собственные по наличию открывающей скобки)
pb.coder (PureBasic, 1674 элементов автозавершения)
reg.coder - в отличии от ini-файлов, хоть и формат похожий, но всё же есть свои особенности подсветки типов данных, есть подсветка удаляемых разделов, GUID.
Для ini.coder можно добавить строку

Code: Select all

; параметр = значение (3 варианта значений: число, шестнадцатеричное число, текст)
1	"^(.+?)(=)(?:(-?\d+$)|(#?[\da-fA-F]+$)|([^\r\n]+$))"	"\1=(0,#AAAAAA,0)	\2=(0,#FF8080,0)	\3=(0,#F666FF,0)	\4=(0,#6588F7,0)	\5=(0,#C0AD72,0)"
bbcode.coder - в txt.coder надо добавить строку:

Code: Select all

3145733    0    0    0    "\A(?=.*\[(?:[a-z]{3,7}=|\[/[a-z]{3,7}\]))"    "\Z"    ""    0    0    "bbcode.coder"
Единственное я вставил русское описание флагов в кодеры. В идеале бы сделать стандартизацию описаний, чтобы кликом утилиты тексты подменились бы на родной язык. И стандартизацию авторства и краткого описания чьих файлов будет кодер, так как расширение ни о чём не говорит, так как многие используют одно и тоже для своих программ.

Posted: Wed Mar 04, 2020 6:16 pm
by Skif_off
AZJIO
1. В каком порядке идут coder-файлы, в таком и будут обрабатываться открываемые файлы, поэтому
_grub2.coder будет применён к grub.cfg,
_syslinux.coder к syslinux.cfg, isolinux.cfg и extlinux.conf,
7zsfxconfig.coder к *config.txt, *.sfx.config и *.sfx.config.*,
далее ini.coder ко всем оставшимся *.cfg, а следом txt.coder заберёт своё.
В первом и втором не зря написано
;NOTE1: Don't rename file!
;ПРИМЕЧАНИЕ1: Не переименовывать файл!
3.
au3.coder (AutoIt3, 3741 элементов автозавершения, оптимизированный поиск всех имён функций включая UDF и собственные по наличию открывающей скобки)
Использовать \w по крайней мере в данном случае плохая идея, потому что \w не равно [A-Za-z0-9_], со всеми вытекающими.