Page 27 of 99
Posted: Mon Jan 06, 2014 8:03 pm
by Infocatcher
Drugmix wrote:Правда, перед :: могут быть только хоткеи, а не всё что угодно, но если я добавлю ещё и проверки "является ли набранное хоткеем?", то правила распухнут в сотни раз.
Не знаю, как там работает, но, думается, с чем-нибудь вроде «(.{0,16}::
)?» должно быть быстрее. И, наверное, можно и набор символов ограничить («\w» вместо «.», например).
Posted: Mon Jan 06, 2014 9:01 pm
by Drugmix
Infocatcher wrote:Не знаю, как там работает, но, думается, с чем-нибудь вроде «(.{0,16}::)?» должно быть быстрее.
Я не в курсе как устроена обработка RegExp'ов в AkelPad, если Instructor подтвердит, что .{0, n} работает быстрее, чем .* - то я попробую вычислить максимально возможный n (по моей предварительной примерной оценке n может достигать 36).
Infocatcher wrote:И, наверное, можно и набор символов ограничить («\w» вместо «.», например).
помимо \w там ещё возможны: #!^+&<>*~$ и пробельные символы (пробел и таб).
Posted: Tue Jan 07, 2014 2:28 am
by Skif_off
Posted: Tue Jan 07, 2014 3:09 pm
by Skif_off
Instructor
Можно как-то заставить плагин в секции Blocks использовать символ из Delimiters, не убирая его из Delimiters?
Posted: Tue Jan 07, 2014 5:51 pm
by Instructor
Drugmix wrote:.{0, n} работает быстрее, чем .*
Конечно быстрее, на строках длинее, чем n символов.
Skif_off
*.coder wrote:$=abbr exact abbreviation. May contain delimiters.
Posted: Tue Jan 07, 2014 6:22 pm
by Skif_off
Instructor
Пробовал, такое
Code: Select all
$~\begin{center}
\begin{center}$[]
работает, если убрать \ и { из секции Delimiters.
А это
Code: Select all
$=\begin{center}
\begin{center}$[]
не работает независимо от наличия/отсутствия \ и { в Delimiters.
Posted: Tue Jan 07, 2014 6:29 pm
by Instructor
Posted: Tue Jan 07, 2014 6:41 pm
by Drugmix
Instructor
а возможно ли как-то добавить поддержку Delimiters и для $~?
Наглядный пример, когда бы это пригодилось:
очень не хватает поддержки в Blocks фраз, содержащих пробелы: сейчас приходится выкручиваться используя спец.символ " " вместо пробела.
Соответственно, аббревиатура срабатывает только пока пользователь вписывает первое слово из конструкции, а как только он допишет первое слово до конца и напечатает пробел - подсказки скрываются.
Уж если не добавлять поддержку всех разделителей для $~, так может можно хотя бы приравнять спец.символ " " (если он из секции Blocks в coder файле) к пробелу при печати в документе?
Posted: Tue Jan 07, 2014 6:58 pm
by opk44
Это да, но есть интересная особенность exact abbreviation - само автодополнение работает (по хоткею Ctrl+Space), но вот "окошко выбора варианта" не появляется, что и дает основания заявлять, что "что-то не так". Ну и отсутствие "окошка выбора варианта" под курсором заставляет помнить все такие abbr, а это практически не реально.
Posted: Tue Jan 07, 2014 7:20 pm
by Instructor
Drugmix, opk44
AutoComplete работает так: при вызове "окошка выбора варианта", плагин ищет начало слова от каретки влево до первого встретившегося разделителя (из секции "Delimiters:" или из настроек программы, если снята галочка "Использовать разделители из синтаксической темы"). Далее данная часть слова используется для создания окошка со списком слов/аббревиатур.
Из вышеизложенного следует, что аббревиатуры, содержащие разделители, не могут быть выведены в "окошко выбора варианта" .
Posted: Tue Jan 07, 2014 7:40 pm
by Serge Yolkin
Drugmix
Спец.символ с кодом 0x20 - это сильно... Ну, а чем ещё может быть представлен пробельный символ в html? Полагаю, Вы имели в виду 0xA0 - неразрывный пробел?
Posted: Tue Jan 07, 2014 7:48 pm
by Drugmix
Instructor
а разве нельзя сделать так, чтобы плагин после того, как дошёл до первого разделителя и не нашёл совпадений (чтобы вывести варианты автозавершения) не переставал искать, а продолжал бы сдвигаться влево выполняя поиск снова и снова после каждого встреченного разделителя, пока не упрётся в символ начала строки (или в символ начала документа, если каретка на первой строке)?
Мне кажется, это не должно сильно замедлить работу (зависит от того, как реализовано сравнение строки слева от каретки с фразами из списка).
Posted: Tue Jan 07, 2014 8:25 pm
by Skif_off
Или добавить возможность игнорировать разделители в секции Blocks для частичного совпадения. Хотя это, наверное, погеморройнее и с возможными негативными последствиями...
Posted: Tue Jan 07, 2014 8:56 pm
by Drugmix
Skif_off
только не "или", а "и". Если их просто игнорировать, то плагин будет копировать текст для сравнения аж до самого начала файла, о чём и рассказал Instructor.
А если сделать как я описал и + добавить возможность выбирать то, что считать разделителем (конкретно для секции Blocks:), а что нет - вот это будет супер.
Posted: Wed Jan 08, 2014 2:55 pm
by VladSh
Подскажите пожалуйста, чем "быстрый" от "умного" кэша отличается? И можно ли добавить это в доку?
Похоже баг: при закрытии программы выбранная подсветка (как я понимаю, галка "псевдоним coder-файла") для открытого файла сохраняется, а при закрытии файла с помощью Esc или дабл-кликом по вкладке - нет.