nix-community.nixvim/plugins/utils/lastplace.nix

49 lines
1.3 KiB
Nix

{
lib,
helpers,
config,
pkgs,
...
}: let
cfg = config.plugins.lastplace;
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})
'';
};
}