]> code.delx.au - gnu-emacs-elpa/blob - packages/realgud/realgud/debugger/trepan.pl/track-mode.el
3fe2f09bb3750641b439600ce3f9eb803eca489a
[gnu-emacs-elpa] / packages / realgud / realgud / debugger / trepan.pl / track-mode.el
1 ;;; Copyright (C) 2011-2014 Rocky Bernstein <rocky@gnu.org>
2 ;;; Perl trepanning Debugger tracking a comint buffer.
3
4 (eval-when-compile (require 'cl))
5 (require 'load-relative)
6 (require-relative-list '(
7 "../../common/cmds"
8 "../../common/menu"
9 "../../common/track"
10 "../../common/track-mode"
11 )
12 "realgud-")
13 (require-relative-list '("core" "init") "realgud:trepanpl-")
14 (require-relative-list '("../../lang/perl") "realgud-lang-")
15
16 (realgud-track-mode-vars "realgud:trepanpl")
17
18 (declare-function realgud-goto-line-for-pt 'realgud-track-mode)
19 (declare-function realgud-track-mode 'realgud-track-mode)
20 (declare-function realgud-track-mode-setup 'realgud-track-mode)
21 (declare-function realgud:track-mode-hook 'realgud-track-mode)
22 (declare-function realgud:track-set-debugger 'realgud-track-mode)
23 (declare-function realgud-perl-populate-command-keys 'realgud-lang-perl)
24
25
26 (defun realgud:trepanpl-goto-syntax-error-line (pt)
27 "Display the location mentioned in a Syntax error line
28 described by PT."
29 (interactive "d")
30 (realgud-goto-line-for-pt pt "syntax-error"))
31
32 (define-key realgud:trepanpl-track-mode-map
33 (kbd "C-c !s") 'realgud:trepanpl-goto-syntax-error-line)
34
35 (realgud-perl-populate-command-keys realgud:trepanpl-track-mode-map)
36
37 (defun realgud:trepanpl-track-mode-hook()
38 (if realgud:trepanpl-track-mode
39 (progn
40 (use-local-map realgud:trepanpl-track-mode-map)
41 (message "using trepanpl mode map")
42 )
43 (message "trepan.pl track-mode-hook disable called"))
44 )
45
46 (define-minor-mode realgud:trepanpl-track-mode
47 "Minor mode for tracking trepan.pl source locations inside a
48 process shell via realgud. trepan.pl is a Perl debugger see URL
49 `https://metacpan.org/pod/Devel::Trepan'.
50
51 If called interactively with no prefix argument, the mode is
52 toggled. A prefix argument, captured as ARG, enables the mode if
53 the argument is positive, and disables it otherwise.
54 "
55 :init-value nil
56 ;; :lighter " trepanpl" ;; mode-line indicator from realgud-track is sufficient.
57 ;; The minor mode bindings.
58 :global nil
59 :group 'realgud:trepanpl
60 :keymap realgud:trepanpl-track-mode-map
61
62 (realgud:track-set-debugger "trepan.pl")
63 (if realgud:trepanpl-track-mode
64 (progn
65 (realgud-track-mode-setup 't)
66 (realgud:trepanpl-track-mode-hook))
67 (progn
68 (setq realgud-track-mode nil)
69 ))
70 )
71
72 (define-key realgud:trepanpl-short-key-mode-map "T" 'realgud:cmd-backtrace)
73
74 (provide-me "realgud:trepanpl-")