summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTJ DeVries <devries.timothyj@gmail.com>2020-09-11 14:36:57 -0400
committerTJ DeVries <devries.timothyj@gmail.com>2020-09-11 14:36:57 -0400
commitd96d89711ca4a9534a7edb53b29eff4fd4ab1861 (patch)
tree9245b415d8e3f9be37c74342074d413f239e414c
parentcf21d83e4c053cdac64b01bc93f44e80e8ffb1d4 (diff)
feat: add a bit better writer support
-rw-r--r--lua/telescope/finders.lua11
-rw-r--r--lua/tests/manual/newline_tables.lua12
2 files changed, 13 insertions, 10 deletions
diff --git a/lua/telescope/finders.lua b/lua/telescope/finders.lua
index 07a013c..9720895 100644
--- a/lua/telescope/finders.lua
+++ b/lua/telescope/finders.lua
@@ -53,6 +53,7 @@ function JobFinder:new(opts)
state = {},
cwd = opts.cwd,
+ writer = opts.writer,
-- Maximum number of results to process.
-- Particularly useful for live updating large queries.
@@ -114,6 +115,14 @@ function JobFinder:_find(prompt, process_result, process_complete)
local opts = self:fn_command(prompt)
if not opts then return end
+ local writer = nil
+ if opts.writer and Job.is_job(opts.writer) then
+ print("WOW A JOB")
+ writer = opts.writer
+ elseif opts.writer then
+ writer = Job:new(opts.writer)
+ end
+
self.job = Job:new {
command = opts.command,
args = opts.args,
@@ -121,7 +130,7 @@ function JobFinder:_find(prompt, process_result, process_complete)
maximum_results = self.maximum_results,
- writer = opts.writer and Job:new(opts.writer) or nil,
+ writer = writer,
on_stdout = on_output,
on_stderr = on_output,
diff --git a/lua/tests/manual/newline_tables.lua b/lua/tests/manual/newline_tables.lua
index 26d2b89..314d49d 100644
--- a/lua/tests/manual/newline_tables.lua
+++ b/lua/tests/manual/newline_tables.lua
@@ -4,18 +4,12 @@ local finders = require('telescope.finders')
local pickers = require('telescope.pickers')
local sorters = require('telescope.sorters')
+local my_list = {'a', 'b', 'c'}
pickers.new({
prompt = 'Telescope Builtin',
finder = finders.new_table {
- results = {"hello\nworld", "other", "item"},
- entry_maker = false and function(line)
- return {
- value = line,
- ordinal = line,
- display = "wow: // " .. line,
- }
- end,
+ results = my_list,
},
- sorter = sorters.get_norcalli_sorter(),
+ sorter = sorters.get_generic_fuzzy_sorter(),
}):find()