diff options
Diffstat (limited to 'nvim')
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin.lua | 1 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/autocmds.lua | 10 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/keymaps.lua | 3 | ||||
-rw-r--r-- | nvim/.config/nvim/lua/tobyvin/utils/session.lua | 40 |
4 files changed, 31 insertions, 23 deletions
diff --git a/nvim/.config/nvim/lua/tobyvin.lua b/nvim/.config/nvim/lua/tobyvin.lua index f6e315c..754bdb8 100644 --- a/nvim/.config/nvim/lua/tobyvin.lua +++ b/nvim/.config/nvim/lua/tobyvin.lua @@ -10,6 +10,5 @@ vim.api.nvim_create_autocmd("User", { pattern = "VeryLazy", callback = function() require("tobyvin.diagnostic") - require("tobyvin.utils.session").setup() end, }) diff --git a/nvim/.config/nvim/lua/tobyvin/autocmds.lua b/nvim/.config/nvim/lua/tobyvin/autocmds.lua index 891a7af..92b4e65 100644 --- a/nvim/.config/nvim/lua/tobyvin/autocmds.lua +++ b/nvim/.config/nvim/lua/tobyvin/autocmds.lua @@ -9,6 +9,16 @@ vim.api.nvim_create_autocmd("TextYankPost", { desc = "Highlight yank", }) +vim.api.nvim_create_autocmd("VimLeavePre", { + group = vim.api.nvim_create_augroup("session", { clear = true }), + callback = function() + if #vim.fn.getbufinfo({ buflisted = 1, bufloaded = 1 }) > 0 then + require("tobyvin.utils.session").write() + end + end, + desc = "write session on vim exit", +}) + vim.api.nvim_create_autocmd("FocusLost", { group = augroup, pattern = "*", diff --git a/nvim/.config/nvim/lua/tobyvin/keymaps.lua b/nvim/.config/nvim/lua/tobyvin/keymaps.lua index 2594cdc..540a0da 100644 --- a/nvim/.config/nvim/lua/tobyvin/keymaps.lua +++ b/nvim/.config/nvim/lua/tobyvin/keymaps.lua @@ -6,6 +6,9 @@ vim.keymap.set("n", "<a-k>", "<CMD>m -2<CR>", { desc = "move line up" }) vim.keymap.set("v", "<a-k>", "<CMD>m '<-2<CR>gv=gv", { desc = "move selection up" }) vim.keymap.set("v", "<a-j>", "<CMD>m '>+1<CR>gv=gv", { desc = "move selection down" }) +vim.keymap.set("n", "<leader>sr", require("tobyvin.utils.session").read, { desc = "read session" }) +vim.keymap.set("n", "<leader>sw", require("tobyvin.utils.session").write, { desc = "write session" }) + vim.keymap.set("n", "gqq", function() local cursor = vim.api.nvim_win_get_cursor(0) vim.cmd.normal("gggqG") diff --git a/nvim/.config/nvim/lua/tobyvin/utils/session.lua b/nvim/.config/nvim/lua/tobyvin/utils/session.lua index 9a40b29..009337b 100644 --- a/nvim/.config/nvim/lua/tobyvin/utils/session.lua +++ b/nvim/.config/nvim/lua/tobyvin/utils/session.lua @@ -1,17 +1,28 @@ -local Path = require("plenary.path") -local session_dir = Path:new(vim.fn.stdpath("data"), "session") local M = {} +local sep = (function() + if jit then + local os = string.lower(jit.os) + if os ~= "windows" then + return "/" + else + return "\\" + end + else + return package.config:sub(1, 1) + end +end)() + +local session_dir = vim.fn.stdpath("data") .. sep .. "session" + function M.path() - local name = vim.loop.cwd():gsub(":", "++"):gsub(Path.path.sep, "%%") - local file = ("%s.vim"):format(name) - return session_dir:joinpath(file).filename + local name = vim.loop.cwd():gsub(":", "++"):gsub(sep, "%%") + return session_dir .. sep .. name .. ".vim" end function M.write() local path = M.path() - - session_dir:mkdir() + vim.fn.mkdir(vim.fn.fnamemodify(path, ":p:h"), "p") vim.cmd.mksession({ vim.fn.fnameescape(path), bang = true }) end @@ -24,19 +35,4 @@ function M.read() end end -function M.setup() - vim.keymap.set("n", "<leader>sr", M.read, { desc = "read session" }) - vim.keymap.set("n", "<leader>sw", M.write, { desc = "write session" }) - - vim.api.nvim_create_autocmd("VimLeavePre", { - group = vim.api.nvim_create_augroup("session", { clear = true }), - callback = function() - if #vim.fn.getbufinfo({ buflisted = 1, bufloaded = 1 }) > 0 then - M.write() - end - end, - desc = "write session on vim exit", - }) -end - return M |