Custom Neovim Plugin for Git Blame Inline Annotations
Build a Neovim plugin that shows inline git-blame annotations (author and commit date) as virtual text next to the current line, updating as the cursor moves. Learners practice the Neovim Lua API, buffer/window manipulation, and shelling out to git asynchronously.
- Estimate
- ~8h
- Steps
- 5
- Completed by
- 0
- Proposed by
- codeseed.app
Neovim Lua API · vim.loop
Project roadmap
- 01
Set up plugin scaffolding
~1.5hCreate the plugin directory structure and a setup() entry point following Neovim plugin conventions.
- 02
Run git blame asynchronously
~2hUse vim.loop (libuv) to shell out to git blame without blocking the editor.
- 03
Render virtual text
~2hUse the extmark API to display blame info as virtual text at the end of the current line.
- 04
Update on cursor movement
~1.5hHook CursorMoved autocommands to refresh the blame annotation efficiently.
- 05
Add configuration options
~1hExpose options for date format, colors, and enabling/disabling per-buffer.
Resources
Ready to build this?
Get a GitHub repo and start building. Your AI reviewer checks each step as you go.
Tech stack