{ empty = { plugins.hydra.enable = true; }; defaults = { plugins.hydra = { enable = false; settings = { debug = false; exit = false; foreign_keys = null; color = "red"; buffer = null; invoke_on_body = false; desc = null; on_enter = null; on_exit = null; on_key = null; timeout = false; hint = { show_name = true; position = "bottom"; offset = 0; }; }; }; }; example = { plugins = { # This example turns out to use gitsigns gitsigns.enable = true; hydra = { enable = false; settings = { exit = false; foreign_keys = "run"; color = "red"; buffer = true; invoke_on_body = false; desc = null; on_enter = '' function() print('hello') end ''; timeout = 5000; hint = false; }; hydras = [ { name = "git"; hint.__raw = '' [[ _J_: next hunk _s_: stage hunk _d_: show deleted _b_: blame line _K_: prev hunk _u_: undo stage hunk _p_: preview hunk _B_: blame show full ^ ^ _S_: stage buffer ^ ^ _/_: show base file ^ ^ ^ __: Neogit _q_: exit ]] ''; config = { color = "pink"; invoke_on_body = true; hint = { position = "bottom"; }; on_enter = '' function() vim.bo.modifiable = false gitsigns.toggle_signs(true) gitsigns.toggle_linehl(true) end ''; on_exit = '' function() gitsigns.toggle_signs(false) gitsigns.toggle_linehl(false) gitsigns.toggle_deleted(false) vim.cmd("echo") -- clear the echo area end ''; }; mode = [ "n" "x" ]; body = "g"; heads = [ [ "J" { __raw = '' function() if vim.wo.diff then return "]c" end vim.schedule(function() gitsigns.next_hunk() end) return "" end ''; } { expr = true; } ] [ "K" { __raw = '' function() if vim.wo.diff then return "[c" end vim.schedule(function() gitsigns.prev_hunk() end) return "" end ''; } { expr = true; } ] [ "s" ":Gitsigns stage_hunk" { silent = true; } ] [ "u" { __raw = "require('gitsigns').undo_stage_hunk"; } ] [ "S" { __raw = "require('gitsigns').stage_buffer"; } ] [ "p" { __raw = "require('gitsigns').preview_hunk"; } ] [ "d" { __raw = "require('gitsigns').toggle_deleted"; } { nowait = true; } ] [ "b" { __raw = "require('gitsigns').blame_line"; } ] [ "B" { __raw = '' function() gitsigns.blame_line({ full = true }) end, ''; } ] [ "/" { __raw = "require('gitsigns').show"; } { exit = true; } ] [ "" "Neogit" { exit = true; } ] [ "q" null { exit = true; nowait = true; } ] ]; } ]; }; }; }; }