• Stars
    star
    144
  • Rank 255,590 (Top 6 %)
  • Language
    Lua
  • License
    Other
  • Created almost 2 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Fuzzy picker for neovim - using kitty graphics protocol

kirby.nvim

Fuzzy picker based on kui.nvim.

Table of contents

multiline singleline

Installation

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' },
  },
},

Usage

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.

Default pickers

Kirby files [directory]

Select files in the (current) directory. Uses fd if available, otherwise git ls-files.

Kirby ctags-current-file

Select ctags for the current file. Requires universal-ctags.

demo

Kirby commands-list

Select a vim command.

demo

Kirby commands-run <command>

Run a vim command.

demo

Kirby howdoi

Copy/paste from stackoverflow. Requires howdoi.

Kirby coc-diagnostics

Diagnostics via coc.nvim.

Kirby coc-workspaces-symbols

Workspace symbols via coc.nvim.

Adding pickers

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.

License

JSON license (MIT license + non-evilness clause)

More Repositories

1

barbar.nvim

The neovim tabline plugin.
Lua
2,297
star
2

node-gtk

GTK+ bindings for NodeJS (via GObject introspection)
C++
494
star
3

web-toolkit

A web UI framework based on GTK's Adwaita theme
JavaScript
210
star
4

kui.nvim

UI neovim framework for kitty
C
185
star
5

todoist.nvim

A todoist extension for neovim
JavaScript
164
star
6

fzy-lua-native

Luajit FFI bindings to FZY
Lua
117
star
7

doom-one.vim

A dark colorschme for vim, ported from doom-emacs' doom-one theme.
Vim Script
104
star
8

color-bits

High-performance javascript color library
TypeScript
89
star
9

winteract.vim

Interactive window mode
Vim Script
69
star
10

react-fast-memo

A faster React.memo()
JavaScript
53
star
11

github-light.vim

Github colorscheme for vim
Vim Script
36
star
12

nvim

local rc files - feel free to explore
Vim Script
35
star
13

2d-geometry

Performant & ergonomic 2D geometry in Typescript
TypeScript
35
star
14

termrk

Terminal for atom, using pty.js & term.js
CoffeeScript
33
star
15

xedel

Keyboard-centric modal code editor, built with nodejs and GTK
JavaScript
26
star
16

searchReplace.vim

Search & Replace, simply & efficiently [neovim only]
Vim Script
25
star
17

lister

An experimental Gtk-based fuzzy-finder (with support for neovim)
JavaScript
22
star
18

node-todoist

nodejs implementation of todoist sync API
TypeScript
21
star
19

replace.vim

Replace operator for Vim
Vim Script
20
star
20

react-drop-zone

Simple, elegant & efficient drop-zone component
JavaScript
17
star
21

equal.operator

A text-object for LHS/RHS of assignment.
Vim Script
16
star
22

node-gtk-template

A node-gtk application template
JavaScript
11
star
23

vim-exeline

Execute a command on save
Vim Script
11
star
24

kui-demo.nvim

kui.nvim demo
Lua
9
star
25

pp.vim

pretty-printer with real colors.
Vim Script
8
star
26

pencil

High performance & low bundle size 2D canvas drawing library
TypeScript
8
star
27

solid-base-components

Barely styled components for solidjs.
TypeScript
7
star
28

babel-plugin-fast-jsx

Inline react jsx calls
JavaScript
7
star
29

blog-romgrk

MDX
6
star
30

tree-sitter.vim

JavaScript
5
star
31

node-loompy

Create loompy files with Nodejs
JavaScript
5
star
32

yama-neovim

JavaScript
4
star
33

lib.kom

Vim short#() libraries for scripting - hi#(), win#(), buf#(), color#()
Vim Script
4
star
34

pxm

Long-running background commands runner
TypeScript
3
star
35

kyntell.vim

dark colorscheme
Vim Script
3
star
36

tree-sitter-grain

C
3
star
37

wasm-js

A webassembly javascript interpreter
JavaScript
3
star
38

aoe4-villager-enforcer

Age of Empires IV training tool
Rust
3
star
39

bioinformatics-parser

Simple nodejs fasta/fastq parser
JavaScript
2
star
40

keykit

npm module for keyevents etc.
CoffeeScript
2
star
41

git-config

JavaScript
1
star
42

node-fzy

Native fzy binding for nodejs
C
1
star
43

pg_fzy

The fzy function for PostgreSQL
C
1
star
44

ol-resources

Functions & examples for OL related stuff
JavaScript
1
star
45

physic_engine

basic java 2D physic simulation engine
Java
1
star
46

columnMove.vim

Move along the vertical axis
Vim Script
1
star
47

pepiniere

Simple PWA that tracks time spent on tasks
JavaScript
1
star
48

zsh

Shell
1
star
49

sqlite-objects

Usable wrappers around SQLite
JavaScript
1
star
50

coffee-nvim

coffeescript host & lib for scripting neovim
CoffeeScript
1
star
51

cv-generator

TypeScript
1
star
52

js-benchmark

JavaScript
1
star
53

edcc

JavaScript
1
star
54

dotfiles

Shell
1
star