66; ; Author: Shen, Jen-Chieh <[email protected] >77; ; Description: Preview line when executing `goto-line` command.
88; ; Keyword: line navigation
9- ; ; Version: 0.0.3
9+ ; ; Version: 0.0.4
1010; ; Package-Requires: ((emacs "25"))
1111; ; URL: https://github.com/jcs090218/goto-line-preview
1212
4141 :link '(url-link :tag " Repository" " https://github.com/jcs090218/goto-line-preview" ))
4242
4343
44- (defvar goto-line-preview-prev-buffer nil
45- " Record down the previous buffer before we do `goto-line-preview-goto-line' command." )
44+ (defvar goto-line-preview-prev-window nil
45+ " Record down the previous window before we do `goto-line-preview-goto-line' command." )
4646
4747(defvar goto-line-preview-prev-line-num nil
4848 " Record down the previous line number before we do `goto-line-preview-goto-line' command." )
4949
50+ (defcustom goto-line-preview-before-hook nil
51+ " Hooks run before `goto-line-preview' is run."
52+ :group 'goto-line-preview
53+ :type 'hook )
54+
55+ (defcustom goto-line-preview-after-hook nil
56+ " Hooks run after `goto-line-preview' is run."
57+ :group 'goto-line-preview
58+ :type 'hook )
59+
5060
5161(defun goto-line-preview-do-preview ()
5262 " Do the goto line preview action."
5363 (save-selected-window
54- (when goto-line-preview-prev-buffer
64+ (when goto-line-preview-prev-window
5565 (let ((line-num-str (thing-at-point 'line )))
5666
57- (switch-to-buffer goto-line-preview-prev-buffer )
67+ (select-window goto-line-preview-prev-window )
5868
5969 (if line-num-str
6070 (let ((line-num (string-to-number line-num-str)))
6676 " Do goto line.
6777LINE-NUM : Target line number to navigate to."
6878 (save-selected-window
69- (switch-to-buffer goto-line-preview-prev-buffer )
79+ (select-window goto-line-preview-prev-window )
7080 (goto-char (point-min ))
7181 (forward-line (1- line-num))))
7282
@@ -79,12 +89,14 @@ LINE-NUM : Target line number to navigate to."
7989 (let ((window (selected-window ))
8090 (window-point (window-point ))
8191 jumped)
92+ (run-hooks 'goto-line-preview-before-hook )
8293 (unwind-protect
83- (let ((goto-line-preview-prev-buffer ( buffer-name ))
94+ (let ((goto-line-preview-prev-window ( selected-window ))
8495 (goto-line-preview-prev-line-num (line-number-at-pos )))
8596 (setq jumped (read-number " Goto line: " )))
8697 (unless jumped
87- (set-window-point window window-point)))))
98+ (set-window-point window window-point))
99+ (run-hooks 'goto-line-preview-after-hook ))))
88100
89101;;;### autoload
90102(define-obsolete-function-alias 'goto-line-preview-goto-line 'goto-line-preview )
0 commit comments