nvim/lua/buildcmd.lua

36 lines
966 B
Lua

local job_id, job_buffer
local function job_exit(jobId, exit_code, _)
job_id = nil
echo("Job done")
end
local function has_buffer()
return job_buffer and vim.fn.buflisted(job_buffer) == 1
end
function save_all_and_build()
if job_id then
echo ("Job processing")
return
end
local opts = {}
vim.api.nvim_exec('wa', opts)
if not has_buffer() then
job_buffer = vim.api.nvim_create_buf(true, true)
end
local job_window = vim.fn.bufwinnr(job_buffer)
if job_window ~= -1 then
vim.cmd(job_window .. ' wincmd w')
else
vim.cmd('buffer ' .. job_buffer)
end
vim.api.nvim_buf_set_option(job_buffer, 'filetype', 'build')
vim.api.nvim_buf_set_option(job_buffer, 'modified', false)
-- TODO: if I want to get fancy I can set a build string per language.
job_id = vim.fn.termopen("zig build", {on_exit = job_exit})
vim.api.nvim_buf_set_name(job_buffer, '[build]')
end