From 5f892619577d201ad3b202d82b455aa20aa81476 Mon Sep 17 00:00:00 2001 From: geemus Date: Fri, 29 Aug 2025 08:40:48 -0500 Subject: [PATCH 1/2] add split/vsplit modes to allow more control over output --- lua/model/core/provider.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lua/model/core/provider.lua b/lua/model/core/provider.lua index 4cfadd7..fd692c3 100644 --- a/lua/model/core/provider.lua +++ b/lua/model/core/provider.lua @@ -27,6 +27,8 @@ M.mode = { BUFFER = 'buffer', -- create a new buffer and insert INSERT = 'insert', -- insert at the cursor position INSERT_OR_REPLACE = 'insert_or_replace', -- insert at the cursor position if no selection, or replace the selection + SPLIT = 'split', -- create a new buffer and open in a split + VSPLIT = 'vsplit', -- create a new buffer and open in a vsplit } ---@class StreamHandlers @@ -71,8 +73,12 @@ local function create_segment(source, segment_mode, hl_group) else return segment.create_segment_at(#source.lines, 0, hl_group, 0) end - elseif segment_mode == M.mode.BUFFER then - vim.cmd.vnew() + elseif segment_mode == M.mode.BUFFER or segment_mode == M.mode.SPLIT or segment_mode == M.mode.VSPLIT then + if segment_mode == M.mode.SPLIT then + vim.cmd.new() + else + vim.cmd.vnew() + end vim.api.nvim_set_option_value('buflisted', true, { scope = 'local' }) vim.api.nvim_set_option_value('buftype', 'nowrite', { scope = 'local' }) From 468daeb2fcc92f92a42ad053fdd0cfeda091e66a Mon Sep 17 00:00:00 2001 From: geemus Date: Fri, 29 Aug 2025 08:42:30 -0500 Subject: [PATCH 2/2] fix stylua lints --- lua/model/core/provider.lua | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lua/model/core/provider.lua b/lua/model/core/provider.lua index fd692c3..4e91ecc 100644 --- a/lua/model/core/provider.lua +++ b/lua/model/core/provider.lua @@ -73,7 +73,11 @@ local function create_segment(source, segment_mode, hl_group) else return segment.create_segment_at(#source.lines, 0, hl_group, 0) end - elseif segment_mode == M.mode.BUFFER or segment_mode == M.mode.SPLIT or segment_mode == M.mode.VSPLIT then + elseif + segment_mode == M.mode.BUFFER + or segment_mode == M.mode.SPLIT + or segment_mode == M.mode.VSPLIT + then if segment_mode == M.mode.SPLIT then vim.cmd.new() else