summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2020-09-03 11:59:51 -0400
committerTJ DeVries <devries.timothyj@gmail.com>2020-09-03 11:59:51 -0400
commit1ce5eaad7ada8627910d32a1a2daab184e6419e6 (patch)
tree431ccf33691f1373b1a4b788b07f60511dfd79cb /lua
parentb04ec331c48a1668b0df21f24e9870acccec5e64 (diff)
fix: Prevent people from erroring from having new lines in display
Diffstat (limited to 'lua')
-rw-r--r--lua/telescope/pickers.lua9
-rw-r--r--lua/tests/manual/newline_tables.lua15
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()