Show Git blame on current line
- Dominant language
- Emacs Lisp
- Stars
- 22.7k
- Forks
- 3.1k
- Avg merge
- 10h 46m
- Merged PRs (30d)
- 4
Description
### Describe your request
It would be awesome if Git blame is shown on the current line. There are two packages to do this:
- [`blamer.el`](https://github.com/Artawower/blamer.el) - A git blame plugin for emacs inspired by VS Code's GitLens plugin. (Already under consideration)
**Pros**:
- Supports tooltip on hover.
- Supports setting minimum column for showing blame.
- Supports showing blame on the right side of window.
**Cons**:
- Makes heavy use of `post-command-hook`, making Emacs slow.
- [`why-this`](https://codeberg.org/akib/emacs-why-this) - Why the current line contains this? (Faster than `blamer.el`, also supports annotation with heat map) (Note: I wrote it after being overwhelmed by the performance of `blamer.el`)
**Pros**:
- Doesn't slowdown Emacs (at least on my Emacs)
- Supports tooltip on hover.
- Supports annotation with heat map.
- Supports setting minimum column for showing blame.
- Supports Git and Mercurial.
- Extensible. (You can write backends to support other VCs)
**Cons**:
- Supports showing blame on the right side of window (maybe implemented in future).
### Briefly explain its use-case
#### [`blamer.el`](https://github.com/Artawower/blamer.el)
`blamer-mode` screencast:

#### [`why-this`](https://codeberg.org/akib/emacs-why-this)
`why-this-mode`:

`why-this-mode` with active region:

`why-this-annotate` heat map:

Contributor guide
Research direction
The issue names no repository files or tests; start by comparing blamer.el and why-this, including their performance, tooltip, placement, and version-control tradeoffs. Done means the selected approach shows Git blame for the current line in Doom Emacs and its integration behavior is verified.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- emacs-lisp, git
- Domain
- developer-experience, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100