Coder plugin (3)
- Author
- Message
-
Offline
- Posts: 15
- Joined: Fri May 10, 2013 3:29 am
RE:
Благодарю!
Я так и не понял, почему при вставке по образцу типа "24px" буквы переводились в заглавный регистр — по-моему, это прямая противоположность любому типу наследования... Тип файла был .txt
...Но при поправленных настройках проблема исчезла. Спасибо!
Кстати — предлагаю, по возможности, в "Настройки - Плагины" добавить ссылки на их настройку.
Это будет естественно, и простные смертные пользователи легче сами найдут ответы на такие вопросы.
Иначе мы ищем
"Настройки - Плагины - Coder - Autocomplete"
и остаёмся в недоумении, что надо лезть в
"Плагины - Программирование - Настроить".
Это разные слова "Coder - Autocomplete" и "Программирование", поэтому в поисках настроек мозг их даже не ассоциирует...
Я так и не понял, почему при вставке по образцу типа "24px" буквы переводились в заглавный регистр — по-моему, это прямая противоположность любому типу наследования... Тип файла был .txt
...Но при поправленных настройках проблема исчезла. Спасибо!
Кстати — предлагаю, по возможности, в "Настройки - Плагины" добавить ссылки на их настройку.
Это будет естественно, и простные смертные пользователи легче сами найдут ответы на такие вопросы.
Иначе мы ищем
"Настройки - Плагины - Coder - Autocomplete"
и остаёмся в недоумении, что надо лезть в
"Плагины - Программирование - Настроить".
Это разные слова "Coder - Autocomplete" и "Программирование", поэтому в поисках настроек мозг их даже не ассоциирует...
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Re: RE:
Поскольку ни старых ни поправленных настроек вы не предоставили, то и у нас шансов нет.фдуч wrote:Я так и не понял, почему
Открою вам страшную тайну - они там уже есть! Все записи вида "<Название-плагина>::Settings" - это и есть "ссылки на их настройку".фдуч wrote:Кстати — предлагаю, по возможности, в "Настройки - Плагины" добавить ссылки на их настройку.
Это будет естественно, и простные смертные пользователи легче сами найдут ответы на такие вопросы.
-
Offline
- Posts: 348
- Joined: Mon Jun 03, 2019 2:33 am
Re: RE:
По моему для данного случая какими бы не были настройки автозавершение (при отмеченном "Наследовать регистр введённых символов") 28PX не могло произойти, если только цифры не определились как верхний регистр. Теоретически алгоритм ищет слева первый символ, у которого можно определить регистр и при ненайденности должен вставить как есть в списке автозавершения. Я произвёл тест (в пустом файле и в не пустом), ввёл 28px, в новой строке ввёл 28, выбрал из списка 28px, получил 28PX.opk44 wrote:Поскольку ни старых ни поправленных настроек вы не предоставили, то и у нас шансов нет.
Попробовал t8px и ввёл t8, выбрал из списка t8px, получил t8px. Вот, уже видит регистр.
_______________________
Можно ли как то отключить встроенные горячие клавиши? Я хотел проверить, мешает ли встроенная горячая клавиша моей глобальной горячей клавише обработки текста. Открыл "Hotkeys плагин", нажал "Все клавиши...", здесь не получилось изменить. Попутно: в этом окне снизу поле поиска, но не очевидно что оно для поиска, я пытался в нём задать хоткей и потом не мог понять для чего оно.
-
Offline
- Posts: 874
- Joined: Sat Jan 16, 2010 2:03 pm
Try some monospaced font. For example: https://dejavu-fonts.github.ioDiamen wrote:How can I avoid it?
-
Offline
- Posts: 19
- Joined: Sun Dec 08, 2013 5:35 am
1. Имеет ли значение порядок секций в .coder-файле?
Т.е., если я на пример секцию QuotesRE перенесу после секции Words это как-то повлияет на раскраску?
2. Для раскраски слов, начинающихся с "_" и заканчивающихся ":" использую такую регулярку:
Для раскраски слов, начинающихся с "." и заканчивающихся ":" использую такую регулярку:
Дык вот для "_" раскраска работает, а для точки - нет. Что я делаю не так?

Т.е., если я на пример секцию QuotesRE перенесу после секции Words это как-то повлияет на раскраску?
2. Для раскраски слов, начинающихся с "_" и заканчивающихся ":" использую такую регулярку:
Code: Select all
"\b_\S+:?\b"
Code: Select all
"\b\.\S+:?\b"

