Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by John Doe »

Luacheck это статический анализатор для Lua.
Luacheck может обнаруживать разнообразные проблемы, такие как использование неопределённых глобальных переменных, неиспользованные переменные и значения, доступ к неинициализированным переменным, недостижимый код и многое другое.

А для удобной работы с luacheck в фаре предлагаю данный пакет скриптов, обеспечивающий работу Luacheck в редакторе и в командной строке.
Кроме того, в редакторе для Luacheck обеспечивается прозрачная "трансляция" MoonScript, что позволяет анализировать и *.moon-файлы.

Инструкции по установке, настройке, и работе — во встроенной справке.

Требования:
  • FAR 3 не старше b5106
  • luacheck не ниже v0.19
Attachments
far_standards.lua.cfg_v1.5.7z
Обновлённые определения (far 6114 / lm 772)
(8.5 KiB) Downloaded 87 times
luaсheck_far_v1.4.3.7z
far5505.lm712
(23.38 KiB) Downloaded 335 times
Last edited by John Doe on Sat 09 Nov, 2019 16:08, edited 3 times in total.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by John Doe »

Latest post of the previous page:

v1.4.2-far5498.lm712
  • Улучшена справка
  • far_standards.lua.cfg актуализирован
  • Экспериментальная опция allow_G (не документирована), позволяет скрывать предупреждения о необъявленных переменных, если они уже присутствуют в текущем окружении.
    Примечание: вместо этой опции рекомендуется добавлять необходимые идентификаторы в конфиг: viewtopic.php?p=146799#p146799
С этой версии использование оставленных для совместимости _G.unicode и utf8.cfind будет отображаться ошибкой.
Рекомендуется исправить скрипты.
Last edited by John Doe on Thu 07 Nov, 2019 12:55, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by buniak_a_h »

Задал по рекомендации Shmuel
package.nounload = true
получил репорт:
setting undefined field 'nounload.ljsqlite3' of global 'package'
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by citRiks »

John Doe,
Запускаю из панели luacheck:name.lua и получаю ошибку:
luacheck commandline

lua interpreter not found: luajit.exe
Но готового luajit.exe не нашёл. Что посоветуете?
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by skipik »

Last edited by skipik on Fri 08 Nov, 2019 16:44, edited 1 time in total.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by skipik »

citRiks, обновил пост выше. ;-)
User avatar
HaRT
Moderator
Posts: 10806
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 220 times
Been thanked: 357 times

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by HaRT »

Спасибо. А какая это конкретно версия LuaJit и какой версией компилятора собрана?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by John Doe »

готового luajit.exe не нашёл. Что посоветуете?
А в справке не указано? Был в репозитории фара, кажется.
Last edited by John Doe on Fri 08 Nov, 2019 18:25, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by John Doe »

Версия значения особого не имеет, т.к. предполагается что DLL будут подхвачены те, что используются фаром.
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by citRiks »

John Doe wrote: Fri 08 Nov, 2019 17:48
готового luajit.exe не нашёл. Что посоветуете?
А в справке не указано? Был в репозитории фара, кажется
Ссылка в справке указана. Но самое большее, что я по ней нашёл, это "No results found".
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by skipik »

HaRT wrote: Fri 08 Nov, 2019 16:56 Спасибо. А какая это конкретно версия LuaJit и какой версией компилятора собрана?
Не могу точно сказать, нашёл на пк в архивах. Но, судя по "linker version 2.27", собрано в GCC.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by John Doe »

1.4.3
- обновление списка идентификаторов в соответствии с окружением, доступным в far 5505.
- учитывается package.nounload
- коррекция ссылок в справке
- исправления в обработке необъявленных переменных
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by buniak_a_h »

Почему-то выдаётся диагностика:

Code: Select all

accessing undefined field 'BeginSelection' of global 'panel'
accessing undefined field 'EndSelection' of global 'panel'
Такие функции в таблице panel имеются. И даже описание есть. Что делать, шеф? Усё пропало!©
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by John Doe »

buniak_a_h wrote: Thu 21 Nov, 2019 22:57 Что делать, шеф?
Убедиться что версия скрипта соответствует выложенной в шапке.
User avatar
buniak_a_h
Posts: 4234
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 642 times
Contact:

Luacheck FAR scripts — статический анализатор для Lua/MoonScript

Post by buniak_a_h »

Версия ФАР начтная с 5580.
Скрипт - последний из шапки.
При проверке синтаксиса скрипт падает.
Путём вывода сообщений получено место: модуль check.lua, функция error.
Сообщение, которое туда приходит (на моём скрипте):

Code: Select all

 ...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:60: invalid UTF-8 code
 stack traceback:
 	...ng\Far Manager\Profile\Macros\modules\luacheck\utils.lua:186: in function <...ng\Far Manager\Profile\Macros\modules\luacheck\utils.lua:182>
 	[C]: in function 'token_body_or_line'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:60: in function 'skip_token'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:181: in function 'parse_id'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:359: in function 'parse_simple_expression'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:449: in function 'parse_subexpression'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:472: in function 'parse_expression'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:171: in function 'parse_expression_list'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:645: in function 'parse_statement'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:723: in function 'parse_block'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:284: in function 'parse_function'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:594: in function 'parse_statement'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:723: in function 'parse_block'
 	...g\Far Manager\Profile\Macros\modules\luacheck\parser.lua:752: in function 'parse'
 	...ng\Far Manager\Profile\Macros\modules\luacheck\check.lua:230: in function <...ng\Far Manager\Profile\Macros\modules\luacheck\check.lua:229>
 	[C]: in function 'try'
 	...ng\Far Manager\Profile\Macros\modules\luacheck\check.lua:258: in function 'get_report'
 	...ing\Far Manager\Profile\Macros\modules\luacheck\init.lua:101: in function 'check_strings'
 	...file\Macros\scripts\luacheck_scripts\luacheck_editor.lua:611: in function <...file\Macros\scripts\luacheck_scripts\luacheck_editor.lua:566>
В версии ФАР-а ранее 5580 ошибки не было. Файл - в кодировке UTF-8, набран во встроенном редакторе ФАР-а.
Совет из предыдущего Вашего сообщения не помогает.
Что делать, шеф? ©Лёлик
--
P/S. Пример проверяемого скрипта нужен? Он, кстати, рабочий!
Last edited by buniak_a_h on Tue 14 Apr, 2020 16:45, edited 1 time in total.
Post Reply

Return to “Полезные макросы и скрипты”