Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Tue 16 Jun, 2015 12:36
by John Doe
Luacheck это статический анализатор для Lua. Luacheck может обнаруживать разнообразные проблемы, такие как использование неопределённых глобальных переменных, неиспользованные переменные и значения, доступ к неинициализированным переменным, недостижимый код и многое другое.
А для удобной работы с luacheck в фаре предлагаю данный пакет скриптов, обеспечивающий работу Luacheck в редакторе и в командной строке.
Кроме того, в редакторе для Luacheck обеспечивается прозрачная "трансляция" MoonScript, что позволяет анализировать и *.moon-файлы.
Инструкции по установке, настройке, и работе — во встроенной справке.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Sat 25 Apr, 2020 07:33
by Shmuel
Latest post of the previous page:
На случай, если об этом ещё не сообщалось:
Версия библиотеки 0.23.0 правильно определяет номера колонок при формировании строки ошибки, с учётом UTF-8. Более ранние версии дают смещение в байтах.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Sat 25 Apr, 2020 07:41
by John Doe
Shmuel wrote: ↑Sat 25 Apr, 2020 07:33
Версия библиотеки 0.23.0 правильно определяет номера
Это проверено в фаре?
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Sat 25 Apr, 2020 07:46
by Shmuel
John Doe wrote: ↑Sat 25 Apr, 2020 07:41
Это проверено в фаре?
Да.
Установка библиотеки чуть сложнее:
1. argparse.lua должен быть установлен отдельно (и не в папке luacheck).
2. Нужно также установить LuaFileSystem (lfs) - возможно для Фара это не обязательно, не проверял.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Sun 10 May, 2020 22:44
by HaRT
При вызове LuaCheck (v1.4.3 с luacheck 0.23) в редакторе на скрипте picture.lua получаю
╔════════════════════════════════════════════════════════════════════ LuaMacro ═════════════════════════════════════════════════════════════════════╗
║ (error object is not a string) ║
║ stack traceback: ║
║ [C]: in function 'error' ║
║ ...ng\Far Manager\Profile\Macros\modules\luacheck\check.lua:62: in function 'get_report' ║
║ ...ing\Far Manager\Profile\Macros\modules\luacheck\init.lua:95: in function 'check_strings' ║
║ ...ager\Profile\Macros\scripts\LuaCheck\luacheck_editor.lua:611: in function <...ager\Profile\Macros\scripts\LuaCheck\luacheck_editor.lua:566> ║
╟───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
╔════════════════════════════════════════════════════════════════════ LuaMacro ═════════════════════════════════════════════════════════════════════╗
║ (error object is not a string) ║
║ stack traceback: ║
║ [C]: in function 'error' ║
║ ...ng\Far Manager\Profile\Macros\modules\luacheck\check.lua:62: in function 'get_report' ║
║ ...ing\Far Manager\Profile\Macros\modules\luacheck\init.lua:95: in function 'check_strings' ║
║ ...ager\Profile\Macros\scripts\LuaCheck\luacheck_editor.lua:611: in function <...ager\Profile\Macros\scripts\LuaCheck\luacheck_editor.lua:566> ║
╟───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
.
У меня этой ошибки нет, есть варнинги, довольно безобидные (строки слишком длинные и т.д.).
Скрипт скачал только что, до этого у меня была более старая версия.
LuaCheck 0.23.0, Far 3.0.5596 x86.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
John Doe wrote: ↑Wed 15 Apr, 2020 08:42
Временное решение: local ConvertToAnsi = false
Shmuel, под "ошибкой" HaRT имел в виду не результат проверки своего скрипта, а ошибку самого блока проверки. Я о ней писал…
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Mon 11 May, 2020 06:55
by Shmuel
buniak_a_h wrote: ↑Mon 11 May, 2020 06:51
под "ошибкой" HaRT имел в виду не результат проверки своего скрипта, а ошибку самого блока проверки.
Не знаю, что он имел в виду, могу судить только по написанному. Я повторяю описанные действия, но не получаю указанной ошибки.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Mon 11 May, 2020 06:58
by buniak_a_h
Shmuel, а при чём тут варнинги, когда до результатов контроля дело вообще не доходит? У нас это называлось "вылет".
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Mon 11 May, 2020 08:11
by Shmuel
Важное дополнение: у меня в сабжевом скрипте ConvertToAnsi = false
buniak_a_h wrote: ↑Mon 11 May, 2020 06:58
а при чём тут варнинги, когда до результатов контроля дело вообще не доходит?
Странный вопрос, описывалось поведение, которое наблюдалось у меня, что не так?
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Mon 11 May, 2020 08:58
by buniak_a_h
Shmuel wrote: ↑Mon 11 May, 2020 08:11
Важное дополнение: у меня в сабжевом скрипте ConvertToAnsi = false
Вот Вам и ответ, почему у Вас вылет не происходит.
Shmuel wrote: ↑Mon 11 May, 2020 08:11
описывалось поведение, которое наблюдалось у меня
Это - стандартное поведение (не ошибка, даже если в протоколе проверки будет Error). А у HaRT-а как раз ошибка - не результат синтаксической проверки, а вылет в самом проверяющем скрипте.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Mon 11 May, 2020 09:11
by Shmuel
Ещё раз: описывается поведение в определённой ситуации. Что вас не устраивает в моём репорте?
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Tue 12 May, 2020 08:04
by John Doe
Никто не будет возражать если я удалю хвост обсуждения начиная с сообщения HaRT?
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Tue 12 May, 2020 08:08
by Shmuel
John Doe wrote: ↑Tue 12 May, 2020 08:04
Никто не будет возражать если я удалю хвост обсуждения начиная с сообщения HaRT?
Ok.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Tue 12 May, 2020 11:12
by buniak_a_h
John Doe, эх, благодарнос ть удалится...
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Tue 12 May, 2020 14:23
by HaRT
John Doe wrote: ↑Tue 12 May, 2020 08:04
Никто не будет возражать если я удалю хвост обсуждения начиная с сообщения HaRT?
Я возражаю против удаления своего сообщения и «принятого» ответа насчёт ConvertToAnsi = false (ответ Шмуэлю в тексте можно будет стереть). Я считаю их полезными для будущих читателей, потому что, столкнувшись с такой же проблемой, даже по обсуждению в этой теме в середине апрелянереально понять, что это та же проблема и, соответственно, что «временное» решение применимо.
Luacheck FAR scripts — статический анализатор для Lua/MoonScript
Posted: Sat 14 Nov, 2020 11:47
by buniak_a_h
В файле far_standards.lua.cfg не перечислены far.Host . Надо самим обновлять, или Вы пополните? Или есть какой-то другой способ сделать так, чтоб скрипт не ругалcя на far.Host (а также на _G.utf8)?