Commit Graph

115 Commits (07fd86682f6ebcd29713d66da887187820f9b67e)

Author SHA1 Message Date
Bryan 07fd86682f Use Session* events to fire post load/save events 2024-11-07 11:21:37 -06:00
Bryan d6485bc69f fix pre/post load/save callbacks? 2024-11-07 00:50:50 -06:00
Bryan 28e72fb1ff Remove delays around load and save, create pre/post callbacks instead 2024-11-07 00:22:59 -06:00
Bryan 1bcfe10f2a Use defer_fn() instead of sleep, lets see if this works 2024-11-06 20:49:32 -06:00
Bryan 7b93db8e5c Add sleeps around save/load pre/post to give time for user events to finish 2024-11-06 20:36:34 -06:00
Bryan e87a20b70d Add sleeps around save/load pre/post to give time for user events to finish 2024-11-06 20:35:44 -06:00
Oli Morris e65093de39 fix: do not autostart the plugin if nvim is passed args 2024-10-17 13:10:04 +01:00
olimorris f0f02a990c refactor!: remove support for old config 2024-09-11 17:23:15 +01:00
Komil484 6e9c992381
fix: SessionDelete now uses native vim cmds (#156) 2024-09-03 18:43:34 +01:00
Mike Iversen c9c11ee71f
fix: #146 better handling for empty tables
PR (#152)
2024-08-30 15:14:00 +01:00
olimorris 999b6918b4 feat: add `SessionSelect` command
For those who don't want to use Telescope to load and select sessions,
this offers an alternative
2024-08-22 18:37:42 +01:00
Christopher Speck 03990e44c3
fix: do not pass sanitized directories into utils.dirs_match (#148) 2024-08-17 09:52:25 +01:00
olimorris e2ae8b321e refactor(utils): directory formatting 2024-08-09 13:31:14 +01:00
Oli 22e17b07fb
refactor!: #145 restore simplicity to the plugin
Announcement in #145
2024-08-08 18:25:16 +01:00
olimorris 0446fd0217 refactor: better git branch checking 2024-08-06 22:05:43 +01:00
olimorris 4df3f8a036 chore: add logging 2024-07-02 19:32:36 +01:00
olimorris a9138468f9 chore: handle null parameters on `ignore_branch` 2024-07-02 19:32:12 +01:00
Jurek Olden e50e0b65b0
fix: properly start a session from Telescope (#134)
Properly starts sessions loaded from another directory using Telescope.
Crucially, this version compares the working directory of the session, not
the working directory at the time of the session load, to the lists
of allowed and ignored directories.

Co-authored-by: Oli <olimorris@users.noreply.github.com>
2024-06-03 07:29:47 -07:00
Zheng PiaoDan 2b4f192aca
fix: follow_cwd option (#132)
* fix: TestFollowCwd

* fix: follow_cwd not actually working

cause: `follow_cwd and nil or session` always use `session` because the
`true and nil` expression is evaluated to false
2024-05-31 09:47:52 +01:00
Rémi Labeyrie 1e9fd63e25
fix: remove unused last_modified property (#126) 2024-05-07 19:31:21 +01:00
PostCyberPunk 96bf597778
fix: use stat to last modified date (#121) 2024-04-26 09:23:21 +01:00
Rémi Labeyrie 8fc97b6182
feat: add icons and colors to telescope picker (#119)
* feat: add icons and colors to telescope picker

* feat: add configuration options for telescope icons

* fix: remove highlight group for telescope normal selection
2024-04-22 21:36:41 +01:00
olimorris a192a0a11a chore(formatting): updates 2024-03-12 21:46:14 +00:00
Matthias Bilger ce9d621683
feat: Add ability to ignore branches (#114) 2024-03-12 21:44:36 +00:00
anhoder b4e09a639a
fix: force save (#112) 2024-02-29 09:04:48 +00:00
Mike Iversen edd8aa41cd
chore: use vim.notify (#108)
* Updated warnings and info to print with vim.notify

* Updated formatting
2024-01-06 09:40:32 +00:00
olimorris 284d714b8d fix: #107 corrected remove warning message 2024-01-05 22:56:04 +00:00
olimorris 9545fc0b85 fix: #107 remove warning message 2024-01-05 22:53:47 +00:00
Christopher Speck 97bc6260fb
fix: properly resolve directories (#105)
* fix: properly resolve directories

The `vim.loop.fs_realpath()` function can be used to properly resolve
both the `.` shortcut as well as relative paths. This corrects scenarios
when opening nvim to a subdirectory of the working directory. With this
change doing so will properly resolve the session file to the directory
that was specified on the command line.

```console
$ pwd
/Users/username/.config

$ ls
fish    iterm2    nvim

$ nvim nvim
```

This will result in using the path `/Users/username/.config/nvim` for
the session. The behavior will be the same as running plain `nvim` from
within the `/Users/username/.config/nvim` directory itself.

This change also quotes the path passed to `git` to properly handle
paths containing spaces.

This change also corrects some typos in the readme.

* fix: isdirectory is not necessary

The fs_realpath function will return nil if the path doesn't exist.

* fix: typos in comments

* fix: isdirectory is still necessary

Oops, the isdirectory check is necessary to confirm it's a directory and
not a file.
2023-12-22 15:53:31 +00:00
olimorris dfb79ffa75 feat: make more data available when firing events 2023-12-21 16:52:30 +00:00
olimorris 15096138b0 chore: update comment block 2023-12-21 13:45:03 +00:00
olimorris 548b43aec4 refactor: function names and comment blocks 2023-12-21 13:26:48 +00:00
Christopher Speck 7944b9afe3
refactor: update logic for autoload or starting sessions (#104)
* Update logic for autoload or starting sessions.

The logic to prevent autoloading/starting sessions when any arguments
are supplied to neovim is to prevent session management from kicking in
when editing a single file.

This updates the logic to allow a single argument passed to neovim as
long as the argument is an existing directory. When neovim is launched
in this way it behaves the same as opening neovim with no arguments but
has changed the working directory.

This results in consistent behavior of the autoloading/starting of
sessions when passing a directory argument to start neovim.

See: https://github.com/olimorris/persisted.nvim/discussions/93

* Fix comment, make comparisons more direct

* Update functions to be directory-aware

The main functionality in `init.lua` assumes using current working
directory in most cases. This refactors these functions to allow passing
in a directory instead.

The default behavior is to now use the current directory unless neovim
was started with a single directory argument, using that instead.

This also special-cases `.` as `vim.fn.expand()` does not resolve that
to the current working directory.
2023-12-21 11:15:05 +00:00
olimorris 66d540f949 refactor!: do not append `main` to non-git repo sessions
https://github.com/olimorris/persisted.nvim/discussions/103
2023-12-20 12:47:51 +00:00
olimorris bcdada28d2 fix: prevent double running of git command
Should improve loading times significantly
2023-12-18 23:22:10 +00:00
olimorris 3ebc5d77ae refactor: `override` to `force` for SessionSave 2023-11-18 16:07:38 +00:00
olimorris 0ea44f1586 feat: add global var for if session exists in cwd 2023-11-18 15:38:16 +00:00
olimorris d90f9adb04 fix: #96 improve startup time
For those who do not use the git branching feature, this may improve their Neovim startup time significantly
2023-11-16 09:50:09 +00:00
Rafael Bodill 315cd1a8a5
fix: unnecessary shell commands when autosave off (#85)
* fix: unnecessary shell commands when autosave off

Problem:    Shell programs aren't able to detect nvim exit.

Solution:   Avoid running shell-commands unnecessarily on exit.

Programs that spawn nvim in-order to edit a file are unable to detect
nvim exit cleanly because of a race-condition that happens in
`VimLeavePre` and `get_current()` which runs shell commands during exit
even when `autosave` is off.

For example, using nvim nightly, run persisted.nvim with:

```lua
opts.should_autosave = function()
	-- Do not autosave if git commit/rebase session.
	return vim.env.GIT_EXEC_PATH == nil
end
```

And run `EDITOR=nvim git commit` from shell; git will fail waiting for
nvim to exit cleanly.

* fix: global variable in lowercase initial
2023-08-11 14:07:50 +01:00
olimorris 2de1fe69e7 feat: add event for `PersistedToggled` 2023-08-11 10:33:54 +01:00
olimorris c1c4bbff8a feat: add global variable for last loaded session 2023-07-26 16:17:42 +01:00
olimorris 06946ed12d feat: allow session to be saved from telescope 2023-07-25 21:12:30 +01:00
olimorris b03c863731 Revert "fix: prevent autoloading when there are extra command line arguments passed to nvim (#76)"
This reverts commit 975cd4cd06.
2023-06-30 05:09:55 +01:00
Beartama 975cd4cd06
fix: prevent autoloading when there are extra command line arguments passed to nvim (#76)
When nvim is used as a man pager with `export MANPAGER='nvim +Man! '`, with autoload set to true, persisted.nvim still autoloads the current directory which is not desirable
2023-06-27 17:07:11 -07:00
olimorris 2e6946c1ad refactor: clean up `mks` command 2023-06-02 10:22:04 +01:00
Oli 304a3c5551
feat: load the session from the main branch if no branch session (#66) 2023-04-24 17:44:57 +01:00
olimorris e053ff3348 fix: #61 `SessionSave` command 2023-03-13 19:45:24 +00:00
olimorris 7d91c60135 fix: #60 autosave ignoring vim.fn.argc 2023-03-09 09:57:27 +00:00
olimorris 0a6be5db0e refactor: remove deprecations 2023-03-09 09:41:22 +00:00
olimorris 88f27dcab2 fix: PersistedSavePre called when autosave = false 2023-02-28 23:21:54 +00:00