LuaComplete — завершение слов макроса на LUA

Здесь обсуждается всё, что касается макросов.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

Небольшой макрос, реализующий завершение слов, заточенный под LUA. В отличие от многочисленных скриптов и плагинов Word Cmplete, предлагаемый скрипт не анализирует уже имеющиеся в тексте слова, а ищет в списке ключевых слов языка LUA1 и элементов таблицы _G (со всеми вложенностями).

В настоящее время для получения списка ключевых слов используется скрипт LuaCheck, модуль luacheck.builtin_standards (подраздел возвращаемой таблицы max).


ArchiveLuaComplete.v4.7z
(5.01 KiB) Downloaded 85 times
Last edited by buniak_a_h on Wed 05 Aug, 2020 09:12, edited 5 times in total.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LuaComplete — завершение слов макроса на LUA

Post by HaRT »

Latest post of the previous page:

zg wrote: Tue 22 May, 2018 14:53 любого moon макроса достаточно
Спасибо за уточнение! Да, конфликт с искоробочным Editor.ColorWord.moon я как-то проглядел.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by John Doe »

HaRT wrote: Tue 22 May, 2018 15:10конфликт
Не конфликт, а просто баг.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

zg wrote: Tue 22 May, 2018 14:53 любого moon макроса достаточно
Извините, не писал на moon и не пробовал, расширение попало случайно.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LuaComplete — завершение слов макроса на LUA

Post by HaRT »

buniak_a_h wrote: Tue 22 May, 2018 18:20 расширение попало случайно
При чём тут это? Вылезает-то ошибка в обычных файлах .lua.
В .moon-файлах скрипт будет несомненно полезен, поскольку luacheck их поддерживает и символы там те же (возможно, кроме некоторых ключевых слов, но это мелочи).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by John Doe »

@buniak_a_h
Вам же указали в чём проблема: в Lua ключом таблицы может быть что угодно, и ваш скрипт этого не учитывает.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

HaRT wrote: Tue 22 May, 2018 18:22 При чём тут это? Вылезает-то ошибка в обычных файлах .lua.
Я поместил упомянутый ColorWord.moon в подкаталог %FARPROFILE%\Macros\scripts\Bax.Test. На пустой строке вызываю этот скрипт. Работает. ЧЯДНТ?
John Doe wrote: Tue 22 May, 2018 18:43 в Lua ключом таблицы может быть что угодно, и ваш скрипт этого не учитывает
Да, я не знал. Думал, индекс - либо "регулярный" (порядковый номер), либо строка.
Ладно, всё равно переделываю... Поиск по _G.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by zg »

buniak_a_h wrote: Tue 22 May, 2018 18:55Я поместил упомянутый ColorWord.moon в подкаталог %FARPROFILE%\Macros\scripts\Bax.Test. На пустой строке вызываю этот скрипт. Работает. ЧЯДНТ?
макросы не перегрузили?не влияет он, надо что-то посложнее.
или вот такой код в комстроке: lua:_G.test={[{}]='aaa'}
Last edited by zg on Tue 22 May, 2018 19:43, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

zg wrote: Tue 22 May, 2018 19:32 макросы не перегрузили?
Перегрузил, есессно. И проверил - одинаковые слова по F5 раскрашиваются
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

LuaComplete — завершение слов макроса на LUA

Post by HaRT »

zg wrote: Tue 22 May, 2018 19:32макросы не перегрузили?
А вот я как раз тогда между проверками только перегружал макросы, т.ч., вероятно, получил наведённый эффект.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

Выложена третья версия.
1. Исправлен баг
HaRT wrote: Tue 22 May, 2018 14:09 Попытался воспользоваться скриптом (версия 2 от 19 мая) — сразу получил ошибку
2. При неудаче поиска предлагается регистронезависимый поиск (для склеротиков типа меня)
3. При неудаче и такого поиска (а также по отдельной кнопке) предлагается поиск одного слова (для совсем уж таких, как я). Мне это было, например, полезно при поиске элементов в "похожих" таблицах типа APanel, Panel и panel.
HaRT wrote: Sat 19 May, 2018 01:16 Надеюсь, в коде скрипта легко подправить кнопки под себя.
4. Сделана настройка кнопок. Без интерфейса - редактированием настроечного файла. Пример файла - в архиве
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

