Coder plugin (2)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 1862
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Drugmix wrote:Правда, перед :: могут быть только хоткеи, а не всё что угодно, но если я добавлю ещё и проверки "является ли набранное хоткеем?", то правила распухнут в сотни раз.
Не знаю, как там работает, но, думается, с чем-нибудь вроде «(.{0,16}::)?» должно быть быстрее. И, наверное, можно и набор символов ограничить («\w» вместо «.», например).

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Infocatcher wrote:Не знаю, как там работает, но, думается, с чем-нибудь вроде «(.{0,16}::)?» должно быть быстрее.
Я не в курсе как устроена обработка RegExp'ов в AkelPad, если Instructor подтвердит, что .{0, n} работает быстрее, чем .* - то я попробую вычислить максимально возможный n (по моей предварительной примерной оценке n может достигать 36).
Infocatcher wrote:И, наверное, можно и набор символов ограничить («\w» вместо «.», например).
помимо \w там ещё возможны: #!^+&<>*~$ и пробельные символы (пробел и таб).

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

Post by Skif_off »

Coder-файлы для KiXtart, LaTeX и BibTeX, спасибо, Lenchik, что приютил :)

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

Post by Skif_off »

Instructor
Можно как-то заставить плагин в секции Blocks использовать символ из Delimiters, не убирая его из Delimiters?

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Drugmix wrote:.{0, n} работает быстрее, чем .*
Конечно быстрее, на строках длинее, чем n символов.

Skif_off
*.coder wrote:$=abbr exact abbreviation. May contain delimiters.

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

Post by Skif_off »

Instructor
Пробовал, такое

Code: Select all

$~\begin{center}
\begin{center}$[]
работает, если убрать \ и { из секции Delimiters.
А это

Code: Select all

$=\begin{center}
\begin{center}$[]
не работает независимо от наличия/отсутствия \ и { в Delimiters.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »


Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Instructor
а возможно ли как-то добавить поддержку Delimiters и для $~?

Наглядный пример, когда бы это пригодилось:
очень не хватает поддержки в Blocks фраз, содержащих пробелы: сейчас приходится выкручиваться используя спец.символ " " вместо пробела.
Соответственно, аббревиатура срабатывает только пока пользователь вписывает первое слово из конструкции, а как только он допишет первое слово до конца и напечатает пробел - подсказки скрываются.
Уж если не добавлять поддержку всех разделителей для $~, так может можно хотя бы приравнять спец.символ " " (если он из секции Blocks в coder файле) к пробелу при печати в документе?

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

Post by opk44 »

Instructor wrote:Skif_off
viewtopic.php?p=22308#p22308
Это да, но есть интересная особенность exact abbreviation - само автодополнение работает (по хоткею Ctrl+Space), но вот "окошко выбора варианта" не появляется, что и дает основания заявлять, что "что-то не так". Ну и отсутствие "окошка выбора варианта" под курсором заставляет помнить все такие abbr, а это практически не реально.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

Drugmix, opk44
AutoComplete работает так: при вызове "окошка выбора варианта", плагин ищет начало слова от каретки влево до первого встретившегося разделителя (из секции "Delimiters:" или из настроек программы, если снята галочка "Использовать разделители из синтаксической темы"). Далее данная часть слова используется для создания окошка со списком слов/аббревиатур.

Из вышеизложенного следует, что аббревиатуры, содержащие разделители, не могут быть выведены в "окошко выбора варианта" .

Offline
Posts: 294
Joined: Tue Jul 27, 2010 11:18 pm

Post by Serge Yolkin »

Drugmix
Спец.символ с кодом 0x20 - это сильно... Ну, а чем ещё может быть представлен пробельный символ в html? Полагаю, Вы имели в виду 0xA0 - неразрывный пробел?

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Instructor
а разве нельзя сделать так, чтобы плагин после того, как дошёл до первого разделителя и не нашёл совпадений (чтобы вывести варианты автозавершения) не переставал искать, а продолжал бы сдвигаться влево выполняя поиск снова и снова после каждого встреченного разделителя, пока не упрётся в символ начала строки (или в символ начала документа, если каретка на первой строке)?

Мне кажется, это не должно сильно замедлить работу (зависит от того, как реализовано сравнение строки слева от каретки с фразами из списка).

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

Post by Skif_off »

Или добавить возможность игнорировать разделители в секции Blocks для частичного совпадения. Хотя это, наверное, погеморройнее и с возможными негативными последствиями...

Offline
Posts: 582
Joined: Mon Apr 08, 2013 9:50 pm
Location: Win7SP1x64, APx64

Post by Drugmix »

Skif_off
только не "или", а "и". Если их просто игнорировать, то плагин будет копировать текст для сравнения аж до самого начала файла, о чём и рассказал Instructor.
А если сделать как я описал и + добавить возможность выбирать то, что считать разделителем (конкретно для секции Blocks:), а что нет - вот это будет супер.

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

Post by VladSh »

Подскажите пожалуйста, чем "быстрый" от "умного" кэша отличается? И можно ли добавить это в доку?

Похоже баг: при закрытии программы выбранная подсветка (как я понимаю, галка "псевдоним coder-файла") для открытого файла сохраняется, а при закрытии файла с помощью Esc или дабл-кликом по вкладке - нет.
Locked