mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-24 01:38:40 +02:00
We used to only think of it as the plugin repo's name, but we have been needing to use it for the name of the plugin's packpath location.
216 lines
5.8 KiB
Nix
216 lines
5.8 KiB
Nix
{
|
|
lib,
|
|
helpers,
|
|
...
|
|
}:
|
|
with lib;
|
|
helpers.neovim-plugin.mkNeovimPlugin {
|
|
name = "arrow";
|
|
packPathName = "arrow.nvim";
|
|
package = "arrow-nvim";
|
|
|
|
maintainers = [ maintainers.hmajid2301 ];
|
|
|
|
settingsOptions = {
|
|
show_icons = helpers.defaultNullOpts.mkBool false ''
|
|
If true will show icons.
|
|
'';
|
|
|
|
always_show_path = helpers.defaultNullOpts.mkBool false ''
|
|
If true will show path.
|
|
'';
|
|
|
|
separate_by_branch = helpers.defaultNullOpts.mkBool false ''
|
|
If true will split bookmarks by git branch.
|
|
'';
|
|
|
|
hide_handbook = helpers.defaultNullOpts.mkBool false ''
|
|
If true to hide the shortcuts on menu.
|
|
'';
|
|
|
|
save_path = helpers.defaultNullOpts.mkLuaFn ''
|
|
function()
|
|
return vim.fn.stdpath("cache") .. "/arrow"
|
|
end
|
|
'' "Function used to determine where to save arrow data.";
|
|
|
|
mapping = {
|
|
edit = helpers.defaultNullOpts.mkStr "e" ''
|
|
Mapping to edit bookmarks.
|
|
'';
|
|
|
|
delete_mode = helpers.defaultNullOpts.mkStr "d" ''
|
|
Mapping to go to delete mode, where you can remove bookmarks.
|
|
'';
|
|
|
|
clear_all_items = helpers.defaultNullOpts.mkStr "C" ''
|
|
Mapping to clear all bookmarks.
|
|
'';
|
|
|
|
toggle = helpers.defaultNullOpts.mkStr "s" ''
|
|
Mapping to save if `separate_save_and_remove` is true.
|
|
'';
|
|
|
|
open_vertical = helpers.defaultNullOpts.mkStr "v" ''
|
|
Mapping to open bookmarks in vertical split.
|
|
'';
|
|
|
|
open_horizontal = helpers.defaultNullOpts.mkStr "-" ''
|
|
Mapping to open bookmarks in horizontal split.
|
|
'';
|
|
|
|
quit = helpers.defaultNullOpts.mkStr "q" ''
|
|
Mapping to quit arrow.
|
|
'';
|
|
|
|
remove = helpers.defaultNullOpts.mkStr "x" ''
|
|
Mapping to remove bookmarks. Only used if `separate_save_and_remove` is true.
|
|
'';
|
|
|
|
next_item = helpers.defaultNullOpts.mkStr "]" ''
|
|
Mapping to go to next bookmark.
|
|
'';
|
|
|
|
prev_item = helpers.defaultNullOpts.mkStr "[" ''
|
|
Mapping to go to previous bookmark.
|
|
'';
|
|
};
|
|
|
|
custom_actions = {
|
|
open =
|
|
helpers.defaultNullOpts.mkLuaFn
|
|
''
|
|
function(target_file_name, current_file_name) end
|
|
''
|
|
''
|
|
- `target_file_name`: file selected to be open
|
|
- `current_file_name`: filename from where this was called
|
|
'';
|
|
|
|
split_vertical = helpers.defaultNullOpts.mkLuaFn ''
|
|
function(target_file_name, current_file_name) end
|
|
'' "";
|
|
|
|
split_horizontal = helpers.defaultNullOpts.mkLuaFn ''
|
|
function(target_file_name, current_file_name) end
|
|
'' "";
|
|
};
|
|
|
|
window =
|
|
helpers.defaultNullOpts.mkAttrsOf types.anything
|
|
{
|
|
relative = "editor";
|
|
width = "auto";
|
|
height = "auto";
|
|
row = "auto";
|
|
col = "auto";
|
|
style = "minimal";
|
|
border = "single";
|
|
}
|
|
''
|
|
Controls the appearance and position of an arrow window.
|
|
See `:h nvim_open_win()` for all options.
|
|
'';
|
|
|
|
per_buffer_config = {
|
|
lines = helpers.defaultNullOpts.mkInt 4 ''
|
|
Number of lines on preview.
|
|
'';
|
|
|
|
sort_automatically = helpers.defaultNullOpts.mkBool true ''
|
|
If true will sort buffer marks automatically.
|
|
'';
|
|
|
|
satellite = {
|
|
enable = helpers.defaultNullOpts.mkBool false ''
|
|
If true will display arrow index in scrollbar at every update.
|
|
'';
|
|
|
|
overlap = helpers.defaultNullOpts.mkBool false '''';
|
|
|
|
priority = helpers.defaultNullOpts.mkInt 1000 '''';
|
|
};
|
|
|
|
zindex = helpers.defaultNullOpts.mkInt 50 ''
|
|
Z index of the buffer.
|
|
'';
|
|
};
|
|
|
|
separate_save_and_remove = helpers.defaultNullOpts.mkBool false ''
|
|
If true will remove the toggle and create the save/remove keymaps.
|
|
'';
|
|
|
|
leader_key = helpers.defaultNullOpts.mkStr ";" ''
|
|
The leader key to use for arrow. Will precede all mappings.
|
|
Recommended to be a single character.
|
|
'';
|
|
|
|
save_key = helpers.defaultNullOpts.mkStr "cwd" ''
|
|
What will be used as root to save the bookmarks. Can be also `git_root`.
|
|
'';
|
|
|
|
global_bookmarks = helpers.defaultNullOpts.mkBool false ''
|
|
If true arrow will save files globally (ignores `separate_by_branch`).
|
|
'';
|
|
|
|
index_keys = helpers.defaultNullOpts.mkStr "123456789zxcbnmZXVBNM,afghjklAFGHJKLwrtyuiopWRTYUIOP" ''
|
|
Keys mapped to bookmark index.
|
|
'';
|
|
|
|
full_path_list = helpers.defaultNullOpts.mkListOf types.str [ "update_stuff" ] ''
|
|
Filenames on this list will ALWAYS show the file path too
|
|
'';
|
|
};
|
|
|
|
settingsExample = {
|
|
show_icons = true;
|
|
always_show_path = false;
|
|
separate_by_branch = false;
|
|
hide_handbook = false;
|
|
save_path = ''
|
|
function()
|
|
return vim.fn.stdpath("cache") .. "/arrow"
|
|
end
|
|
'';
|
|
mappings = {
|
|
edit = "e";
|
|
delete_mode = "d";
|
|
clear_all_items = "C";
|
|
toggle = "s";
|
|
open_vertical = "v";
|
|
open_horizontal = "-";
|
|
quit = "q";
|
|
remove = "x";
|
|
next_item = "]";
|
|
prev_item = "[";
|
|
};
|
|
custom_actions = {
|
|
open = "function(target_file_name, current_file_name) end";
|
|
split_vertical = "function(target_file_name, current_file_name) end";
|
|
split_horizontal = "function(target_file_name, current_file_name) end";
|
|
};
|
|
window = {
|
|
width = "auto";
|
|
height = "auto";
|
|
row = "auto";
|
|
col = "auto";
|
|
border = "double";
|
|
};
|
|
per_buffer_config = {
|
|
lines = 4;
|
|
sort_automatically = true;
|
|
satellite = {
|
|
enable = false;
|
|
overlap = true;
|
|
priority = 1000;
|
|
};
|
|
zindex = 10;
|
|
};
|
|
separate_save_and_remove = false;
|
|
leader_key = ";";
|
|
save_key = "cwd";
|
|
global_bookmarks = false;
|
|
index_keys = "123456789zxcbnmZXVBNM,afghjklAFGHJKLwrtyuiopWRTYUIOP";
|
|
full_path_list = [ "update_stuff" ];
|
|
};
|
|
}
|