aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/nvim
diff options
context:
space:
mode:
Diffstat (limited to 'nvim')
-rw-r--r--nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua56
1 files changed, 40 insertions, 16 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua b/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua
index 3ac6bd0..ffc6095 100644
--- a/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua
+++ b/nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua
@@ -9,33 +9,57 @@ local M = {
}
function M.init()
- local session_name = function()
- if vim.v.this_session ~= "" then
- return vim.fn.fnamemodify(vim.v.this_session, ":t")
- end
- local name, _ = vim.loop.cwd():gsub(":", "++"):gsub(require("plenary.path").path.sep, "%%")
- return name
- end
+ vim.keymap.set("n", "<leader>sr", function()
+ require("mini.sessions").read()
+ end, { desc = "read session" })
vim.keymap.set("n", "<leader>sw", function()
- require("mini.sessions").write(session_name())
+ require("mini.sessions").write()
end, { desc = "write session" })
- vim.keymap.set("n", "<leader>sr", function()
- require("mini.sessions").read(session_name())
- end, { desc = "read session" })
+ vim.keymap.set("n", "<leader>sd", function()
+ require("mini.sessions").delete()
+ end, { desc = "delete session" })
vim.keymap.set("n", "<leader>ss", function()
require("mini.sessions").select()
end, { desc = "select session" })
-
- vim.keymap.set("n", "<leader>sd", function()
- 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()
+ local session_dir = require("plenary.path"):new(vim.fn.stdpath("data")):joinpath("session")
+
+ session_dir:mkdir()
+
+ local session_name = function()
+ if vim.v.this_session ~= "" then
+ return vim.fn.fnamemodify(vim.v.this_session, ":t")
+ end
+
+ return vim.loop.cwd():gsub(":", "++"):gsub(session_dir.path.sep, "%%")
+ end
+
+ local read = require("mini.sessions").read
+ require("mini.sessions").read = function(name)
+ name = vim.F.if_nil(name, session_name())
+ if session_dir:joinpath(name):exists() then
+ read(name)
+ else
+ vim.notify("No session found", vim.log.levels.WARN)
+ end
+ end
+
+ local write = require("mini.sessions").write
+ require("mini.sessions").write = function(name)
+ name = vim.F.if_nil(name, session_name())
+ write(name)
+ end
+
+ local delete = require("mini.sessions").delete
+ require("mini.sessions").delete = function(name)
+ name = vim.F.if_nil(name, session_name())
+ delete(name)
+ end
require("mini.sessions").setup()
end