mirror of
https://github.com/nix-community/nixvim.git
synced 2025-06-21 16:39:00 +02:00
179 lines
4.3 KiB
Nix
179 lines
4.3 KiB
Nix
{
|
|
lib,
|
|
helpers,
|
|
config,
|
|
pkgs,
|
|
...
|
|
}:
|
|
with lib;
|
|
helpers.neovim-plugin.mkNeovimPlugin config {
|
|
name = "octo";
|
|
originalName = "octo.nvim";
|
|
defaultPackage = pkgs.vimPlugins.octo-nvim;
|
|
|
|
maintainers = [ helpers.maintainers.svl ];
|
|
|
|
extraPackages = [ pkgs.gh ];
|
|
|
|
settingsOptions = {
|
|
use_local_fs = helpers.defaultNullOpts.mkBool false ''
|
|
Use local files on right side of reviews.
|
|
'';
|
|
|
|
enable_builtin = helpers.defaultNullOpts.mkBool false ''
|
|
Shows a list of builtin actions when no action is provided.
|
|
'';
|
|
|
|
default_remote =
|
|
helpers.defaultNullOpts.mkListOf types.str
|
|
[
|
|
"upstream"
|
|
"origin"
|
|
]
|
|
''
|
|
Order to try remotes
|
|
'';
|
|
|
|
ssh_aliases = helpers.defaultNullOpts.mkAttrsOf types.str { } ''
|
|
SSH aliases.
|
|
'';
|
|
|
|
picker_config = {
|
|
use_emojis = helpers.defaultNullOpts.mkBool false ''
|
|
Use emojis in picker. Only used by "fzf-lua" picker for now.
|
|
'';
|
|
|
|
mappings =
|
|
let
|
|
mkMappingOption = lhs: desc: {
|
|
lhs = helpers.defaultNullOpts.mkStr lhs ''
|
|
Key to map.
|
|
'';
|
|
|
|
desc = helpers.defaultNullOpts.mkStr desc ''
|
|
Description of the mapping.
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
open_in_browser = mkMappingOption "<C-b>" ''
|
|
Open issue in browser.
|
|
'';
|
|
|
|
copy_url = mkMappingOption "<C-y>" ''
|
|
Copy url to system clipboard.
|
|
'';
|
|
|
|
checkout_pr = mkMappingOption "<C-o>" ''
|
|
Checkout pull request.
|
|
'';
|
|
|
|
merge_pr = mkMappingOption "<C-r>" ''
|
|
Merge pull request.
|
|
'';
|
|
};
|
|
};
|
|
|
|
reaction_viewer_hint_icon = helpers.defaultNullOpts.mkStr "" ''
|
|
Marker for user reactions.
|
|
'';
|
|
|
|
user_icon = helpers.defaultNullOpts.mkStr " " ''
|
|
User Icon.
|
|
'';
|
|
|
|
timeline_marker = helpers.defaultNullOpts.mkStr "" ''
|
|
Timeline marker.
|
|
'';
|
|
|
|
timeline_indent = helpers.defaultNullOpts.mkStr "2" ''
|
|
Timeline indentation.
|
|
'';
|
|
|
|
right_bubble_delimiter = helpers.defaultNullOpts.mkStr "" ''
|
|
Bubble delimiter.
|
|
'';
|
|
|
|
left_bubble_delimiter = helpers.defaultNullOpts.mkStr "" ''
|
|
Bubble delimiter.
|
|
'';
|
|
|
|
github_hostname = helpers.defaultNullOpts.mkStr "" ''
|
|
Github Enterprise host.
|
|
'';
|
|
|
|
snippet_context_lines = helpers.defaultNullOpts.mkInt 4 ''
|
|
Number of lines around commented lines.
|
|
'';
|
|
|
|
gh_env = helpers.defaultNullOpts.mkAttributeSet { } ''
|
|
Extra environment variables to pass on to GitHub CLI, can be a table or function returning a table.
|
|
'';
|
|
|
|
timeout = helpers.defaultNullOpts.mkInt 5000 ''
|
|
Timeout for requests between the remote server.
|
|
'';
|
|
|
|
ui = {
|
|
use_sign_column = helpers.defaultNullOpts.mkBool true ''
|
|
Show "modified" marks on the sign column.
|
|
'';
|
|
};
|
|
|
|
picker =
|
|
helpers.defaultNullOpts.mkEnumFirstDefault
|
|
[
|
|
"telescope"
|
|
"fzf-lua"
|
|
]
|
|
''
|
|
Picker to use.
|
|
'';
|
|
|
|
issues = {
|
|
order_by = {
|
|
field =
|
|
helpers.defaultNullOpts.mkEnumFirstDefault
|
|
[
|
|
"CREATED_AT"
|
|
"COMMENTS"
|
|
"UPDATED_AT"
|
|
]
|
|
''
|
|
See GitHub's [`IssueOrderField`](https://docs.github.com/en/graphql/reference/enums#issueorderfield) documentation.
|
|
'';
|
|
direction =
|
|
helpers.defaultNullOpts.mkEnumFirstDefault
|
|
[
|
|
"DESC"
|
|
"ASC"
|
|
]
|
|
''
|
|
See GitHub's [`OrderDirection`](https://docs.github.com/en/graphql/reference/enums#orderdirection) documentation.
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
|
|
settingsExample = {
|
|
ssh_aliases = {
|
|
"github.com-work" = "github.com";
|
|
};
|
|
|
|
# options not defined
|
|
mappings_disable_default = true;
|
|
mappings = {
|
|
issue.react_heart = "<leader>rh";
|
|
file_panel.select_prev_entry = "[q";
|
|
};
|
|
};
|
|
|
|
extraConfig =
|
|
cfg:
|
|
mkMerge [
|
|
(mkIf (cfg.settings.picker == null || cfg.settings.picker == "telescope") {
|
|
plugins.telescope.enable = mkDefault true;
|
|
})
|
|
(mkIf (cfg.settings.picker == "fzf-lua") { plugins.fzf-lua.enable = mkDefault true; })
|
|
];
|
|
}
|