mirror of
https://github.com/neovim/neovim.git
synced 2024-12-29 14:41:06 -07:00
7c94bcd2d7
Problem: Nvim has Lua but the "nvim" CLI can't easily be used to execute Lua scripts, especially scripts that take arguments or produce output. Solution: - support "nvim -l [args...]" for running scripts. closes #15749 - exit without +q - remove lua2dox_filter - remove Doxyfile. This wasn't used anyway, because the doxygen config is inlined in gen_vimdoc.py (`Doxyfile` variable). - use "nvim -l" in docs-gen CI job Examples: $ nvim -l scripts/lua2dox.lua --help Lua2DoX (0.2 20130128) ... $ echo "print(vim.inspect(_G.arg))" | nvim -l - --arg1 --arg2 $ echo 'print(vim.inspect(vim.api.nvim_buf_get_text(1,0,0,-1,-1,{})))' | nvim +"put ='text'" -l - TODO? -e executes Lua code -l loads a module -i enters REPL _after running the other arguments_.
35 lines
651 B
Lua
35 lines
651 B
Lua
-- Test "nvim -l foo.lua …"
|
|
|
|
local function printbufs()
|
|
local bufs = ''
|
|
for _, v in ipairs(vim.api.nvim_list_bufs()) do
|
|
local b = vim.fn.bufname(v)
|
|
if b:len() > 0 then
|
|
bufs = ('%s %s'):format(bufs, b)
|
|
end
|
|
end
|
|
print(('bufs:%s'):format(bufs))
|
|
end
|
|
|
|
local function parseargs(args)
|
|
local exitcode = nil
|
|
for i = 1, #args do
|
|
if args[i] == '--exitcode' then
|
|
exitcode = tonumber(args[i + 1])
|
|
end
|
|
end
|
|
return exitcode
|
|
end
|
|
|
|
local function main()
|
|
printbufs()
|
|
print('args:', vim.inspect(_G.arg))
|
|
|
|
local exitcode = parseargs(_G.arg)
|
|
if type(exitcode) == 'number' then
|
|
os.exit(exitcode)
|
|
end
|
|
end
|
|
|
|
main()
|