diff --git a/.github/workflows/luacheck.yml b/.github/workflows/luacheck.yml new file mode 100644 index 0000000..6d3d3fe --- /dev/null +++ b/.github/workflows/luacheck.yml @@ -0,0 +1,20 @@ +name: Linting and style checking + +on: [push, pull_request] + +jobs: + luacheck: + name: Luacheck + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + + - name: Prepare + run: | + sudo apt-get update + sudo add-apt-repository universe + sudo apt install luarocks -y + sudo luarocks install luacheck + + - name: Run Luacheck + run: sudo ./scripts/style-check.sh diff --git a/.luacheckrc b/.luacheckrc new file mode 100644 index 0000000..f3a360e --- /dev/null +++ b/.luacheckrc @@ -0,0 +1,17 @@ +-- Rerun tests only if their modification time changed. +cache = true + +-- Glorious list of warnings: https://luacheck.readthedocs.io/en/stable/warnings.html +ignore = { + "212", -- Unused argument, In the case of callback function, _arg_name is easier to understand than _, so this option is set to off. + "411", -- Redefining a local variable. + "412", -- Redefining an argument. + "422", -- Shadowing an argument + "431", -- Shadowing a variable + "122" -- Indirectly setting a readonly global +} + +-- Global objects defined by the C code +read_globals = { + "vim", +} diff --git a/scripts/style-check.sh b/scripts/style-check.sh new file mode 100755 index 0000000..181ab45 --- /dev/null +++ b/scripts/style-check.sh @@ -0,0 +1,3 @@ +#!/usr/bin/env bash + +luacheck `find -name "*.lua"` --codes