• Stars
    star
    116
  • Rank 296,839 (Top 6 %)
  • Language
    Lua
  • Created over 3 years ago
  • Updated 5 months ago

Reviews

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

Repository Details

Luajit FFI bindings to FZY

fzy-lua-native

Luajit FFI bindings to FZY.

Building

make

Running

luajit benchmark.lua

Results:

Lines: 100000

Native:
 -> Total: 34130
 -> Time:  69.418 ms
Original:
 -> Total: 34130
 -> Time:  835.683 ms

Notes

The C version of fzy in that repo contains 2 differences with the original:

  • the functions take a is_case_sensitive additional parameters that does what you think. It's a parameter rather than computed in the function because for our use-case, you want to compute is_case_sensitive once for needle, instead of on each iteration of the loop.
  • match_positions uses uint32_t for positions, because size_t (uint64_t) doesn't map well to lua types.

Usage

The fzy algorithm requires that you call fzy.has_match(string, needle) to prefilter all your matches. Only after that is done you can call the other functions such as fzy.positions(string, needle).

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

kirby.nvim

Fuzzy picker for neovim - using kitty graphics protocol
Lua
140
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