NORMAL ~/wkd/p/recommender :set skin=modern utf-8

recommender.nvim

Finds the repetition in your code and offers to do something about it. It reads a buffer — or a wider scope — for dotted chains repeated often enough to be worth aliasing, and puts the suggestions in a float you can act on without leaving it. Pure Neovim, no external tooling.

status
beta — Beta stage — active development. This repository is past its first shape and in active use, but the surface is not frozen: breaking changes are still possible. Pin a commit or tag if you depend on it.
category
Debug & inspect
neovim
0.9+
repo
github.com/StefanBartl/recommender.nvim
commits
84
help
:help recommender

demo

recorded with VHS from demos/recommender.tape in a clean Neovim — re-recorded weekly
what is shown when
  1. :Recommender - chains repeated in this buffer, and the alias for each
  2. j and Enter - pick a suggestion, insert its alias
  3. :Recommender 2 - a lower threshold finds more

install

{
  "StefanBartl/recommender.nvim",
  opts = {},
}

docs/

git log

  1. docs link back to the wkd family site
  2. ci bump leafo/gh-actions-lua and gh-actions-luarocks off Node 20
  3. ci bump JohnnyMorganz/stylua-action to v5 (Node-20 deprecation)
  4. docs TESTS: align run.lua header examples with the ci.yml -n/-i NONE invocation
  5. ci bump the failure-log upload to actions/upload-artifact@v7 (Node 24)
  6. ci add job timeouts, failure log artifacts, swap/shada-free nvim runs, pinned deps
  7. docs remove emoji and bold-as-heading from docs (LUA-54)
  8. fix config: degrade invalid threshold/cwd_max_files/blacklist/custom_aliases/cwd_ignore (ERR-22)
  9. fix analyzers/treesitter: distinguish an unparseable buffer from an empty one
  10. docs recommender.txt: sync the vim help with this round's fixes
  11. docs README: ui.nvim is a required dependency, not a soft one
  12. fix init: re-merge config on a repeat setup() instead of a silent no-op

keys

j / k
next / previous line
gg / G
first / last line
⏎
open the line under the cursor
/
search the plugins
:
command line — Tab completes
:help x
vimdoc of a plugin (:e x = plugin page)
:ls · :log · :stack
plugin list · activity stream · dependency graph
:colo x
colorscheme
:set skin=
modern | tui
?
this help
esc
close