diff options
| author | TJ DeVries <devries.timothyj@gmail.com> | 2020-09-03 11:59:51 -0400 |
|---|---|---|
| committer | TJ DeVries <devries.timothyj@gmail.com> | 2020-09-03 11:59:51 -0400 |
| commit | 1ce5eaad7ada8627910d32a1a2daab184e6419e6 (patch) | |
| tree | 431ccf33691f1373b1a4b788b07f60511dfd79cb /lua | |
| parent | b04ec331c48a1668b0df21f24e9870acccec5e64 (diff) | |
fix: Prevent people from erroring from having new lines in display
Diffstat (limited to 'lua')
| -rw-r--r-- | lua/telescope/pickers.lua | 9 | ||||
| -rw-r--r-- | lua/tests/manual/newline_tables.lua | 15 |
2 files changed, 23 insertions, 1 deletions
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() |
