Paul Stemmet
d55773757b
This commit adds wrapper objects around vim.keymap functionality. Bind represents a single key bind, which can be register/2'ed with Neovim. By default, Bind enables noremap and silent (:h map-arguments) by default, as this is almost always what a user wants. BindGroup(s) are DAG collections of child BindGroup(s) inner nodes and Bind leaf nodes. Options are passed down the tree, though they may be overridden by child objects. Together they allow callers to create composable, lazy key bind groupings, that can be instantiated together, while deferring the implementation and activation of such groups. Generally speaking, the big idea is to provide several well known group 'aliases', for example, bind.Global, bind.User or bind.Lsp, and let users override key binds in these groups, while the actual functionality is provider (Bind.action) is opaque to them. |
||
---|---|---|
.. | ||
lua/psoxizsh |