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

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

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

Post by John Doe »

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 57 times
Last edited by John Doe on Sat 09 Nov, 2019 16:08, edited 3 times in total.

buniak_a_h
Posts: 1430
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 100 times
Been thanked: 113 times
Contact:

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

Post by buniak_a_h »

Latest post of the previous page:

John Doe wrote:
Fri 18 May, 2018 08:39
вы вполне можете развивать свой скрипт, "эксплуатируя" данные LuaCheck (удобнее будет в отдельной теме).
Воспользовался Вашим советом. LuaComplete - завершение слов макроса на LUA

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

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

Post by HaRT »

1. В название файла luaсheck_far_v1.4.7z, вложенного в заглавное сообщение, вскралась кириллическая ‘с’.

2. Распаковал все файлы в папку Scripts, открыл lua-файл в редакторе, вызвал LuaCheck, в меню с сообщениями нажал F1. Файл luacheck_editor.lua лежит рядом с luacheck_far.ru.hlf, язык Справки “Russian (Русский)”. ЧЯДНТ?

3. Если нажать F1 из кратковременного серенького окошка No warnings (где, между прочим, F1 фигурирует в числе доступных клавиш), то почему-то открывается Help - BufferScroll. :shock:
Last edited by HaRT on Tue 22 May, 2018 13:25, edited 1 time in total.
Reason: Добавлен пункт 3 (про F1 --> Help - BufferScroll)
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by John Doe »

> Requested help topic not found: Editor

В редакторе откройте файл справки и поищите раздел @Editor
Если не найдёте, значит ваш файл не соответствует тому, что в шапке.

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

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

Post by HaRT »

John Doe wrote:
Tue 22 May, 2018 13:31
поищите раздел @Editor
из того же, архива, что и скрипты, раздел @Editor там, разумеется, есть. Может ли дело быть в том, что у меня язык Фара английский, а язык Справки — русский?

P.S.
4. Также неплохо бы включить в Справку описание клавиши CtrlPgDn (как возврат после CtrlPgUp).
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by John Doe »

На днях обновлю весь архив, а пока прилагаю свой luacheck_far.ru.hlf.
HaRT wrote:
Tue 22 May, 2018 13:38
Также неплохо бы включить в Справку описание клавиши CtrlPgDn (как возврат после CtrlPgUp).
А нет такой функциональности.
Вместо "возврата" следует вернуться на выбранный пункт списка, возможно при нажатии CtrlPgDn генерируется соответствующее событие, но это не более чем совпадение, справедливое и для каких-то других комбинаций.
Last edited by John Doe on Tue 22 May, 2018 15:07, edited 1 time in total.

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

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

Post by HaRT »

John Doe wrote:
Tue 22 May, 2018 14:41
На днях обновлю весь архив, а пока прилагаю свой luacheck_far.ru.hlf.
Спасибо, однако в плане вызова из редактора ничего не изменилось — ни из списка предупреждений, ни из окна об их отсутствии.
John Doe wrote:
Tue 22 May, 2018 14:41
возможно при нажатии CtrlPgDn генерируется соответствующее событие
Тогда это очень ценный побочный эффект, который надо беречь, потому что иногда нажимаешь CtrlPgUp и понимаешь, что хочется перейти всё-таки по основному месту. И вот тут непонятно, как вернуться, особенно если в списке единственный элемент.
Фар есть инструмент, а не нянька. © 2009 DrKnS

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

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

Post by John Doe »

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: 9258
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 94 times
Been thanked: 200 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: 12648
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 268 times

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

Post by John Doe »

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

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

User avatar
HaRT
Moderator
Posts: 9258
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 94 times
Been thanked: 200 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: 12648
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 268 times

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

Post by John Doe »

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

User avatar
HaRT
Moderator
Posts: 9258
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 94 times
Been thanked: 200 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: 12648
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 268 times

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: 9258
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 94 times
Been thanked: 200 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: 9258
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 94 times
Been thanked: 200 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: 12648
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 35 times
Been thanked: 268 times

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.

Post Reply

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