35 lines
1,012 B
Lua
35 lines
1,012 B
Lua
local pickers = require "telescope.pickers"
|
|
local finders = require "telescope.finders"
|
|
local conf = require("telescope.config").values
|
|
local actions = require("telescope.actions")
|
|
local action_state = require("telescope.actions.state")
|
|
|
|
local obsidian_commands = require("obsidian.commands").commands
|
|
local results = {}
|
|
for key, _ in pairs(obsidian_commands) do
|
|
table.insert(results, string.sub(key, 9))
|
|
end
|
|
|
|
local obsidian_picker = function(opts)
|
|
opts = opts or require("telescope.themes").get_dropdown {}
|
|
pickers.new(opts, {
|
|
prompt_title = "Obsidian",
|
|
finder = finders.new_table {
|
|
results = results,
|
|
},
|
|
sorter = conf.generic_sorter(opts),
|
|
attach_mappings = function(prompt_bufnr, map)
|
|
actions.select_default:replace(function()
|
|
actions.close(prompt_bufnr)
|
|
local selection = action_state.get_selected_entry()
|
|
vim.cmd(':Obsidian' .. selection[1])
|
|
end)
|
|
return true
|
|
end,
|
|
}):find()
|
|
end
|
|
|
|
|
|
return {
|
|
obsidian_picker = obsidian_picker
|
|
}
|