finds.dev← search

// the find

Shougo/denite.nvim

★ 2,055 · Python · NOASSERTION · updated Mar 2024

:dragon: Dark powered asynchronous unite all interfaces for Neovim/Vim8

Denite is a generic fuzzy-finder/picker framework for Neovim and Vim 8, built on Python 3 via the remote plugin API. It replaces the older unite.vim with an async architecture that offloads heavy work to a Python subprocess. Development has officially stopped — the author has moved to ddu.vim.

The source/filter/kind architecture is genuinely well-designed: sources produce candidates, matchers filter them, sorters rank them, and kinds define what 'open' means per item type. That separation makes writing custom sources straightforward. The async subprocess model was ahead of its time — filtering large file trees without blocking the editor was not a given in 2017. The test suite uses both Python (pytest) and Vimscript (themis) to cover both sides of the plugin boundary, which is more than most Vim plugins bother with.

It's dead. The README says so plainly, and the last meaningful commit was in 2024 for bug fixes only. Installing it today means you're betting on a frozen codebase with Python/Neovim API compatibility debt accumulating. The setup burden is real — pynvim, msgpack, nvim-yarp for Vim8, and UpdateRemotePlugins ritual; one wrong pip version and you get silent failures. No default keybindings means every new user writes 30 lines of config just to open a file. And with telescope.nvim and fzf-lua offering native Lua implementations with zero Python dependencies, the performance argument that justified the complexity no longer holds.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →