-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathresession-config.lua
More file actions
51 lines (43 loc) · 1.4 KB
/
resession-config.lua
File metadata and controls
51 lines (43 loc) · 1.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
local M = {
'stevearc/resession.nvim',
lazy = false,
}
M.opts = function()
return {
extensions = { hbac = {} }
}
end
M.config = function(_, opts)
local resession = require('resession')
resession.setup(opts)
-- NOTE: load a dir-specific session when open nvim, save when exit.
vim.api.nvim_create_autocmd('VimEnter', {
callback = function()
if vim.fn.argc(-1) == 0 then
resession.load(vim.fn.getcwd(), { silence_errors = true })
end
end,
nested = true,
})
vim.api.nvim_create_autocmd('VimLeavePre', {
callback = function()
-- NOTE: save only exist session
local files = require('resession.files')
local current_session = string.format('%s', vim.fn.getcwd():gsub(files.sep, '_'):gsub(':', '_'))
for _, session_name in ipairs(resession.list()) do
if session_name == current_session then
resession.save(vim.fn.getcwd(), { notify = true })
return
end
end
end,
})
end
M.keys = function()
local resession_keymap = require('config.keymaps').resession
return {
{ resession_keymap.save, function() require('resession').save(vim.fn.getcwd()) end },
{ resession_keymap.delete, function() require('resession').delete() end },
}
end
return M