plugins/lastplace: add plugin + test (#322)

This commit is contained in:
Gaétan Lepage 2023-04-06 16:04:29 +02:00 committed by GitHub
parent 82f04e3cf1
commit f79dccdc2e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 66 additions and 0 deletions

View file

@ -0,0 +1,49 @@
{
pkgs,
lib,
config,
...
}: let
cfg = config.plugins.lastplace;
helpers = import ../helpers.nix {inherit lib;};
in
with lib; {
options.plugins.lastplace =
helpers.extraOptionsOptions
// {
enable = mkEnableOption "lastplace";
package = helpers.mkPackageOption "lastplace" pkgs.vimPlugins.nvim-lastplace;
ignoreBuftype =
helpers.defaultNullOpts.mkNullable (types.listOf types.str)
''["quickfix" "nofix" "help"]''
"The list of buffer types to ignore by lastplace.";
ignoreFiletype =
helpers.defaultNullOpts.mkNullable (types.listOf types.str)
''["gitcommit" "gitrebase" "svn" "hgcommit"]''
"The list of file types to ignore by lastplace.";
openFolds =
helpers.defaultNullOpts.mkBool true
"Whether closed folds are automatically opened when jumping to the last edit position.";
};
config = let
options =
{
lastplace_ignore_buftype = cfg.ignoreBuftype;
lastplace_ignore_filetype = cfg.ignoreFiletype;
lastplace_open_folds = cfg.openFolds;
}
// cfg.extraOptions;
in
mkIf cfg.enable {
extraPlugins = [cfg.package];
extraConfigLua = ''
require('nvim-lastplace').setup(${helpers.toLuaObject options})
'';
};
}