diff options
author | Toby Vincent <tobyv13@gmail.com> | 2022-12-30 17:40:41 -0600 |
---|---|---|
committer | Toby Vincent <tobyv13@gmail.com> | 2022-12-30 17:40:41 -0600 |
commit | deb973e90f20302e3d166675b05e0e5a22df9a72 (patch) | |
tree | ad3011d991601a24910bd54326dac962bde323cc /nvim | |
parent | fe49a507184b0bb6fd877a6d97723eb5fd4811c9 (diff) |
fix(nvim): fix bug when trying to a non-existant load session
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/plugins/sessions.lua | 56 |
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 |