1
0
mirror of https://github.com/SpaceVim/SpaceVim.git synced 2025-02-03 12:00:05 +08:00
SpaceVim/lua/spacevim/api/vim/window.lua

55 lines
1.1 KiB
Lua
Raw Normal View History

local M = {}
2019-10-08 22:24:03 +08:00
function M.get_cursor(window_id)
2019-10-08 22:24:03 +08:00
local winindex = vim.eval("win_id2win(" .. window_id .. ")")
local w = vim.window(winindex)
if w == nil then
vim.command("return [" .. table.concat({0, 0}, ", ") .. "]")
else
vim.command("return [" .. table.concat({w.line, w.col}, ", ") .. "]")
end
end
function M.set_cursor(window_id, pos)
2019-10-08 22:24:03 +08:00
local winindex = vim.eval("win_id2win(" .. window_id .. ")")
local w = vim.window(winindex)
2019-10-12 00:10:29 +08:00
w.line = pos[0]
w.col = pos[1]
2019-10-08 22:24:03 +08:00
end
function M.close(window_id)
2019-10-08 22:24:03 +08:00
end
-- neovim winnr('$') includes floating windows
function M.is_last_win()
local win_list = vim.api.nvim_tabpage_list_wins(0)
local num = #win_list
for _, v in ipairs(win_list) do
if M.is_float(v) then
num = num - 1
end
end
return num == 1
end
function M.is_float(winid)
2022-10-10 13:58:09 +08:00
if winid > 0 then
local ok, c = pcall(vim.api.nvim_win_get_config, winid)
if ok and c.col ~= nil then
return true
else
return false
end
else
return false
end
end
2019-10-08 22:24:03 +08:00
return M
2019-10-08 22:24:03 +08:00