feat: add global var for if session exists in cwd

main
olimorris 2023-11-18 15:38:16 +00:00
parent d90f9adb04
commit 0ea44f1586
2 changed files with 24 additions and 5 deletions

View File

@ -101,7 +101,7 @@ require('telescope').setup({
## :rocket: Usage
**Default commands**
### Commands
The plugin comes with a number of commands:
@ -114,7 +114,7 @@ The plugin comes with a number of commands:
- `:SessionLoadFromFile` - Load a session from a given path
- `:SessionDelete` - Delete the current session
**Telescope**
### Telescope extension
The Telescope extension may be opened via `:Telescope persisted`.
@ -123,12 +123,13 @@ Once opened, the available keymaps are:
- `<CR>` - Source the session file
- `<C-d>` - Delete the session file
**Global variables**
### Global variables
The plugin sets global variables which can be utilised in your configuration:
- `vim.g.persisting` - This is set to `true` when a session is started and `false` when a session is stopped
- `vim.g.persisted_loaded_session` - The file path to the currently loaded session
- `vim.g.persisting` - (bool) Determines if the plugin is active for the current session
- `vim.g.persisted_exists` - (bool) Determines if a session exists for the current working directory
- `vim.g.persisted_loaded_session` - (string) The file path to the current session
## :wrench: Configuration
@ -349,6 +350,14 @@ The session data available differs depending on the events that are hooked into.
The plugin contains an extension for [telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) which allows the user to list all of the saved session files and source them via `:Telescope persisted`.
### Global variables
The plugin makes a number of global variables available for users to hook into during the lifecycle of their Neovim session:
- `vim.g.persisting` - (bool) Determines if the plugin is active for the current session
- `vim.g.persisted_exists` - (bool) Determines if a session exists for the current working directory
- `vim.g.persisted_loaded_session` - (string) The name of the active session
## :page_with_curl: License
[MIT](https://github.com/olimorris/persisted.nvim/blob/main/LICENSE)

View File

@ -75,12 +75,22 @@ local function get_current()
return config.options.save_dir .. name .. M.get_branch() .. ".vim"
end
---Determine if a session for the current wording directory, exists
---@return boolean
function M.session_exists()
return vim.fn.filereadable(get_current()) ~= 0
end
---Setup the plugin
---@param opts? table
---@return nil
function M.setup(opts)
config.setup(opts)
if M.session_exists() then
vim.g.persisted_exists = true
end
if
config.options.autosave
and (allow_dir() and not ignore_dir() and vim.g.persisting == nil)