aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--nvim/.config/nvim/lua/tobyvin.lua1
-rw-r--r--nvim/.config/nvim/lua/tobyvin/autocmds.lua10
-rw-r--r--nvim/.config/nvim/lua/tobyvin/keymaps.lua3
-rw-r--r--nvim/.config/nvim/lua/tobyvin/utils/session.lua40
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