my-nvim-lua/lua/spike/utils/nvterm.lua
2023-03-18 01:44:10 +01:00

38 lines
840 B
Lua

local ok, terminal = pcall(require, 'nvterm.terminal')
if not ok then
vim.notify("missing module nvterm.terminal", vim.log.levels.WARN)
return
end
local M = {}
M.last_cmds = {}
---run cmd using builtin terminal
---@alias mode "vertical" | "horizontal" | "float"
---@param input string command to be run in term
---@param opts? { mode: mode } options
M.run_cmd = function(input, opts)
opts = opts or { mode = "vertical" }
if input then
table.insert(M.last_cmds, 1, input)
terminal.send(input, opts.mode)
return
end
vim.ui.input({ prompt = "float term cmd:> "}, function(linput)
table.insert(M.last_cmds, 1, linput)
terminal.send(linput, opts.mode)
end)
end
M.rerun_last_cmd = function()
if #M.last_cmds > 0 then terminal.send(M.last_cmds[1]) end
end
return M