mirror of
https://github.com/kristoferssolo/runner.nvim.git
synced 2025-10-21 19:50:34 +00:00
Use terminal buffer instead of normal buffer
This commit is contained in:
parent
064847ec11
commit
cffa48e7a2
@ -20,36 +20,13 @@ M.shell_handler = function(command, editable)
|
|||||||
end
|
end
|
||||||
|
|
||||||
local current_buffer_name = vim.api.nvim_buf_get_name(code_buffer)
|
local current_buffer_name = vim.api.nvim_buf_get_name(code_buffer)
|
||||||
|
|
||||||
local output_buffer = utils.create_buffer('OUTPUT - ' .. current_buffer_name)
|
local output_buffer = utils.create_buffer('OUTPUT - ' .. current_buffer_name)
|
||||||
vim.api.nvim_create_autocmd('BufHidden', {
|
|
||||||
buffer = output_buffer,
|
|
||||||
callback = function()
|
|
||||||
vim.schedule(function()
|
|
||||||
vim.api.nvim_buf_delete(output_buffer, {})
|
|
||||||
vim.fn.jobstop(M._job_id)
|
|
||||||
M._job_id = nil
|
|
||||||
print('Terminated running process')
|
|
||||||
end)
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
||||||
local output_window = utils.create_window()
|
local output_window = utils.create_window()
|
||||||
|
|
||||||
vim.api.nvim_win_set_buf(output_window, output_buffer)
|
vim.api.nvim_win_set_buf(output_window, output_buffer)
|
||||||
|
|
||||||
local add_line = utils.create_add_line(output_buffer)
|
vim.fn.termopen(command, {
|
||||||
|
cwd = vim.fn.getcwd()
|
||||||
if M._job_id then
|
|
||||||
vim.fn.jobstop(M._job_id)
|
|
||||||
M._job_id = nil
|
|
||||||
end
|
|
||||||
|
|
||||||
M._job_id = vim.fn.jobstart(command, {
|
|
||||||
pty = true,
|
|
||||||
cwd = vim.fn.getcwd(),
|
|
||||||
on_stdout = add_line,
|
|
||||||
on_stderr = add_line
|
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
@ -1,5 +1,3 @@
|
|||||||
local baleia = require('baleia').setup {}
|
|
||||||
|
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
M._buffer = nil
|
M._buffer = nil
|
||||||
@ -47,21 +45,6 @@ M.create_window = function()
|
|||||||
return window
|
return window
|
||||||
end
|
end
|
||||||
|
|
||||||
M.create_add_line = function(buffer)
|
|
||||||
return function(_, data)
|
|
||||||
vim.api.nvim_buf_set_option(buffer, 'modifiable', true)
|
|
||||||
local row = vim.api.nvim_buf_line_count(buffer) - 1
|
|
||||||
local col = vim.fn.len(vim.api.nvim_buf_get_lines(buffer, -2, -1, false)[1])
|
|
||||||
baleia.buf_set_text(buffer, row, col, row, col, vim.tbl_map(
|
|
||||||
function(d)
|
|
||||||
return vim.fn.trim(d, ('\x0D'))
|
|
||||||
end,
|
|
||||||
data
|
|
||||||
))
|
|
||||||
vim.api.nvim_buf_set_option(buffer, 'modifiable', false)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
M.run_command = function(command, callback)
|
M.run_command = function(command, callback)
|
||||||
local output = {}
|
local output = {}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user