]> code.delx.au - gnu-emacs-elpa/blob - packages/realgud/realgud/common/follow.el
Add 'packages/realgud/' from commit 'd811316e6a0f4eeee8a1347f504c196c86baa2cb'
[gnu-emacs-elpa] / packages / realgud / realgud / common / follow.el
1 ;;; Copyright (C) 2015 Rocky Bernstein <rocky@gnu.org>
2 ;;; Follows or goto's something
3 (require 'load-relative)
4
5 (declare-function realgud:cmd-frame 'realgud-cmds)
6
7 (defun realgud:follow-mark(mark)
8 (when (markerp mark)
9 (let ((buffer (marker-buffer mark)))
10 (set-buffer buffer)
11 (set-window-point (display-buffer buffer) mark)
12 (goto-char mark)
13 )))
14
15
16 (defun realgud:follow(pos)
17 (interactive "%d")
18 (let* ((mark (get-text-property pos 'mark))
19 (filename (get-text-property pos 'file))
20 (frame-num (get-text-property pos 'frame-num))
21 )
22 (cond ((markerp mark) (realgud:follow-mark mark) 't)
23 ((stringp filename)
24 (find-file-other-window filename))
25 ((numberp frame-num) (realgud:cmd-frame frame-num))
26 ('t (message "No location property found here")))
27 ))
28
29 (defun realgud:follow-point()
30 (interactive "")
31 (realgud:follow (point)))
32
33 (defun realgud:follow-event(event)
34 (interactive "e")
35 (realgud:follow (posn-point (event-end event))))
36
37 (provide-me "realgud-")