blob: b615a1b9f38ce494461e9ad6f3e1c7ab130f8519 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
;;; Code:
;;; Commit
;; commit 6257322d751dc36eaaf509682da164f6aef3ff90
;; Author: Matthew Kosarek <mattkae@protonmail.com>
;; Date: Sat Sep 3 12:01:26 2022 -0400
;; Big upgrade to javascript/typescript to use a lanugage server
;; diff --git a/init.el b/init.el
;; --- a/init.el
;; +++ b/init.el
(make-variable-buffer-local
(defvar vc-annotate-lens-cursor-position 0
"Holds the cursor position from the last run of post-command-hooks."))
(defun do-stuff-if-moved-post-command ()
"Show version control history of the current line in a flash."
(unless (equal (line-number-at-pos) vc-annotate-lens-cursor-position)
(setq vc-annotate-lens-cursor-position (line-number-at-pos)))
(remove-overlays) ; TODO: Only remove the overlay that we last displayed
(let ((git-info (shell-command-to-string (format "git log -u -L%d,%d:%s" vc-annotate-lens-cursor-position vc-annotate-lens-cursor-position buffer-file-name))))
(let (( git-info-split (split-string git-info "\n" )))
(let (
( commit-line (nth 0 git-info-split))
( author-line (nth 1 git-info-split))
( date-line (nth 2 git-info-split)))
(overlay-put (make-overlay (point-at-eol) (+ 3 (point-at-eol))) 'display (format " %s\n" author-line))
)
)
)
)
(define-minor-mode vc-annotate-lens-mode
"Show 'vc-annotate' information when you move to a line."
:lighter " vc-annotate-lens"
)
(add-hook 'vc-annotate-lens-mode-on-hook (lambda () (add-hook 'post-command-hook #'do-stuff-if-moved-post-command)))
(add-hook 'vc-annotate-lens-mode-off-hook (lambda () (remove-hook 'post-command-hook #'do-stuff-if-moved-post-command)))
(provide 'vc-annotate-lens-mode)
;;; vc-annotate-lens-mode.el ends here.
|