12

GitHub - Artawower/blamer.el: A git blame plugin for emacs inspired by VS Code's...

 2 years ago
source link: https://github.com/Artawower/blamer.el
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Blamer.el

A git blame plugin for emacs inspired by VS Code’s GitLens plugin and Vim plugin

Preview

Install

Emacs 27.1 is required.

quelpa

(use-package blamer
  :quelpa (blamer :fetcher github :repo "artawower/blamer.el")
  :custom
  (blamer-idle-time 0.3)
  (blamer-min-offset 70)
  :custom-face
  (blamer-face ((t :foreground "#7a88cf"
                    :background nil
                    :height 140
                    :italic t)))
  :config
  (global-blamer-mode 1))
;; packages.el
(package! blamer :recipe (:host github :repo "artawower/blamer.el"))
;; config.el
(use-package blamer
  :defer 20
  :custom
  (blamer-idle-time 0.3)
  (blamer-min-offset 70)
  :custom-face
  (blamer-face ((t :foreground "#7a88cf"
                    :background nil
                    :height 140
                    :italic t)))
  :config
  (global-blamer-mode 1))

Customization

Blamer view

Current style for blame messages, now can be overlay and overlay-right. (setq blamer-view 'overlay)

Template for author name

(setq blamer-author-formatter " ✎ %s ")

Template for datetime

(setq blamer-datetime-formatter "[%s]")

Template for commit message

(setq blamer-commit-formatter "● %s")

All formatters can be nil.

Time before blame showing

(setq blamer-idle-time 0.5)

Minimum offset from start from line

(setq blamer-min-offset 40)

Prettify time

(setq blamer-prettify-time-p t) Will format time line (2 days ago/1 week ago/Yesterday etc)

Blamer type

(setq blamer-type 'both) Can accept

  • =’selected= - blamer will show commit info for every selected line.
  • =’visual= - blamer will show info only about one line.
  • =’both= - works with both states.

Max blamer lines in selected mode

If more then 30 lines will selected, blamer will not try to execute git commands. (setq blamer-max-lines 30)

Message for uncommitted changes

(setq blamer-uncommitted-changes-message "NO COMMITTED")

Max commit message length

If line has length more then this value, text will be truncated (setq blamer-max-commit-message-length 10)

Contribute

Run before push

emacs -batch -l ert -l blamer.el -l test.el -f ert-run-tests-batch-and-exit

Blamer.el plans [15/15]

  • [X] Get necessary information about current line under cursor
  • [X] Get commit info by current hash (if necessary)
  • [X] Get background color if hl-mode is exist and enabled (transparency)
  • [X] Visualize information in special format
  • [X] blamer-mode implementation
  • [X] Write tests for regexps
  • [X] IDLE time before showing
  • [X] Special font for blame.
  • [X] Truncate long commit line
  • [X] Add pretty date format
  • [X] Pretty author name
  • [X] Add support for common line number changed (might be deleted from external source, or evil keys)
  • [X] Add support for global mode
  • [X] Add support for multi line selection
  • [X] Canonical blamer format + templates.

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK