LuaintermediatedevopsAI generated

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

  1. 01

    Set up plugin scaffolding

    ~1.5h

    Create the plugin directory structure and a setup() entry point following Neovim plugin conventions.

  2. 02

    Run git blame asynchronously

    ~2h

    Use vim.loop (libuv) to shell out to git blame without blocking the editor.

  3. 03

    Render virtual text

    ~2h

    Use the extmark API to display blame info as virtual text at the end of the current line.

  4. 04

    Update on cursor movement

    ~1.5h

    Hook CursorMoved autocommands to refresh the blame annotation efficiently.

  5. 05

    Add configuration options

    ~1h

    Expose options for date format, colors, and enabling/disabling per-buffer.

Ready to build this?

Get a GitHub repo and start building. Your AI reviewer checks each step as you go.

~8h · 5 steps

Tech stack

Neovim Lua APIvim.loop