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

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

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

Post by John Doe » Tue 16 Jun, 2015 12:36

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

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

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

Требования:
  • FAR 3 не старше b5106
  • luacheck не ниже v0.19
Attachments
luaсheck_far_v1.4.3.7z
far5505.lm712
(23.38 KiB) Downloaded 12 times
Last edited by John Doe on Sat 09 Nov, 2019 16:08, edited 3 times in total.

User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

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

Post by John Doe » Tue 22 May, 2018 15:18

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: 9088
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 158 times

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

Post by HaRT » Tue 22 May, 2018 17:14

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: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

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

Post by John Doe » Wed 23 May, 2018 07:28

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

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

User avatar
HaRT
Moderator
Posts: 9088
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 158 times

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

Post by HaRT » Wed 23 May, 2018 11:14

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

User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

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

Post by John Doe » Wed 23 May, 2018 11:21

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

User avatar
HaRT
Moderator
Posts: 9088
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 158 times

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

Post by HaRT » Wed 23 May, 2018 11:32

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

User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

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

Post by John Doe » Wed 23 May, 2018 11:42

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: 9088
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 158 times

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

Post by HaRT » Wed 23 May, 2018 11:53

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: 9088
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 158 times

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

Post by HaRT » Wed 23 May, 2018 14:09

John Doe wrote:
Wed 23 May, 2018 11:42
давайте подискутируем
Только конструктивно.
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

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

Post by John Doe » Thu 07 Nov, 2019 12:46

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.

buniak_a_h
Posts: 1100
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 82 times
Been thanked: 36 times
Contact:

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

Post by buniak_a_h » Thu 07 Nov, 2019 22:32

Задал по рекомендации Shmuel
package.nounload = true
получил репорт:
setting undefined field 'nounload.ljsqlite3' of global 'package'

citRiks
Posts: 46
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 5 times

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

Post by citRiks » Fri 08 Nov, 2019 14:22

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

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

skipik
Posts: 151
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 18 times
Been thanked: 15 times

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

Post by skipik » Fri 08 Nov, 2019 15:35

Last edited by skipik on Fri 08 Nov, 2019 16:44, edited 1 time in total.

citRiks
Posts: 46
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 5 times

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

Post by citRiks » Fri 08 Nov, 2019 16:35

skipik, Вот спасибо! А нет ли ещё и x32-разрядности?

skipik
Posts: 151
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 18 times
Been thanked: 15 times

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

Post by skipik » Fri 08 Nov, 2019 16:45

citRiks, обновил пост выше. ;-)

User avatar
HaRT
Moderator
Posts: 9088
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 158 times

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

Post by HaRT » Fri 08 Nov, 2019 16:56

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

User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 times

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

Post by John Doe » Fri 08 Nov, 2019 17:48

готового luajit.exe не нашёл. Что посоветуете?
А в справке не указано? Был в репозитории фара, кажется.
Last edited by John Doe on Fri 08 Nov, 2019 18:25, edited 1 time in total.

Post Reply

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