diff --git a/lua/opencode/ui/permission_window.lua b/lua/opencode/ui/permission_window.lua index 9a9d095b..df1412b2 100644 --- a/lua/opencode/ui/permission_window.lua +++ b/lua/opencode/ui/permission_window.lua @@ -130,10 +130,11 @@ function M.format_display(output) table.insert(content, (icons.get(perm_type)) .. ' *' .. perm_type .. '* `' .. permission.title .. '`') else table.insert(content, (icons.get(perm_type)) .. ' *' .. perm_type .. '*') - local lines = permission.patterns or {} table.insert(content, string.format('```%s', perm_type)) - for i, line in ipairs(lines) do - table.insert(content, line) + for _, pattern in ipairs(permission.patterns or {}) do + for _, line in ipairs(vim.split(pattern, '\n')) do + table.insert(content, line) + end end table.insert(content, '```') end diff --git a/tests/unit/permission_window_spec.lua b/tests/unit/permission_window_spec.lua index ac49e31b..4f4ca547 100644 --- a/tests/unit/permission_window_spec.lua +++ b/tests/unit/permission_window_spec.lua @@ -42,12 +42,14 @@ describe('permission_window', function() assert.is_not_nil(captured_opts) assert.is_not_nil(captured_opts.content) - assert.are.equal(5, #captured_opts.content) + assert.are.equal(7, #captured_opts.content) assert.is_true(captured_opts.content[1]:find('*bash*', 1, true) ~= nil) assert.are.equal('```bash', captured_opts.content[2]) - assert.are.equal("python3 - <<'PY'\nprint('hello')\nPY", captured_opts.content[3]) - assert.are.equal('```', captured_opts.content[4]) - assert.are.equal('', captured_opts.content[5]) + assert.are.equal("python3 - <<'PY'", captured_opts.content[3]) + assert.are.equal("print('hello')", captured_opts.content[4]) + assert.are.equal('PY', captured_opts.content[5]) + assert.are.equal('```', captured_opts.content[6]) + assert.are.equal('', captured_opts.content[7]) end) it('displays description when available', function()