diff --git a/dotfiles/neovim/lua/my/paq.lua b/dotfiles/neovim/lua/my/paq.lua index 93a7e91..0b8b6bb 100644 --- a/dotfiles/neovim/lua/my/paq.lua +++ b/dotfiles/neovim/lua/my/paq.lua @@ -1,5 +1,6 @@ local M = {} + function M.setup() local paq = require("paq") local themePackages = require("my.theme").deps @@ -49,6 +50,8 @@ function M.setup() "vuki656/package-info.nvim", -- shows latest versions in package.json "stevearc/dressing.nvim", -- better ui I guess "rktjmp/paperplanes.nvim", -- export to pastebin like services + "anuvyklack/hydra.nvim", -- keybinds where you only hit the head once + "jbyuki/venn.nvim", -- draw ascii diagrams -- Git stuff "ruifm/gitlinker.nvim", -- generate permalinks for code diff --git a/dotfiles/neovim/lua/my/plugins/init.lua b/dotfiles/neovim/lua/my/plugins/init.lua index b31f738..2d4d280 100644 --- a/dotfiles/neovim/lua/my/plugins/init.lua +++ b/dotfiles/neovim/lua/my/plugins/init.lua @@ -24,6 +24,7 @@ function M.setup() require("my.plugins.paperplanes").setup() require("my.plugins.neogit").setup() require("my.plugins.telescope").setup() + require("my.plugins.venn").setup() -- require("my.plugins.idris").setup() -- require("which-key").setup() diff --git a/dotfiles/neovim/lua/my/plugins/venn.lua b/dotfiles/neovim/lua/my/plugins/venn.lua new file mode 100644 index 0000000..c86d9aa --- /dev/null +++ b/dotfiles/neovim/lua/my/plugins/venn.lua @@ -0,0 +1,38 @@ +local M = {} +local hint = [[ + Arrow^^^^^^ Select region with + ^ ^ _K_ ^ ^ _f_: surround it with box + _H_ ^ ^ _L_ + ^ ^ _J_ ^ ^ __ +]] + +function M.setup() + local Hydra = require('hydra') + + Hydra({ + name = 'Draw Diagram', + hint = hint, + config = { + color = 'pink', + invoke_on_body = true, + hint = { + border = 'rounded' + }, + on_enter = function() + vim.o.virtualedit = 'all' + end, + }, + mode = 'n', + body = 'v', + heads = { + { 'H', 'h:VBox' }, + { 'J', 'j:VBox' }, + { 'K', 'k:VBox' }, + { 'L', 'l:VBox' }, + { 'f', ':VBox', { mode = 'v' } }, + { '', nil, { exit = true } }, + } + }) +end + +return M