diff --git a/lua/opencode/ui/output_window.lua b/lua/opencode/ui/output_window.lua index dbceb3cd..cef27422 100644 --- a/lua/opencode/ui/output_window.lua +++ b/lua/opencode/ui/output_window.lua @@ -79,6 +79,8 @@ end ---@return integer function M.create_buf() local output_buf = vim.api.nvim_create_buf(false, true) + local filetype = config.ui.output.filetype or 'opencode_output' + vim.api.nvim_set_option_value('filetype', filetype, { buf = output_buf }) state.ui.set_output_folds(build_fold_state({})) diff --git a/lua/opencode/ui/ui.lua b/lua/opencode/ui/ui.lua index ea96e60d..4ede7e9b 100644 --- a/lua/opencode/ui/ui.lua +++ b/lua/opencode/ui/ui.lua @@ -454,12 +454,6 @@ function M.create_windows() windows.input_win = win_ids.input_win windows.output_win = win_ids.output_win windows.tab_strip_win = win_ids.tab_strip_win - - local filetype = config.ui.output.filetype or 'opencode_output' - vim.api.nvim_win_call(windows.output_win, function() - vim.api.nvim_set_option_value('filetype', filetype, { buf = windows.output_buf }) - end) - windows.saved_width_ratio = state.last_window_width_ratio input_window.setup(windows) diff --git a/tests/unit/output_window_spec.lua b/tests/unit/output_window_spec.lua index e3917529..741d15c6 100644 --- a/tests/unit/output_window_spec.lua +++ b/tests/unit/output_window_spec.lua @@ -17,32 +17,26 @@ local function parse_fillchars(value) return result end -describe('ui.create_windows output filetype', function() - local ui = require('opencode.ui.ui') +describe('output_window.create_buf', function() local original_config - local windows before_each(function() original_config = vim.deepcopy(config.values) config.values = vim.deepcopy(config.defaults) - state.ui.set_windows(nil) end) after_each(function() - if windows then - pcall(ui.close_windows, windows, false) - windows = nil - end - state.ui.set_windows(nil) config.values = original_config end) it('uses default output filetype', function() config.setup({}) - windows = ui.create_windows() + local buf = output_window.create_buf() - local filetype = vim.api.nvim_get_option_value('filetype', { buf = windows.output_buf }) + local filetype = vim.api.nvim_get_option_value('filetype', { buf = buf }) assert.equals('opencode_output', filetype) + + pcall(vim.api.nvim_buf_delete, buf, { force = true }) end) it('uses configured output filetype', function() @@ -54,10 +48,12 @@ describe('ui.create_windows output filetype', function() }, }) - windows = ui.create_windows() - local filetype = vim.api.nvim_get_option_value('filetype', { buf = windows.output_buf }) + local buf = output_window.create_buf() + local filetype = vim.api.nvim_get_option_value('filetype', { buf = buf }) assert.equals('markdown', filetype) + + pcall(vim.api.nvim_buf_delete, buf, { force = true }) end) end)