27 lines
689 B
Lua
27 lines
689 B
Lua
local M = {}
|
|
|
|
-- Open a command in a simple centered floating window
|
|
function M.open_terminal_app(cmd)
|
|
local buf = vim.api.nvim_create_buf(false, true)
|
|
vim.bo[buf].bufhidden = "wipe"
|
|
|
|
local lines = vim.o.lines - vim.o.cmdheight - (vim.o.laststatus > 0 and 1 or 0)
|
|
local w = math.floor(vim.o.columns * 0.95)
|
|
local h = math.floor(lines * 0.95)
|
|
|
|
local win = vim.api.nvim_open_win(buf, true, {
|
|
relative = "editor",
|
|
width = w,
|
|
height = h,
|
|
row = math.floor((lines - h) / 2),
|
|
col = math.floor((vim.o.columns - w) / 2),
|
|
border = "rounded",
|
|
})
|
|
|
|
vim.fn.termopen(cmd, {
|
|
on_exit = function() pcall(vim.api.nvim_win_close, win, true) end,
|
|
})
|
|
end
|
|
|
|
return M
|