refactor: telescope extension
parent
459adba9dd
commit
2b7ab49f36
|
|
@ -1,6 +1,7 @@
|
||||||
local actions_state = require("telescope.actions.state")
|
local actions_state = require("telescope.actions.state")
|
||||||
local transform_mod = require("telescope.actions.mt").transform_mod
|
local transform_mod = require("telescope.actions.mt").transform_mod
|
||||||
|
|
||||||
|
local utils = require("persisted.utils")
|
||||||
local M = {}
|
local M = {}
|
||||||
|
|
||||||
---Get the selected session from Telescope
|
---Get the selected session from Telescope
|
||||||
|
|
@ -9,6 +10,14 @@ local get_selected_session = function()
|
||||||
return actions_state.get_selected_entry()
|
return actions_state.get_selected_entry()
|
||||||
end
|
end
|
||||||
|
|
||||||
|
M.load_session = function(session, config)
|
||||||
|
utils.load_session(
|
||||||
|
session.file_path,
|
||||||
|
config.telescope.before_source and config.telescope.before_source(session) or _,
|
||||||
|
config.telescope.after_source and config.telescope.after_source(session) or _
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
---Delete the selected session from disk
|
---Delete the selected session from disk
|
||||||
--@return string
|
--@return string
|
||||||
M.delete_session = function()
|
M.delete_session = function()
|
||||||
|
|
|
||||||
|
|
@ -10,33 +10,30 @@ local function search_sessions(opts)
|
||||||
local utils = require("persisted.utils")
|
local utils = require("persisted.utils")
|
||||||
local config = require("persisted.config").options
|
local config = require("persisted.config").options
|
||||||
|
|
||||||
pickers.new(opts, {
|
pickers
|
||||||
prompt_title = "Sessions",
|
.new(opts, {
|
||||||
sorter = conf.generic_sorter(opts),
|
prompt_title = "Sessions",
|
||||||
finder = _finders.session_finder(require("persisted").list()),
|
sorter = conf.generic_sorter(opts),
|
||||||
attach_mappings = function(prompt_bufnr, map)
|
finder = _finders.session_finder(require("persisted").list()),
|
||||||
local refresh_sessions = function()
|
attach_mappings = function(prompt_bufnr, map)
|
||||||
local picker = action_state.get_current_picker(prompt_bufnr)
|
local refresh_sessions = function()
|
||||||
picker:refresh(_finders.session_finder(require("persisted").list()), { reset_prompt = true })
|
local picker = action_state.get_current_picker(prompt_bufnr)
|
||||||
end
|
picker:refresh(_finders.session_finder(require("persisted").list()), { reset_prompt = true })
|
||||||
|
end
|
||||||
|
|
||||||
_actions.delete_session:enhance({ post = refresh_sessions })
|
_actions.delete_session:enhance({ post = refresh_sessions })
|
||||||
|
|
||||||
map("i", "<c-d>", _actions.delete_session)
|
map("i", "<c-d>", _actions.delete_session)
|
||||||
|
|
||||||
actions.select_default:replace(function()
|
actions.select_default:replace(function()
|
||||||
local session = action_state.get_selected_entry()
|
local session = action_state.get_selected_entry()
|
||||||
actions.close(prompt_bufnr)
|
actions.close(prompt_bufnr)
|
||||||
|
_actions.load_session(session, config)
|
||||||
utils.load_session(
|
end)
|
||||||
session.file_path,
|
return true
|
||||||
config.telescope.before_source and config.telescope.before_source(session) or _,
|
end,
|
||||||
config.telescope.after_source and config.telescope.after_source(session) or _
|
})
|
||||||
)
|
:find()
|
||||||
end)
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
}):find()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return require("telescope").register_extension({
|
return require("telescope").register_extension({
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue