@@ -718,19 +718,56 @@ Disable traces, load buffer, enable traces, clear log."
718
718
(setq paths (cdr paths)))
719
719
(car paths))))
720
720
721
- ;;;### autoload
722
- (defun sayid-buffer-nav-from-point ()
723
- " Navigate from sayid buffer to function source."
721
+ (defun sayid-buffer-file-at-point ()
722
+ " Return file path for function at point in sayid buffer."
724
723
(interactive )
725
724
(let* ((file (get-text-property (point ) 'src-file ))
726
- (line (get-text-property (point ) 'src-line ))
727
725
(xfile (sayid-find-existing-file file)))
728
726
(if xfile
729
- (progn
730
- (pop-to-buffer (find-file-noselect xfile))
731
- (goto-char (point-min ))
732
- (forward-line (- line 1 )))
733
- (message (concat " File not found: " file)))))
727
+ xfile
728
+ (user-error (concat " File not found: " file)))))
729
+
730
+ (defun sayid-buffer-line-at-point ()
731
+ " Return line number for function at point in sayid buffer."
732
+ (get-text-property (point ) 'src-line ))
733
+
734
+ (defun sayid-buffer--source-buffer-at-point ()
735
+ " Fetch buffer showing function currently under point in sayid buffer."
736
+ (let ((line (sayid-buffer-line-at-point))
737
+ (file (sayid-buffer-file-at-point)))
738
+ (when file
739
+ (save-excursion
740
+ (switch-to-buffer
741
+ (find-file-noselect file))
742
+ (goto-char (point-min ))
743
+ (forward-line (- line 1 ))
744
+ (current-buffer )))))
745
+
746
+ (defun sayid-buffer--buffer-display-fn (buffer )
747
+ " Default function which sayid uses to display BUFFER."
748
+ (display-buffer
749
+ buffer
750
+ '((display-buffer-use-some-window . ((inhibit-same-window . t ))))))
751
+
752
+ ;;;### autoload
753
+ (defun sayid-buffer-nav-from-point ()
754
+ " Navigate from sayid buffer to function source."
755
+ (interactive )
756
+ (pop-to-buffer (sayid-buffer--source-buffer-at-point)))
757
+
758
+ ;;;### autoload
759
+ (defun sayid-buffer-follow-next ()
760
+ " Navigate from sayid buffer to function source."
761
+ (interactive )
762
+ (sayid-buffer-nav-to-next)
763
+ (sayid-buffer--buffer-display-fn (sayid-buffer--source-buffer-at-point)))
764
+
765
+ ;;;### autoload
766
+ (defun sayid-buffer-follow-prev ()
767
+ " Navigate from sayid buffer to function source."
768
+ (interactive )
769
+ (sayid-buffer-nav-to-prev)
770
+ (sayid-buffer--buffer-display-fn (sayid-buffer--source-buffer-at-point)))
734
771
735
772
;;;### autoload
736
773
(defun sayid-buffer-nav-to-prev ()
0 commit comments