@@ -718,19 +718,56 @@ Disable traces, load buffer, enable traces, clear log."
718718 (setq paths (cdr paths)))
719719 (car paths))))
720720
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."
724723 (interactive )
725724 (let* ((file (get-text-property (point ) 'src-file ))
726- (line (get-text-property (point ) 'src-line ))
727725 (xfile (sayid-find-existing-file file)))
728726 (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)))
734771
735772;;;### autoload
736773(defun sayid-buffer-nav-to-prev ()
0 commit comments