diff --git a/lua/telescope/pickers.lua b/lua/telescope/pickers.lua index b072f90..ec515c4 100644 --- a/lua/telescope/pickers.lua +++ b/lua/telescope/pickers.lua @@ -259,7 +259,14 @@ function Picker:find() display = ' ' .. display -- log.info("Setting row", row, "with value", entry) - vim.api.nvim_buf_set_lines(results_bufnr, row, row + 1, false, {display}) + local set_ok = pcall(vim.api.nvim_buf_set_lines, results_bufnr, row, row + 1, false, {display}) + + -- This pretty much only fails when people leave newlines in their results. + -- So we'll clean it up for them if it fails. + if not set_ok then + display = display:gsub("\n", " | ") + vim.api.nvim_buf_set_lines(results_bufnr, row, row + 1, false, {display}) + end end )) diff --git a/lua/tests/manual/newline_tables.lua b/lua/tests/manual/newline_tables.lua new file mode 100644 index 0000000..879d006 --- /dev/null +++ b/lua/tests/manual/newline_tables.lua @@ -0,0 +1,15 @@ +RELOAD('telescope') + +local actions = require('telescope.actions') +local finders = require('telescope.finders') +local previewers = require('telescope.previewers') +local pickers = require('telescope.pickers') +local sorters = require('telescope.sorters') +local utils = require('telescope.utils') + + +pickers.new({ + prompt = 'Telescope Builtin', + finder = finders.new_table({"hello\nworld", "other", "item"}), + sorter = sorters.get_norcalli_sorter(), +}):find()