diff options
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua b/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua index f066b0d..0676680 100644 --- a/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua +++ b/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua @@ -2,16 +2,27 @@ local M = { "echasnovski/mini.sessions", name = "sessions", event = { "VimLeavePre" }, + dependencies = { + "nvim-lua/plenary.nvim", + }, config = true, } function M.init() + local session_name = function() + if vim.v.this_session ~= "" then + return vim.v.this_session + end + local name, _ = vim.loop.cwd():gsub(":", "++"):gsub(require("plenary.path").path.sep, "%%") + return name + end + vim.keymap.set("n", "<leader>sw", function() - require("mini.sessions").write() + require("mini.sessions").write(session_name()) end, { desc = "write session" }) vim.keymap.set("n", "<leader>sr", function() - require("mini.sessions").read() + require("mini.sessions").read(session_name()) end, { desc = "read session" }) vim.keymap.set("n", "<leader>ss", function() @@ -19,11 +30,13 @@ function M.init() end, { desc = "select session" }) vim.keymap.set("n", "<leader>sd", function() - require("mini.sessions").delete() + require("mini.sessions").delete(session_name()) end, { desc = "delete session" }) end function M.config() + require("plenary.path"):new(vim.fn.stdpath("data")):joinpath("session"):mkdir() + require("mini.sessions").setup() end |