@@ -4,6 +4,19 @@ local output_window = require('opencode.ui.output_window')
44local flush = require (' opencode.ui.renderer.flush' )
55local stub = require (' luassert.stub' )
66
7+ --- @param value string
8+ --- @return table<string , string>
9+ local function parse_fillchars (value )
10+ local result = {}
11+ for _ , part in ipairs (vim .split (value , ' ,' , { plain = true , trimempty = true })) do
12+ local key , item = part :match (' ^([^:]+):(.*)$' )
13+ if key and item then
14+ result [key ] = item
15+ end
16+ end
17+ return result
18+ end
19+
720describe (' output_window.create_buf' , function ()
821 local original_config
922
@@ -154,12 +167,21 @@ describe('output_window.setup', function()
154167 assert .equals (0 , foldlevel )
155168 end )
156169
157- it (' sets fold fillchars to avoid numeric fold column markers' , function ()
170+ it (' preserves existing fillchars while setting fold fillchars' , function ()
171+ vim .api .nvim_set_option_value (' fillchars' , ' eob:~,lastline:@' , { win = win , scope = ' local' })
172+
158173 output_window .setup ({ output_buf = buf , output_win = win })
159174
160175 local fillchars = vim .api .nvim_get_option_value (' fillchars' , { win = win })
161176
162- assert .equals (' fold:-,foldopen:-,foldclose:+,foldsep:│' , fillchars )
177+ assert .same ({
178+ eob = ' ~' ,
179+ lastline = ' @' ,
180+ fold = ' -' ,
181+ foldopen = ' -' ,
182+ foldclose = ' +' ,
183+ foldsep = ' │' ,
184+ }, parse_fillchars (fillchars ))
163185 end )
164186
165187 it (' applies closed folds immediately when fold ranges change' , function ()
0 commit comments