{ 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; } ] ]; } ]; }; }; }; }