Page 7 of 14

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

Posted: Tue 16 Jun, 2015 12:36
by John Doe
Luacheck это статический анализатор для Lua.
Luacheck может обнаруживать разнообразные проблемы, такие как использование неопределённых глобальных переменных, неиспользованные переменные и значения, доступ к неинициализированным переменным, недостижимый код и многое другое.

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

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

Требования:
  • FAR 3 не старше b5106
  • luacheck не ниже v0.19

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

Posted: Tue 22 May, 2018 15:18
by John Doe

Latest post of the previous page:

HaRT wrote: Tue 22 May, 2018 15:05 Тогда это очень ценный побочный эффект
Посмотрел, всё-таки не побочный эффект.
В разделе @EditorMore сказано
...чтобы синхронизировать позицию редактора с текущим предупреждением можно
воспользоваться #Ctrl-Enter#...
А в коде к этому добавлены ещё и клавиши CtrlPgDn CtrlNum3 Ctrl3
HaRT wrote: Tue 22 May, 2018 15:05 в плане вызова из редактора ничего не изменилось — ни из списка предупреждений, ни из окна об их отсутствии.
Ну тогда пробуйте luacheck_editor.lua

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

Posted: Tue 22 May, 2018 17:14
by HaRT
John Doe wrote: Tue 22 May, 2018 15:18 А в коде к этому добавлены ещё и клавиши CtrlPgDn CtrlNum3 Ctrl3
Я за то, что бы включить их и в справку. Хотя лично мне было бы удобнее, чтобы CtrlPgDn был указан непосредственно рядом с CtrlPgUp. Но вам как автору решать.
John Doe wrote: Tue 22 May, 2018 15:18 Ну тогда пробуйте luacheck_editor.lua
Я только сейчас догадался поискать конфликты с другими скриптами — и вуаля: если кроме скриптов LuaCheck оставить только BufferScroll.lua и BufferScroll.ru.hlf (0.6.1), то проблемы с открытием Справки воспроизводятся; если BufferScroll.ru.hlf убрать, то оба случая чинятся. Очевидно, в обоих случаях происходит попытка открыть тот файл (в нём и впрямь нет секции @Editor).

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

Posted: Wed 23 May, 2018 07:28
by John Doe
Определённо у меня оба скрипта присутствуют, без всяких проблем.
Завтра ещё раз в код гляну.

Update
Да, проблема с ошибочным выбором файла справки возможна, в случае если в одной папке с Luacheck находятся другие файлы справки (от BufferScroll, или что угодно).
Т.е. для корректной работы справки пакет необходимо разместить в отдельной папке.

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

Posted: Wed 23 May, 2018 11:14
by HaRT
John Doe wrote: Wed 23 May, 2018 07:28 проблема с ошибочным выбором файла справки возможна, в случае если в одной папке с Luacheck находятся другие файлы справки
На мой взгляд, это бага. Почему бы скрипту не указывать явно, какой файл справки открыть?

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

Posted: Wed 23 May, 2018 11:21
by John Doe
HaRT wrote: Wed 23 May, 2018 11:14 На мой взгляд, это бага.
Не бага, а фича, средство локализации.
В данном случае у нас только файл одного языка, но если добавить другой, то он подхватится автоматически, согласно текущим настройкам фара.

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

Posted: Wed 23 May, 2018 11:32
by HaRT
John Doe wrote: Wed 23 May, 2018 11:21 фича, средство локализации
В топку такие средства, из-за которых в распространённой ситуации не работает штатная функциональность скрипта. Вон, Calendar by dimfish формирует имя файла справки с учётом языка самостоятельно — и всё работает ожидаемо. Впрочем, не вижу смысла продолжать эту дискуссию.

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

Posted: Wed 23 May, 2018 11:42
by John Doe
HaRT wrote: Wed 23 May, 2018 11:32 Впрочем, не вижу смысла продолжать эту дискуссию.
Напрасно, давайте подискутируем.
HaRT wrote: Wed 23 May, 2018 11:32 В топку такие средства
Это штатная возможность, предоставляемая far api.
HaRT wrote: Wed 23 May, 2018 11:32 Вон, Calendar by dimfish формирует имя файла справки с учётом языка самостоятельно — и всё работает ожидаемо.
Если не "ссыпать" все скрипты в одну кучу, то всё тоже будет работать ожидаемо.
С плагинами ровно та же история, попробуйте.

Да, я мог бы формировать имя файла и сам, но ради чего?

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

Posted: Wed 23 May, 2018 11:53
by HaRT
John Doe wrote: Wed 23 May, 2018 11:42 штатная возможность, предоставляемая far api
Да, я уже посмотрел. Но это не означает, что в ней нет концептуальных или технических ошибок.
John Doe wrote: Wed 23 May, 2018 11:42ради чего?
Чтобы не навязывать пользователям способ организации файлов на их машине.

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

Posted: Wed 23 May, 2018 14:09
by HaRT
John Doe wrote: Wed 23 May, 2018 11:42 давайте подискутируем
Только конструктивно.

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

Posted: Thu 07 Nov, 2019 12:46
by John Doe
v1.4.2-far5498.lm712
  • Улучшена справка
  • far_standards.lua.cfg актуализирован
  • Экспериментальная опция allow_G (не документирована), позволяет скрывать предупреждения о необъявленных переменных, если они уже присутствуют в текущем окружении.
    Примечание: вместо этой опции рекомендуется добавлять необходимые идентификаторы в конфиг: viewtopic.php?p=146799#p146799
С этой версии использование оставленных для совместимости _G.unicode и utf8.cfind будет отображаться ошибкой.
Рекомендуется исправить скрипты.

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

Posted: Thu 07 Nov, 2019 22:32
by buniak_a_h
Задал по рекомендации Shmuel
package.nounload = true
получил репорт:
setting undefined field 'nounload.ljsqlite3' of global 'package'

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

Posted: Fri 08 Nov, 2019 14:22
by citRiks
John Doe,
Запускаю из панели luacheck:name.lua и получаю ошибку:
luacheck commandline

lua interpreter not found: luajit.exe
Но готового luajit.exe не нашёл. Что посоветуете?

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

Posted: Fri 08 Nov, 2019 15:35
by skipik

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

Posted: Fri 08 Nov, 2019 16:35
by citRiks
skipik, Вот спасибо! А нет ли ещё и x32-разрядности?

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

Posted: Fri 08 Nov, 2019 16:45
by skipik
citRiks, обновил пост выше. ;-)

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

Posted: Fri 08 Nov, 2019 16:56
by HaRT
Спасибо. А какая это конкретно версия LuaJit и какой версией компилятора собрана?