-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
W0LF
1.
.. возрастающий приоритет (от меньшего к большему):
1. "Words:".
2. "Delimiters:".
3. "QuotesRE:", "Quotes:" - сейчас может меняться.
4. "Folds:".
2.
Регулярка:
"\b\.\S+:?\b"
- не имеет смысла, ибо:
"\b" - граница слова
"\." - не является словом, это разделитель.
"\S" - любой не пробельный символ.
" " - пробел тоже не является словом, а значит границы слова там тоже не будет...
т.е. совпадения не будет найдено в том тексте, который у Вас на скрине, да и в принципе, такой регэксп может сработать только на таком, например, тексте:
a.abc
a.abc:b
тест
====
1.
.. возрастающий приоритет (от меньшего к большему):
1. "Words:".
2. "Delimiters:".
3. "QuotesRE:", "Quotes:" - сейчас может меняться.
4. "Folds:".
2.
Регулярка:
"\b\.\S+:?\b"
- не имеет смысла, ибо:
"\b" - граница слова
"\." - не является словом, это разделитель.
"\S" - любой не пробельный символ.
" " - пробел тоже не является словом, а значит границы слова там тоже не будет...
т.е. совпадения не будет найдено в том тексте, который у Вас на скрине, да и в принципе, такой регэксп может сработать только на таком, например, тексте:
a.abc
a.abc:b
тест
====
Last edited by YuS on Sun Feb 02, 2020 10:55 am, edited 1 time in total.
-
Offline
- Posts: 348
- Joined: Mon Jun 03, 2019 2:33 am
W0LF
както так:
както так:
Code: Select all
"(?<=[ \t\\*+-])\.\S+:?\b"
"(?<!\w)\.\S+:?\b"
-
Offline
- Posts: 19
- Joined: Sun Dec 08, 2013 5:35 am
AkelPad ругается на первую строчку, а вторая - да, работает. Спасибо.AZJIO wrote:W0LF
както так:Code: Select all
"(?<=[ \t\\*+-])\.\S+:?\b" "(?<!\w)\.\S+:?\b"
-
Offline
- Posts: 513
- Joined: Sun Sep 15, 2013 8:25 am
- Location: 013 в Тентуре, семь по Спирали, налево от Большой Медведицы
Правильность составления шаблона зависит от того, что именно требуется найти (что должен захватить шаблон), а что исключить из результатов поиска...W0LF wrote: Тогда как же правильно составить регулярку?
И пример текста не помешает для анализа, чтобы понять, какие возможны варианты расположения символов...
-
Offline
- Posts: 348
- Joined: Mon Jun 03, 2019 2:33 am
1. в кодерах имеем разные пересечения *.cfg, как они будут обрабатываться?
2. В пунктах меню сделал так:
Но изначально я не хотел прописывать в них расширения *.cfg1 *.cfg2 *.cfg3, а просто указать файл целиком, например "_syslinux.coder", но это не работало. Посмотрел в справке:
тут либо расширение "cfg" либо псевдоним ".cfg" что в принципе одно и тоже расширение.
3. В AutoIt3 и PureBasic одинаковый синтаксис функций
если в секции Folds: указать так:
то первые 2 вставляют в панель списка свёрток
Подумал может флаг 4 сработает (4 форсировать получение имени для списка справа от начала блока, включая начало блока (только для секции "Folds:").), но не помогло.
И, кстати, понятно, что каждый флаг создавался для реального случая, вот к описанию бы примеры, потому что методом тыка тяжело разгадывать.
Для коллекции дополнительных кодеров добавьте
au3.coder (AutoIt3, 3741 элементов автозавершения, оптимизированный поиск всех имён функций включая UDF и собственные по наличию открывающей скобки)
pb.coder (PureBasic, 1674 элементов автозавершения)
reg.coder - в отличии от ini-файлов, хоть и формат похожий, но всё же есть свои особенности подсветки типов данных, есть подсветка удаляемых разделов, GUID.
Для ini.coder можно добавить строку
bbcode.coder - в txt.coder надо добавить строку:
Единственное я вставил русское описание флагов в кодеры. В идеале бы сделать стандартизацию описаний, чтобы кликом утилиты тексты подменились бы на родной язык. И стандартизацию авторства и краткого описания чьих файлов будет кодер, так как расширение ни о чём не говорит, так как многие используют одно и тоже для своих программ.
ini.coder
*.cfg
_syslinux.coder
syslinux.cfg
_grub2.coder
grub.cfg
У меня с cfg была проблема, пришлось указывать *.cfg1 *.cfg2 *.cfg3 в разных чтобы не мешали друг-другу, а в ini.coder пришлось делать так:*.txt
txt.coder
7zsfxconfig.coder
*config.txt
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"
Code: Select all
"Grub2 AZJIO" Call("Coder::Settings", 1, "cfg1")
"Grub2 Skif_off" Call("Coder::Settings", 1, "cfg3")
"syslinux" Call("Coder::Settings", 1, "cfg2")
Code: Select all
Call("Coder::Settings", 1, "EXTENSION")
Call("Coder::Settings", 6, "ALIAS")
3. В AutoIt3 и PureBasic одинаковый синтаксис функций
Code: Select all
Func FuncName(...)
...
EndFunc
Procedure FuncName(...)
...
EndProcedure
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
а надо только имя FuncName(). Попробовал регулярное выражение, оно добавляет в список только имя, а выделяет начало и конец не Func-EndFunc, а FuncName-EndFunc (который маркер CodeFold_TagMark), что не совсем идеально.Procedure FuncName()
Func _FuncName()
Подумал может флаг 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)"
Code: Select all
3145733 0 0 0 "\A(?=.*\[(?:[a-z]{3,7}=|\[/[a-z]{3,7}\]))" "\Z" "" 0 0 "bbcode.coder"
-
Offline
- Posts: 1162
- Joined: Sun Oct 20, 2013 11:44 am
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 заберёт своё.
В первом и втором не зря написано
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 заберёт своё.
В первом и втором не зря написано
3.;NOTE1: Don't rename file!
;ПРИМЕЧАНИЕ1: Не переименовывать файл!
Использовать \w по крайней мере в данном случае плохая идея, потому что \w не равно [A-Za-z0-9_], со всеми вытекающими.au3.coder (AutoIt3, 3741 элементов автозавершения, оптимизированный поиск всех имён функций включая UDF и собственные по наличию открывающей скобки)