]> code.delx.au - gnu-emacs-elpa/blob - packages/realgud/realgud/debugger/trepan/backtrack-mode.el
51a75ce37178812cecf610327ffd576a9306e9c7
[gnu-emacs-elpa] / packages / realgud / realgud / debugger / trepan / backtrack-mode.el
1 ;;; Copyright (C) 2011, 2014 Rocky Bernstein <rocky@gnu.org>
2
3 ;;; Mode for parsing various kinds of backtraces found in Ruby
4
5 (eval-when-compile (require 'cl))
6 (require 'load-relative)
7 (require-relative-list '(
8 "../../common/cmds"
9 "../../common/menu"
10 "../../common/track-mode"
11 "../../common/backtrack-mode"
12 )
13 "realgud-")
14 (require-relative-list '("core" "init") "realgud:trepan-")
15 (require-relative-list '("../../lang/ruby") "realgud-lang-")
16
17 (realgud-backtrack-mode-vars "trepan")
18 (set-keymap-parent trepan-backtrack-mode-map realgud-backtrack-mode-map)
19
20 (declare-function realgud-backtrack-mode 'realgud-common-backtrack-mode)
21 (declare-function realgud-backtrack-set-debugger 'realgud-common-backtrack-mode)
22 (declare-function realgud-goto-line-for-pt 'realgud-common-backtrack-mode)
23 (declare-function realgud:ruby-populate-command-keys 'realgud-lang-ruby)
24
25 (defun realgud:trepan-goto-control-frame-line (pt)
26 "Display the location mentioned by a control-frame line
27 described by PT."
28 (interactive "d")
29 (realgud-goto-line-for-pt pt "control-frame"))
30
31 (realgud:ruby-populate-command-keys trepan-backtrack-mode-map)
32 (define-key trepan-backtrack-mode-map
33 (kbd "C-c !c") 'realgud:trepan-goto-control-frame-line)
34
35 (define-minor-mode trepan-backtrack-mode
36 "Minor mode for tracking ruby debugging inside a file which may not have process shell."
37 :init-value nil
38 ;; :lighter " trepan" ;; mode-line indicator from realgud-track is sufficient.
39 ;; The minor mode bindings.
40 :global nil
41 :group 'realgud:trepan
42 :keymap trepan-backtrack-mode-map
43
44 (realgud-backtrack-set-debugger "trepan")
45 (if trepan-backtrack-mode
46 (progn
47 (realgud-backtrack-mode 't)
48 (run-mode-hooks (intern (trepan-backtrack-mode-hook))))
49 (progn
50 (realgud-backtrack-mode nil)
51 ))
52 )
53
54 (defun trepan-backtrack-mode-hook()
55 (if trepan-backtrack-mode
56 (progn
57 (use-local-map trepan-backtrack-mode-map)
58 (message "using trepan mode map")
59 )
60 (message "trepan backtrack-mode-hook disable called"))
61 )
62
63 (provide-me "realgud:trepan-")