nix-community.nixvim/plugins/by-name/inc-rename/default.nix
Johan Larsson 592e9eaff0 plugins/inc-rename: convert to mkNeovimPlugin and add option
Add example

Co-authored-by: Gaétan Lepage
<33058747+GaetanLepage@users.noreply.github.com>

Add example to test as well
2025-01-08 21:58:30 +00:00

69 lines
2 KiB
Nix

{ lib, ... }:
let
inherit (lib) types;
inherit (lib.nixvim) defaultNullOpts;
in
lib.nixvim.plugins.mkNeovimPlugin {
name = "inc-rename";
moduleName = "inc_rename";
packPathName = "inc-rename.nvim";
package = "inc-rename-nvim";
description = ''
A small Neovim plugin that provides a command for LSP renaming with
immediate visual feedback thanks to Neovim's command preview feature.
'';
maintainers = [ lib.maintainers.jolars ];
# TODO: introduced 2025-01-08: remove after 25.05
optionsRenamedToSettings = [
"cmdName"
"hlGroup"
"previewEmptyName"
"showMessage"
"inputBufferType"
"postHook"
];
settingsOptions = {
cmd_name = defaultNullOpts.mkStr "IncRename" "The name of the command.";
hl_group = defaultNullOpts.mkStr "Substitute" ''
The highlight group used for highlighting the identifier's new name.
'';
preview_empty_name = defaultNullOpts.mkBool false ''
Whether an empty new name should be previewed; if false the command
preview will be cancelled instead.
'';
show_message = defaultNullOpts.mkBool true ''
Whether to display a `Renamed m instances in n files` message after a rename operation.
'';
save_in_cmdline_history = defaultNullOpts.mkBool true ''
Whether to save the `IncRename` command in the commandline history. Set to
false to prevent issues with navigating to older entries that may arise due to
the behavior of command preview).
'';
input_buffer_type = defaultNullOpts.mkNullable (types.enum [ "dressing" ]) null ''
The type of the external input buffer to use.
'';
post_hook = defaultNullOpts.mkRaw null ''
Callback to run after renaming, receives the result table (from LSP
handler) as an argument.
'';
};
settingsExample = {
input_buffer_type = "dressing";
preview_empty_name = false;
show_message.__raw = ''
function(msg)
vim.notify(msg, vim.log.levels.INFO, { title = "Rename" })
end
'';
};
}