build: enable lintlua for src/ dir #26395

Problem:
Not all Lua code is checked by stylua. Automating code-style is an
important mechanism for reducing time spent on accidental
(non-essential) complexity.

Solution:
- Enable lintlua for `src/` directory.

followup to 517f0cc634
This commit is contained in:
Justin M. Keyes
2023-12-04 13:31:57 -08:00
committed by GitHub
parent 517f0cc634
commit 45fe4d11ad
20 changed files with 3224 additions and 2978 deletions

View File

@@ -5,9 +5,9 @@ local preproc_fname = arg[4]
local lpeg = vim.lpeg
local fold = function (func, ...)
local fold = function(func, ...)
local result = nil
for _, v in ipairs({...}) do
for _, v in ipairs({ ... }) do
if result == nil then
result = v
else
@@ -17,144 +17,112 @@ local fold = function (func, ...)
return result
end
local folder = function (func)
return function (...)
local folder = function(func)
return function(...)
return fold(func, ...)
end
end
local lit = lpeg.P
local set = function(...)
return lpeg.S(fold(function (a, b) return a .. b end, ...))
return lpeg.S(fold(function(a, b)
return a .. b
end, ...))
end
local any_character = lpeg.P(1)
local rng = function(s, e) return lpeg.R(s .. e) end
local concat = folder(function (a, b) return a * b end)
local branch = folder(function (a, b) return a + b end)
local one_or_more = function(v) return v ^ 1 end
local two_or_more = function(v) return v ^ 2 end
local any_amount = function(v) return v ^ 0 end
local one_or_no = function(v) return v ^ -1 end
local rng = function(s, e)
return lpeg.R(s .. e)
end
local concat = folder(function(a, b)
return a * b
end)
local branch = folder(function(a, b)
return a + b
end)
local one_or_more = function(v)
return v ^ 1
end
local two_or_more = function(v)
return v ^ 2
end
local any_amount = function(v)
return v ^ 0
end
local one_or_no = function(v)
return v ^ -1
end
local look_behind = lpeg.B
local look_ahead = function(v) return #v end
local neg_look_ahead = function(v) return -v end
local neg_look_behind = function(v) return -look_behind(v) end
local look_ahead = function(v)
return #v
end
local neg_look_ahead = function(v)
return -v
end
local neg_look_behind = function(v)
return -look_behind(v)
end
local w = branch(
rng('a', 'z'),
rng('A', 'Z'),
lit('_')
)
local aw = branch(
w,
rng('0', '9')
)
local w = branch(rng('a', 'z'), rng('A', 'Z'), lit('_'))
local aw = branch(w, rng('0', '9'))
local s = set(' ', '\n', '\t')
local raw_word = concat(w, any_amount(aw))
local right_word = concat(
raw_word,
neg_look_ahead(aw)
)
local right_word = concat(raw_word, neg_look_ahead(aw))
local word = branch(
concat(
branch(lit('ArrayOf('), lit('DictionaryOf('), lit('Dict(')), -- typed container macro
one_or_more(any_character - lit(')')),
lit(')')
),
concat(
neg_look_behind(aw),
right_word
)
)
local inline_comment = concat(
lit('/*'),
any_amount(concat(
neg_look_ahead(lit('*/')),
any_character
)),
lit('*/')
concat(neg_look_behind(aw), right_word)
)
local inline_comment =
concat(lit('/*'), any_amount(concat(neg_look_ahead(lit('*/')), any_character)), lit('*/'))
local spaces = any_amount(branch(
s,
-- Comments are really handled by preprocessor, so the following is not needed
inline_comment,
concat(
lit('//'),
any_amount(concat(
neg_look_ahead(lit('\n')),
any_character
)),
lit('\n')
),
concat(lit('//'), any_amount(concat(neg_look_ahead(lit('\n')), any_character)), lit('\n')),
-- Linemarker inserted by preprocessor
concat(
lit('# '),
any_amount(concat(
neg_look_ahead(lit('\n')),
any_character
)),
lit('\n')
)
concat(lit('# '), any_amount(concat(neg_look_ahead(lit('\n')), any_character)), lit('\n'))
))
local typ_part = concat(
word,
any_amount(concat(
spaces,
lit('*')
)),
spaces
)
local typ_part = concat(word, any_amount(concat(spaces, lit('*'))), spaces)
local typ_id = two_or_more(typ_part)
local arg = typ_id -- argument name is swallowed by typ
local arg = typ_id -- argument name is swallowed by typ
local pattern = concat(
any_amount(branch(set(' ', '\t'), inline_comment)),
typ_id, -- return type with function name
typ_id, -- return type with function name
spaces,
lit('('),
spaces,
one_or_no(branch( -- function arguments
one_or_no(branch( -- function arguments
concat(
arg, -- first argument, does not require comma
any_amount(concat( -- following arguments, start with a comma
arg, -- first argument, does not require comma
any_amount(concat( -- following arguments, start with a comma
spaces,
lit(','),
spaces,
arg,
any_amount(concat(
lit('['),
spaces,
any_amount(aw),
spaces,
lit(']')
))
any_amount(concat(lit('['), spaces, any_amount(aw), spaces, lit(']')))
)),
one_or_no(concat(
spaces,
lit(','),
spaces,
lit('...')
))
one_or_no(concat(spaces, lit(','), spaces, lit('...')))
),
lit('void') -- also accepts just void
lit('void') -- also accepts just void
)),
spaces,
lit(')'),
any_amount(concat( -- optional attributes
any_amount(concat( -- optional attributes
spaces,
lit('FUNC_'),
any_amount(aw),
one_or_no(concat( -- attribute argument
one_or_no(concat( -- attribute argument
spaces,
lit('('),
any_amount(concat(
neg_look_ahead(lit(')')),
any_character
)),
any_amount(concat(neg_look_ahead(lit(')')), any_character)),
lit(')')
))
)),
look_ahead(concat( -- definition must be followed by "{"
look_ahead(concat( -- definition must be followed by "{"
spaces,
lit('{')
))
@@ -198,10 +166,9 @@ Additionally uses the following environment variables:
end
local preproc_f = io.open(preproc_fname)
local text = preproc_f:read("*all")
local text = preproc_f:read('*all')
preproc_f:close()
local non_static = [[
#define DEFINE_FUNC_ATTRIBUTES
#include "nvim/func_attr.h"
@@ -289,8 +256,7 @@ while init ~= nil do
declaration = declaration .. ';'
if os.getenv('NVIM_GEN_DECLARATIONS_LINE_NUMBERS') == '1' then
declaration = declaration .. (' // %s/%s:%u'):format(
curdir, curfile, declline)
declaration = declaration .. (' // %s/%s:%u'):format(curdir, curfile, declline)
end
declaration = declaration .. '\n'
if declaration:sub(1, 6) == 'static' then