mirror of
https://github.com/neovim/neovim.git
synced 2026-07-26 10:42:10 +00:00
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
62 lines
1.5 KiB
Lua
62 lines
1.5 KiB
Lua
local fileio_enum_file = arg[1]
|
|
local names_file = arg[2]
|
|
|
|
local auevents = require('auevents')
|
|
local events = auevents.events
|
|
local aliases = auevents.aliases
|
|
|
|
local enum_tgt = io.open(fileio_enum_file, 'w')
|
|
local names_tgt = io.open(names_file, 'w')
|
|
|
|
enum_tgt:write([[
|
|
// IWYU pragma: private, include "nvim/autocmd_defs.h"
|
|
|
|
typedef enum auto_event {]])
|
|
names_tgt:write([[
|
|
static const struct event_name {
|
|
size_t len;
|
|
char *name;
|
|
event_T event;
|
|
} event_names[] = {]])
|
|
|
|
for i, event in ipairs(events) do
|
|
enum_tgt:write(('\n EVENT_%s = %u,'):format(event:upper(), i - 1))
|
|
names_tgt:write(('\n {%u, "%s", EVENT_%s},'):format(#event, event, event:upper()))
|
|
if i == #events then -- Last item.
|
|
enum_tgt:write(('\n NUM_EVENTS = %u,'):format(i))
|
|
end
|
|
end
|
|
|
|
for _, v in ipairs(aliases) do
|
|
local alias = v[1]
|
|
local event = v[2]
|
|
names_tgt:write(('\n {%u, "%s", EVENT_%s},'):format(#alias, alias, event:upper()))
|
|
end
|
|
|
|
names_tgt:write('\n {0, NULL, (event_T)0},')
|
|
|
|
enum_tgt:write('\n} event_T;\n')
|
|
names_tgt:write('\n};\n')
|
|
|
|
do
|
|
names_tgt:write('\nstatic AutoCmdVec autocmds[NUM_EVENTS] = {\n ')
|
|
local line_len = 1
|
|
for _ = 1, (#events - 1) do
|
|
line_len = line_len + #' KV_INITIAL_VALUE,'
|
|
if line_len > 80 then
|
|
names_tgt:write('\n ')
|
|
line_len = 1 + #' KV_INITIAL_VALUE,'
|
|
end
|
|
names_tgt:write(' KV_INITIAL_VALUE,')
|
|
end
|
|
if line_len + #' KV_INITIAL_VALUE' > 80 then
|
|
names_tgt:write('\n KV_INITIAL_VALUE')
|
|
else
|
|
names_tgt:write(' KV_INITIAL_VALUE')
|
|
end
|
|
names_tgt:write('\n};\n')
|
|
end
|
|
|
|
enum_tgt:close()
|
|
names_tgt:close()
|