local M = { "jbyuki/venn.nvim", -- draw ascii diagrams dependencies = { "anuvyklack/hydra.nvim", }, keys = { "V" }, } local venn_hint_old = [[ ^^^Draw arrow^^^ Select region with ^ ^ _K_ ^ ^ _f_: surround it with box _H_ ^ ^ _L_ ^ ^ _J_ ^ ^ __ ]] local H = require("my.plugins.hydra").hint local venn_hint = H.concat_many_h({ H.add_title("Draw arrows", H.directional("H", "J", "K", "L", 3)), H.add_title( "Actions", H.concat_many_w({ H.concat_h("", ": select region"), H.concat_h(H.pad_right(H.highlight("f"), 5), ": surround with box"), H.concat_h(H.pad_right(H.highlight(""), 5), ": quit"), }, { justify = "left" }) ), }, 3).value function M.config() local Hydra = require("hydra") Hydra({ name = "Draw Diagram", hint = venn_hint, config = { color = "pink", invoke_on_body = true, hint = { border = "single", }, on_enter = function() vim.o.virtualedit = "all" end, }, mode = "n", desc = "[V]enn mode", body = "V", heads = { { "H", "h:VBox" }, { "J", "j:VBox" }, { "K", "k:VBox" }, { "L", "l:VBox" }, { "f", ":VBox", { mode = "v" } }, { "", nil, { exit = true } }, }, }) end function M.init() require("which-key").register({ ["V"] = { name = "[V]enn mode" }, }) end return M