Skip to content

Commit f8d4ee2

Browse files
committed
feat: add support for multiple files
tdo.nvim can now support multiple files being returned by tdo
1 parent 95d4651 commit f8d4ee2

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

lua/tdo/init.lua

+28-14
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,35 @@
11
local tdo = {}
22

3+
local function telescope_select(options, options_desc, select_prompt)
4+
require('telescope.pickers')
5+
.new({}, {
6+
prompt_title = select_prompt,
7+
results_title = options_desc,
8+
finder = require('telescope.finders').new_table({
9+
results = options,
10+
entry_maker = require('telescope.make_entry').gen_from_file(),
11+
}),
12+
sorter = require('telescope.sorters').get_fzy_sorter(),
13+
previewer = require('telescope.previewers').vim_buffer_cat.new({}),
14+
})
15+
:find()
16+
end
17+
318
tdo.run_with = function(argument)
419
local full_command = 'tdo ' .. argument
520
local file_name = vim.fn.system(full_command)
6-
vim.cmd('edit ' .. file_name)
21+
if file_name == '' then
22+
return
23+
end
24+
25+
local file_names = vim.split(file_name, '\n')
26+
table.remove(file_names, #file_names)
27+
28+
if #file_names > 1 then
29+
telescope_select(file_names, 'Notes with similar name', 'Select Note')
30+
else
31+
vim.cmd('e ' .. file_name)
32+
end
733
end
834

935
tdo.new_note = function()
@@ -32,19 +58,7 @@ tdo.pending_todos = function()
3258
local results = vim.fn.systemlist('tdo todo')
3359
vim.o.hlsearch = true
3460
vim.fn.setreg('/', ' ]')
35-
36-
require('telescope.pickers')
37-
.new({}, {
38-
prompt_title = 'Find in Todos',
39-
results_title = 'Incomplete Todos',
40-
finder = require('telescope.finders').new_table({
41-
results = results,
42-
entry_maker = require('telescope.make_entry').gen_from_file(),
43-
}),
44-
sorter = require('telescope.sorters').get_fzy_sorter(),
45-
previewer = require('telescope.previewers').vim_buffer_cat.new({}),
46-
})
47-
:find()
61+
telescope_select(results, 'Pending Todos', 'Select Todo')
4862
end
4963

5064
tdo.toggle_todo = function()

0 commit comments

Comments
 (0)