|
1 | 1 | local tdo = {}
|
2 | 2 |
|
| 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 | + |
3 | 18 | tdo.run_with = function(argument)
|
4 | 19 | local full_command = 'tdo ' .. argument
|
5 | 20 | 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 |
7 | 33 | end
|
8 | 34 |
|
9 | 35 | tdo.new_note = function()
|
@@ -32,19 +58,7 @@ tdo.pending_todos = function()
|
32 | 58 | local results = vim.fn.systemlist('tdo todo')
|
33 | 59 | vim.o.hlsearch = true
|
34 | 60 | 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') |
48 | 62 | end
|
49 | 63 |
|
50 | 64 | tdo.toggle_todo = function()
|
|
0 commit comments