From 1ce5eaad7ada8627910d32a1a2daab184e6419e6 Mon Sep 17 00:00:00 2001 From: TJ DeVries Date: Thu, 3 Sep 2020 11:59:51 -0400 Subject: [PATCH] fix: Prevent people from erroring from having new lines in display --- lua/telescope/pickers.lua | 9 ++++++++- lua/tests/manual/newline_tables.lua | 15 +++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 lua/tests/manual/newline_tables.lua 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()