fix: neovim

This commit is contained in:
Ryan Yin
2023-07-10 22:50:19 +08:00
parent 21b3d4ad37
commit 7cc49c29f1
62 changed files with 1998 additions and 2600 deletions
+90
View File
@@ -0,0 +1,90 @@
#!/usr/bin/env lua
local arguments = {
install = true,
update = true,
clean = true,
doctor = true,
debug = true,
help = true,
modules = true,
}
local argument
if #arg == 0 then
argument = 'install'
else
if #arg > 1 and (arg[1] ~= 'debug' and arg[1] ~= 'doctor') then
error('passed multiple arguments.')
end
if not arguments[arg[1]] then
error('unknow argument ' .. arg[1])
end
argument = arg[1]
if arg[1] == 'debug' then
local modules = [[let g:disable_modules="]]
---@diagnostic disable-next-line: deprecated
for _, k in pairs({ table.unpack(arg, 2, #arg) } or {}) do
modules = modules .. ',' .. 'modules/' .. k .. '/plugins'
end
modules = modules .. '"'
os.execute("nvim --cmd '" .. modules .. "'")
return
end
end
local handle
handle = assert(io.popen([[nvim --clean --headless --cmd 'echo $VIMRUNTIME|q' 2>&1]], 'r'))
if not handle then
return
end
local rtp = handle:read('*a')
handle:close()
-- read config path
handle = assert(io.popen([[nvim --clean --headless --cmd 'echo stdpath("config")|q' 2>&1]], 'r'))
local config_path = handle:read('*a')
handle:close()
-- set the poackage path
package.path = package.path .. ';' .. rtp .. '/lua/vim/?.lua;' .. config_path .. '/lua/?.lua'
if argument == 'help' then
local helper = require('core.helper')
helper.green('Dope usage')
local usage = {
{ '\tinstall', ' install Plugins' },
{ '\tupdate ', ' update Plugins' },
{ '\tclean ', ' clean the directories' },
{ '\tdoctor ', ' check the plugins info' },
{ '\tmodules', ' Show all modules' },
{ '\tdebug ', ' dynamic disable modules for debug' },
{ '\thelp ', ' show the usage of bot' },
}
for _, msg in pairs(usage) do
helper.write('blue')(msg[1])
helper.write('white')(msg[2])
print()
end
os.exit()
end
-- read data path
handle = assert(io.popen([[nvim --clean --headless --cmd 'echo stdpath("data")|q' 2>&1]], 'r'))
local data_path = handle:read('*a')
handle:close()
local cli = require('core.cli')
cli.rtp = rtp
cli.config_path = config_path
cli.data_path = data_path
-- env init
cli:env_init()
cli:meta(argument)(table.unpack(arg, 2))