• Stars
    star
    140
  • Rank 255,293 (Top 6 %)
  • Language
    Lua
  • License
    Other
  • Created over 1 year ago
  • Updated 11 months 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,135
star
2

node-gtk

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

web-toolkit

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

kui.nvim

UI neovim framework for kitty
C
180
star
5

todoist.nvim

A todoist extension for neovim
JavaScript
160
star
6

fzy-lua-native

Luajit FFI bindings to FZY
Lua
116
star
7

doom-one.vim

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

winteract.vim

Interactive window mode
Vim Script
69
star
9

react-fast-memo

A faster React.memo()
JavaScript
50
star
10

github-light.vim

Github colorscheme for vim
Vim Script
36
star
11

nvim

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

termrk

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

xedel

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

2d-geometry

Performant & ergonomic 2D geometry in Typescript
TypeScript
26
star
15

searchReplace.vim

Search & Replace, simply & efficiently [neovim only]
Vim Script
26
star
16

lister

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

node-todoist

nodejs implementation of todoist sync API
TypeScript
21
star
18

replace.vim

Replace operator for Vim
Vim Script
20
star
19

equal.operator

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

react-drop-zone

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

vim-exeline

Execute a command on save
Vim Script
11
star
22

node-gtk-template

A node-gtk application template
JavaScript
10
star
23

pp.vim

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

kui-demo.nvim

kui.nvim demo
Lua
8
star
25

babel-plugin-fast-jsx

Inline react jsx calls
JavaScript
8
star
26

solid-base-components

Barely styled components for solidjs.
TypeScript
7
star
27

tree-sitter.vim

JavaScript
5
star
28

node-loompy

Create loompy files with Nodejs
JavaScript
5
star
29

blog-romgrk

MDX
5
star
30

yama-neovim

JavaScript
4
star
31

pencil

High performance & low bundle size 2D canvas drawing library
TypeScript
4
star
32

tree-sitter-grain

C
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

wasm-js

A webassembly javascript interpreter
JavaScript
3
star
36

bioinformatics-parser

Simple nodejs fasta/fastq parser
JavaScript
2
star
37

kyntell.vim

dark colorscheme
Vim Script
2
star
38

keykit

npm module for keyevents etc.
CoffeeScript
2
star
39

git-config

JavaScript
1
star
40

node-fzy

Native fzy binding for nodejs
C
1
star
41

pg_fzy

The fzy function for PostgreSQL
C
1
star
42

ol-resources

Functions & examples for OL related stuff
JavaScript
1
star
43

physic_engine

basic java 2D physic simulation engine
Java
1
star
44

columnMove.vim

Move along the vertical axis
Vim Script
1
star
45

pepiniere

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

zsh

Shell
1
star
47

coffee-nvim

coffeescript host & lib for scripting neovim
CoffeeScript
1
star
48

sqlite-objects

Usable wrappers around SQLite
JavaScript
1
star
49

cv-generator

TypeScript
1
star
50

edcc

JavaScript
1
star
51

dotfiles

Shell
1
star