diff --git a/README.md b/README.md index 4778ec9..dcb8cec 100644 --- a/README.md +++ b/README.md @@ -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: - `` - Source the session file - `` - 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) diff --git a/lua/persisted/init.lua b/lua/persisted/init.lua index 05bd819..cf085c9 100644 --- a/lua/persisted/init.lua +++ b/lua/persisted/init.lua @@ -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)