mirror of
https://github.com/neovim/neovim.git
synced 2026-08-24 16:11:52 +00:00
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user