Fuzzy picker based on kui.nvim.
This plugin depends on the ones listed below. If you're using lazy.nvim, you can use the config below. It also has the following hard dependencies that you need to ensure.
- POSIX-compliant enough OS
- libcairo
- terminal with kitty graphics protocol support
{ 'romgrk/kirby.nvim', dependencies = {
{ 'romgrk/fzy-lua-native', build = 'make install' },
{ 'romgrk/kui.nvim' },
{ 'nvim-tree/nvim-web-devicons' },
{ 'nvim-lua/plenary.nvim' },
},
},
This plugin maps <C-p>
to opening the file picker, unless that key is already mapped.
Use the :Kirby [picker-id]
command to open a picker.
Select files in the (current) directory. Uses fd
if available, otherwise git ls-files
.
Select ctags for the current file. Requires universal-ctags
.
Select a vim command.
Run a vim command.
Copy/paste from stackoverflow. Requires howdoi.
Diagnostics via coc.nvim.
Workspace symbols via coc.nvim.
NOTE: Expect breaking changes from time to time, this is still evolving.
A few examples from my own config:
local kirby = require('kirby')
kirby.register({
id = 'git-branch',
name = 'Git checkout',
values = function() return vim.fn['fugitive#CompleteObject']('', ' ', '') end,
onAccept = 'Git checkout',
})
kirby.register({
id = 'session',
name = 'Open session',
values = function() return vim.fn['xolox#session#complete_names']('', 'OpenSession ', 0) end,
onAccept = 'OpenSession',
})
kirby.register({
id = 'note',
name = 'Open note',
values = function() return vim.fn['xolox#notes#cmd_complete']('', 'Note ', 0) end,
onAccept = 'Note',
})
See types.ts for configuration options.
JSON license (MIT license + non-evilness clause)