mirror of
https://github.com/SpaceVim/SpaceVim.git
synced 2025-02-03 14:00:06 +08:00
67 lines
1.3 KiB
Lua
67 lines
1.3 KiB
Lua
vimutils = {}
|
|
|
|
vimutils.constant = "hello"
|
|
|
|
function table.has_key(test_table, test_key)
|
|
for key, value in pairs(test_table) do
|
|
if key == test_key then
|
|
return true
|
|
end
|
|
end
|
|
return false
|
|
end
|
|
|
|
local is_nvim = table.has_key(vim, 'api')
|
|
|
|
function vimutils.command(cmd)
|
|
if is_nvim then
|
|
vim.api.nvim_command(cmd)
|
|
else
|
|
vim.command(cmd)
|
|
end
|
|
end
|
|
|
|
|
|
function vimutils.eval(expr)
|
|
if is_nvim then
|
|
return vim.api.nvim_eval(expr)
|
|
else
|
|
return vim.eval(expr)
|
|
end
|
|
end
|
|
|
|
|
|
function vimutils.get_current_line()
|
|
if is_nvim then
|
|
return vim.api.nvim_get_current_line()
|
|
else
|
|
return vim.window().line
|
|
end
|
|
end
|
|
|
|
local buffer_metatables = {
|
|
__index = function (self, line)
|
|
return vim.api.nvim_buf_get_lines(self._bufnr, 0, -1, 0)[line]
|
|
end,
|
|
__len = function (self)
|
|
return #vim.api.nvim_buf_get_lines(self._bufnr, 0, -1, 0)
|
|
end
|
|
}
|
|
|
|
function vimutils.current_buffer()
|
|
if is_nvim then
|
|
local buffer = {}
|
|
buffer._bufnr = vim.api.nvim_get_current_buf()
|
|
setmetatable(buffer, buffer_metatables)
|
|
return buffer
|
|
else
|
|
return vim.window().buffer
|
|
end
|
|
end
|
|
|
|
function vimutils.current_linenr()
|
|
return vimutils.eval('line(".")')
|
|
end
|
|
|
|
return vimutils
|