LuaComplete — завершение слов макроса на LUA

Post by citRiks »

Добрались руки посмотреть этот замечательный скрипт
Мне концептуально он нравится больше чем MacroComplete,
например тем что понимает что стоим на таблице и дает ее элементы.
Понаслаждался подсказками флагов и прочих фаровских обьектов типа Panel, Menu итд.

А проблема единственная в том что очень медленный, подсказок надо ждать по минуте
Интересно почему так медленно, и может вылечите?
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

citRiks wrote: Sat 01 Aug, 2020 16:34 очень медленный, подсказок надо ждать по минуте
У меня показывается сразу. Если я правильно понял, о чем речь."Подсказка"это список полей таблицы или описание функциии?
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

citRiks!
1. Действительно очень сильно устаревший скрипт. Правда, изменения не должны влиять на скорость.
2. Скрипт писался, когда я ещё не знал про операцию next. Ну и порочная идея: Составляю полный список (это же только один раз!), и затем ищу в нём. Я давно собирался переделать, просто не видел смысла, т.к. не видел интереса к скрипту (с 18-го года ни одного сообщения в теме).
3. У меня сделано взаимодействие со скриптом Active-Help; выглядит это так: по Ctrl-F1 на элементе таблицы выводится соответствующая тема из chm-файлов папки %FARHOME%\Encyclopedia (из комплекта поставки). При правильной настройке Active-Help очень удобно!
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

LuaComplete — завершение слов макроса на LUA

Post by citRiks »

buniak_a_h wrote: Sat 01 Aug, 2020 17:37
citRiks wrote: Sat 01 Aug, 2020 16:34 очень медленный, подсказок надо ждать по минуте
У меня показывается сразу. Если я правильно понял, о чем речь.
Хммм, у меня вот совсем-совсем не сразу.
Пробовал все хоткеи, все тормозят от полминуты до минуты.
Комп не самый сильный конечно, но ничем другим не загружен,
поэтому думаю быть причиной тормозов именно в этом не должен
Intel Core i5-2410M CPU @ 2.30GHz, 2301 Mhz, 2 Cores, 4 Logical Processors, 12GB RAM, SSD disks
"Подсказка"это список полей таблицы или описание функциии?
наверное список полей таблицы, флагов например, но и на меньших обьектах (Panel, Menu, etc) - то же самое.
image.png
image.png (4.96 KiB) Viewed 1115 times
Это я написал Panel.<CtrlShiftSpace>, например, скрипт думал полминуты
Last edited by citRiks on Sat 01 Aug, 2020 20:38, edited 2 times in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

Думаю, проблема та же, из-за которой у Вас не работает панельный модуль просмотра таблиц. Возможно, какой-то скрипт/плагин пишет очень много в _G (причём, на большую глубину). В результате этот скрипт тормозит, а TablePanel так долго анализирует, что просто не работает.
У меня есть ещё TableBrowser.lua (если интересует, выложу в личку. Аналог tableview.lua, но (а) с возможностью выполнения функций; (б) с фильтрацией и (в) ассоциирован всё с тем же Active-Help; но без удаления. Я им пользуюсь очень часто)
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

LuaComplete — завершение слов макроса на LUA

Post by buniak_a_h »

citRiks wrote: Sat 01 Aug, 2020 16:34 А проблема единственная в том что очень медленный, подсказок надо ждать по минуте
Я на всякий случай выложил мою версию скрипта. Там из анализа исключается какая-то здоровенная таблица типа package.loaded. Попробуйте. Хотя для меня это уже пройденный этап. Сейчас мой (неоконченный) скрипт понимает не только глобальные таблицы, но и локальные (кроме require)!. Чувствую, следующий шаг - список локальных переменных (и upvalue). И тогда это будет напоминать «взрослую» среду разработки :-)
Post Reply

Return to “Обсуждение макросов”