Why the current line contains this?
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Akib Azmain Turja 4552587fd4
Determine line width correctly
4 weeks ago
images Update screenshots 6 months ago
COPYING Add COPYING 6 months ago
README.org Use faces instead of variables for colors 3 months ago
why-this.el Determine line width correctly 4 weeks ago


why-this - Why is this line here? Ask version control

why-this shows why the current line was changed on the right side of line. It can also show editing history with heat map.


/akib/emacs-why-this/src/branch/master/images/blame.png Blame on the right side of current line.

/akib/emacs-why-this/src/branch/master/images/blame-region.png Blame on the right side of each line in region.

/akib/emacs-why-this/src/branch/master/images/annotate.png Editing history with heat map.



M-x package-refresh-contents and M-x package-install RET why-this.


Do M-x quelpa RET why-this, Quelpa should get the recipe from MELPA and install it.


 '(why-this :type git
            :repo "https://codeberg.org/akib/emacs-why-this.git"))

Supported version control systems

Current only two version control systems are supported:

  • Git
  • Mercurial (note: changes must be saved to be shown)


Type M-x why-this-mode to enable showing blame.

Type M-x why-this to show blame on echo area.

Type M-x why-this-annotate to show editing history on a dedicated buffer.


Put the following in your init file to enable why-this-mode in every possible buffer:


Note: why-this-mode won't be enabled on unsupported buffer.

Output by why-this-annotate may be hard to read depending on the theme. Put the following in your init file to change the colors:

  • For dark theme users:

    (set-face-background 'why-this-annotate-heat-map-cold "#203448")
    (set-face-background 'why-this-annotate-heat-map-warm "#382f27")
  • For light theme users:

    (set-face-background 'why-this-annotate-heat-map-cold "#dde3f4")
    (set-face-background 'why-this-annotate-heat-map-warm "#f0e0d4")

To disable the heat map:

(setq why-this-annotate-enable-heat-map nil)

Hovering on the message shows a tooltip, to disable it:

(setq why-this-enable-tooltip nil)

To see all user options M-x customize-group RET why-this.