2025-01-08 14:44:58 +01:00
|
|
|
{ lib, ... }:
|
|
|
|
let
|
|
|
|
inherit (lib.nixvim) defaultNullOpts literalLua;
|
|
|
|
in
|
|
|
|
lib.nixvim.plugins.mkNeovimPlugin {
|
|
|
|
name = "persistence";
|
|
|
|
packPathName = "persistence.nvim";
|
|
|
|
package = "persistence-nvim";
|
|
|
|
description = "A simple lua plugin for automated session management.";
|
2023-10-16 23:54:41 +02:00
|
|
|
|
2025-01-08 14:44:58 +01:00
|
|
|
maintainers = [ lib.maintainers.jolars ];
|
2023-10-16 23:54:41 +02:00
|
|
|
|
2025-01-08 14:44:58 +01:00
|
|
|
# TODO: introduced 2025-01-08: remove after 25.05
|
|
|
|
optionsRenamedToSettings = [
|
|
|
|
"dir"
|
|
|
|
];
|
|
|
|
imports =
|
|
|
|
let
|
|
|
|
basePluginPath = [
|
|
|
|
"plugins"
|
|
|
|
"persistence"
|
|
|
|
];
|
|
|
|
in
|
|
|
|
map
|
|
|
|
(
|
|
|
|
option:
|
|
|
|
lib.mkRemovedOptionModule (basePluginPath ++ [ option ]) ''
|
|
|
|
This option has been deprecated upstream. The plugin now provides
|
|
|
|
user events to hook into instead.
|
|
|
|
''
|
|
|
|
)
|
|
|
|
[
|
|
|
|
"options"
|
|
|
|
"preSave"
|
|
|
|
"saveEmpty"
|
|
|
|
];
|
2023-10-16 23:54:41 +02:00
|
|
|
|
2025-01-08 14:44:58 +01:00
|
|
|
settingsOptions = {
|
|
|
|
branch = defaultNullOpts.mkBool true ''
|
|
|
|
Use git branch to save session.
|
|
|
|
'';
|
2023-10-16 23:54:41 +02:00
|
|
|
|
2025-01-08 14:44:58 +01:00
|
|
|
dir = defaultNullOpts.mkStr (literalLua "vim.fn.expand(vim.fn.stdpath('state') .. '/sessions/')") ''
|
|
|
|
Directory where session files are saved.
|
|
|
|
'';
|
2023-10-16 23:54:41 +02:00
|
|
|
|
2025-01-08 14:44:58 +01:00
|
|
|
need = defaultNullOpts.mkUnsignedInt 1 ''
|
|
|
|
Minimum number of file buffers that need to be open to save. Set to
|
|
|
|
0 to always save.
|
2023-10-16 23:54:41 +02:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2025-01-08 14:44:58 +01:00
|
|
|
settingsExample = {
|
|
|
|
need = 0;
|
|
|
|
branch = false;
|
|
|
|
};
|
2023-10-16 23:54:41 +02:00
|
|
|
}
|