Compare commits
8 Commits
v2.0.0
...
release-pl
Author | SHA1 | Date | |
---|---|---|---|
55b0b4f434 | |||
95d03ad545 | |||
a2fd3d9965 | |||
5fe077056c | |||
3d443bd0a7 | |||
4982499c16 | |||
9dbe2648c6 | |||
09af251a93 |
13
CHANGELOG.md
13
CHANGELOG.md
@ -1,5 +1,18 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [2.1.0](https://github.com/folke/persistence.nvim/compare/v2.0.0...v2.1.0) (2024-06-12)
|
||||||
|
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
* **persistence:** add `pre-` and `post-` load hooks ([#24](https://github.com/folke/persistence.nvim/issues/24)) ([3d443bd](https://github.com/folke/persistence.nvim/commit/3d443bd0a7e1d9eebfa37321fc8118d8d538af13))
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* don't save `gitrebase` session ([#44](https://github.com/folke/persistence.nvim/issues/44)) ([9dbe264](https://github.com/folke/persistence.nvim/commit/9dbe2648c67b678bf7fe688f03b57a2514e03e6f))
|
||||||
|
* remove expand() as stdpath() expands itself ([#50](https://github.com/folke/persistence.nvim/issues/50)) ([a2fd3d9](https://github.com/folke/persistence.nvim/commit/a2fd3d99656ac496e56233aa4a40dd045a16fdc4))
|
||||||
|
|
||||||
## [2.0.0](https://github.com/folke/persistence.nvim/compare/v1.2.1...v2.0.0) (2023-10-15)
|
## [2.0.0](https://github.com/folke/persistence.nvim/compare/v1.2.1...v2.0.0) (2023-10-15)
|
||||||
|
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
Install the plugin with your preferred package manager:
|
Install the plugin with your preferred package manager:
|
||||||
|
|
||||||
### [folke](https://github.com/folke/lazy.nvim)
|
### [lazy.nvim](https://github.com/folke/lazy.nvim)
|
||||||
|
|
||||||
```lua
|
```lua
|
||||||
-- Lua
|
-- Lua
|
||||||
@ -34,10 +34,13 @@ Persistence comes with the following defaults:
|
|||||||
|
|
||||||
```lua
|
```lua
|
||||||
{
|
{
|
||||||
dir = vim.fn.expand(vim.fn.stdpath("state") .. "/sessions/"), -- directory where session files are saved
|
dir = vim.fn.stdpath("state") .. "/sessions/", -- directory where session files are saved
|
||||||
options = { "buffers", "curdir", "tabpages", "winsize" }, -- sessionoptions used for saving
|
options = { "buffers", "curdir", "tabpages", "winsize" }, -- sessionoptions used for saving
|
||||||
pre_save = nil, -- a function to call before saving the session
|
pre_save = nil, -- a function to call before saving the session
|
||||||
|
post_save = nil, -- a function to call after saving the session
|
||||||
save_empty = false, -- don't save if there are no open file buffers
|
save_empty = false, -- don't save if there are no open file buffers
|
||||||
|
pre_load = nil, -- a function to call before loading the session
|
||||||
|
post_load = nil, -- a function to call after loading the session
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
*persistence.nvim.txt* For Neovim >= 0.8.0 Last change: 2023 October 15
|
*persistence.nvim.txt* For Neovim >= 0.8.0 Last change: 2024 June 12
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
Table of Contents *persistence.nvim-table-of-contents*
|
Table of Contents *persistence.nvim-table-of-contents*
|
||||||
@ -32,7 +32,7 @@ INSTALLATION *persistence.nvim-persistence-installation*
|
|||||||
Install the plugin with your preferred package manager:
|
Install the plugin with your preferred package manager:
|
||||||
|
|
||||||
|
|
||||||
FOLKE ~
|
LAZY.NVIM ~
|
||||||
|
|
||||||
>lua
|
>lua
|
||||||
-- Lua
|
-- Lua
|
||||||
@ -52,10 +52,13 @@ Persistence comes with the following defaults:
|
|||||||
|
|
||||||
>lua
|
>lua
|
||||||
{
|
{
|
||||||
dir = vim.fn.expand(vim.fn.stdpath("state") .. "/sessions/"), -- directory where session files are saved
|
dir = vim.fn.stdpath("state") .. "/sessions/", -- directory where session files are saved
|
||||||
options = { "buffers", "curdir", "tabpages", "winsize" }, -- sessionoptions used for saving
|
options = { "buffers", "curdir", "tabpages", "winsize" }, -- sessionoptions used for saving
|
||||||
pre_save = nil, -- a function to call before saving the session
|
pre_save = nil, -- a function to call before saving the session
|
||||||
|
post_save = nil, -- a function to call after saving the session
|
||||||
save_empty = false, -- don't save if there are no open file buffers
|
save_empty = false, -- don't save if there are no open file buffers
|
||||||
|
pre_load = nil, -- a function to call before loading the session
|
||||||
|
post_load = nil, -- a function to call after loading the session
|
||||||
}
|
}
|
||||||
<
|
<
|
||||||
|
|
||||||
|
@ -2,8 +2,11 @@ local M = {}
|
|||||||
|
|
||||||
---@class PersistenceOptions
|
---@class PersistenceOptions
|
||||||
---@field pre_save? fun()
|
---@field pre_save? fun()
|
||||||
|
---@field post_save? fun()
|
||||||
|
---@field pre_load? fun()
|
||||||
|
---@field post_load? fun()
|
||||||
local defaults = {
|
local defaults = {
|
||||||
dir = vim.fn.expand(vim.fn.stdpath("state") .. "/sessions/"), -- directory where session files are saved
|
dir = vim.fn.stdpath("state") .. "/sessions/", -- directory where session files are saved
|
||||||
options = { "buffers", "curdir", "tabpages", "winsize", "skiprtp" }, -- sessionoptions used for saving
|
options = { "buffers", "curdir", "tabpages", "winsize", "skiprtp" }, -- sessionoptions used for saving
|
||||||
save_empty = false, -- don't save if there are no open file buffers
|
save_empty = false, -- don't save if there are no open file buffers
|
||||||
}
|
}
|
||||||
|
@ -45,6 +45,9 @@ function M.start()
|
|||||||
if vim.bo[b].filetype == "gitcommit" then
|
if vim.bo[b].filetype == "gitcommit" then
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
if vim.bo[b].filetype == "gitrebase" then
|
||||||
|
return false
|
||||||
|
end
|
||||||
return vim.api.nvim_buf_get_name(b) ~= ""
|
return vim.api.nvim_buf_get_name(b) ~= ""
|
||||||
end, vim.api.nvim_list_bufs())
|
end, vim.api.nvim_list_bufs())
|
||||||
if #bufs == 0 then
|
if #bufs == 0 then
|
||||||
@ -53,6 +56,10 @@ function M.start()
|
|||||||
end
|
end
|
||||||
|
|
||||||
M.save()
|
M.save()
|
||||||
|
|
||||||
|
if type(Config.options.post_save) == "function" then
|
||||||
|
Config.options.post_save()
|
||||||
|
end
|
||||||
end,
|
end,
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
@ -73,7 +80,15 @@ function M.load(opt)
|
|||||||
opt = opt or {}
|
opt = opt or {}
|
||||||
local sfile = opt.last and M.get_last() or M.get_current()
|
local sfile = opt.last and M.get_last() or M.get_current()
|
||||||
if sfile and vim.fn.filereadable(sfile) ~= 0 then
|
if sfile and vim.fn.filereadable(sfile) ~= 0 then
|
||||||
|
if type(Config.options.pre_load) == "function" then
|
||||||
|
Config.options.pre_load()
|
||||||
|
end
|
||||||
|
|
||||||
vim.cmd("silent! source " .. e(sfile))
|
vim.cmd("silent! source " .. e(sfile))
|
||||||
|
|
||||||
|
if type(Config.options.post_load) == "function" then
|
||||||
|
Config.options.post_load()
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user