diff --git a/lua/runner/handlers/helpers.lua b/lua/runner/handlers/helpers.lua index e9eef0f..fcfa018 100644 --- a/lua/runner/handlers/helpers.lua +++ b/lua/runner/handlers/helpers.lua @@ -14,13 +14,12 @@ M.shell_handler = function(command, editable) if editable == nil then editable = false end - return function(code_buffer) + return function(_) if editable then command = vim.fn.input('Command: ', command) end - 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() local output_window = utils.create_window() vim.api.nvim_win_set_buf(output_window, output_buffer) diff --git a/lua/runner/handlers/utils.lua b/lua/runner/handlers/utils.lua index af4a70e..f4a4be8 100644 --- a/lua/runner/handlers/utils.lua +++ b/lua/runner/handlers/utils.lua @@ -3,16 +3,12 @@ local M = {} M._buffer = nil M._window = nil -M.create_buffer = function(name) - if M._buffer and vim.api.nvim_buf_is_valid(M._buffer) then - vim.api.nvim_buf_set_option(M._buffer, 'modifiable', true) - vim.api.nvim_buf_set_lines(M._buffer, 0, -1, false, {}) - vim.api.nvim_buf_set_option(M._buffer, 'modifiable', false) - return M._buffer +M.create_buffer = function() + if M._buffer then + vim.api.nvim_buf_delete(M._buffer, {}) end local buffer = vim.api.nvim_create_buf(true, true) - vim.api.nvim_buf_set_name(buffer, name) vim.api.nvim_buf_set_option(buffer, 'modifiable', false) M._buffer = buffer @@ -20,9 +16,11 @@ M.create_buffer = function(name) end M.create_window = function() - if M._window and vim.api.nvim_win_is_valid(M._window) and vim.api.nvim_win_get_buf(M._window) == M._buffer then + if M._window and vim.api.nvim_win_is_valid(M._window) then + vim.api.nvim_set_current_win(M._window) return M._window end + vim.cmd [[ vsplit ]] local window = vim.api.nvim_get_current_win()