aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim/.config
diff options
context:
space:
mode:
Diffstat (limited to 'nvim/.config')
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua19
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