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

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 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 94 times
luaсheck_far_v1.4.3.7z
far5505.lm712
(23.38 KiB) Downloaded 343 times
Last edited by John Doe on Sat 09 Nov, 2019 16:08, edited 3 times in total.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post 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
Last edited by John Doe on Tue 22 May, 2018 18:39, edited 1 time in total.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post 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).
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Определённо у меня оба скрипта присутствуют, без всяких проблем.
Завтра ещё раз в код гляну.

Update
Да, проблема с ошибочным выбором файла справки возможна, в случае если в одной папке с Luacheck находятся другие файлы справки (от BufferScroll, или что угодно).
Т.е. для корректной работы справки пакет необходимо разместить в отдельной папке.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote: Wed 23 May, 2018 07:28 проблема с ошибочным выбором файла справки возможна, в случае если в одной папке с Luacheck находятся другие файлы справки
На мой взгляд, это бага. Почему бы скрипту не указывать явно, какой файл справки открыть?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

HaRT wrote: Wed 23 May, 2018 11:14 На мой взгляд, это бага.
Не бага, а фича, средство локализации.
В данном случае у нас только файл одного языка, но если добавить другой, то он подхватится автоматически, согласно текущим настройкам фара.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote: Wed 23 May, 2018 11:21 фича, средство локализации
В топку такие средства, из-за которых в распространённой ситуации не работает штатная функциональность скрипта. Вон, Calendar by dimfish формирует имя файла справки с учётом языка самостоятельно — и всё работает ожидаемо. Впрочем, не вижу смысла продолжать эту дискуссию.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post 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 формирует имя файла справки с учётом языка самостоятельно — и всё работает ожидаемо.
Если не "ссыпать" все скрипты в одну кучу, то всё тоже будет работать ожидаемо.
С плагинами ровно та же история, попробуйте.

Да, я мог бы формировать имя файла и сам, но ради чего?
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote: Wed 23 May, 2018 11:42 штатная возможность, предоставляемая far api
Да, я уже посмотрел. Но это не означает, что в ней нет концептуальных или технических ошибок.
John Doe wrote: Wed 23 May, 2018 11:42ради чего?
Чтобы не навязывать пользователям способ организации файлов на их машине.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

John Doe wrote: Wed 23 May, 2018 11:42 давайте подискутируем
Только конструктивно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 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: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

Спасибо. А какая это конкретно версия LuaJit и какой версией компилятора собрана?
Фар есть инструмент, а не нянька. © 2009 DrKnS
Post Reply

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