nix-community.nixvim/plugins/by-name/autoclose/default.nix
2025-02-01 12:50:49 -06:00

61 lines
1.8 KiB
Nix

{
lib,
...
}:
let
inherit (lib.nixvim) defaultNullOpts mkNullOrOption;
inherit (lib) types;
in
lib.nixvim.plugins.mkNeovimPlugin {
name = "autoclose";
packPathName = "autoclose.nvim";
package = "autoclose-nvim";
maintainers = [ lib.maintainers.GaetanLepage ];
description = ''
Automatically close pairs in Neovim.
'';
settingsOptions = {
keys = mkNullOrOption (types.attrsOf types.anything) ''
Configures various options, such as shortcuts for pairs, what pair of characters to use in the shortcut, etc.
'';
options = {
disabled_filetypes = defaultNullOpts.mkListOf types.str [ "text" ] ''
The plugin will be disabled under the filetypes in this table.
'';
disable_when_touch = defaultNullOpts.mkBool false ''
Set this to true will disable the auto-close function when the cursor touches character that matches touch_regex.
'';
touch_regex = defaultNullOpts.mkStr "[%w(%[{]" ''
Regex to use in combination with `disable_when_touch`.
'';
pair_spaces = defaultNullOpts.mkBool false ''
Pair the spaces when cursor is inside a pair of keys.
'';
auto_indent = defaultNullOpts.mkBool true ''
Enable auto-indent feature.
'';
disable_command_mode = defaultNullOpts.mkBool false ''
Disable autoclose for command mode globally.
'';
};
};
settingsExample = {
settings = {
options = {
disabled_filetypes = [ "text" ];
disable_when_touch = false;
touch_regex = "[%w(%[{]";
pair_spaces = false;
auto_indent = true;
disable_command_mode = false;
};
};
};
# TODO: Deprecated in 2025-01-31
inherit (import ./deprecations.nix) deprecateExtraOptions optionsRenamedToSettings;
}