[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master 333a946 104/215: Merge pull request #74 from rocky/ipdb
From: |
Rocky Bernstein |
Subject: |
[elpa] master 333a946 104/215: Merge pull request #74 from rocky/ipdb |
Date: |
Sat, 30 Jul 2016 14:48:57 +0000 (UTC) |
branch: master
commit 333a9463ba6c287311ae3b8a1110ff8c015b734f
Merge: 74ee75c ba3b013
Author: R. Bernstein <address@hidden>
Commit: R. Bernstein <address@hidden>
Merge pull request #74 from rocky/ipdb
Add ipdb support and remove some of the older debuggers
---
THANKS | 2 +
configure.ac | 5 +-
realgud.el | 9 +-
realgud/debugger/Makefile.am | 6 +-
realgud/debugger/{pydb => ipdb}/Makefile.am | 0
realgud/debugger/ipdb/core.el | 269 +++++++++++++++++++++++++
realgud/debugger/{pydb => ipdb}/init.el | 63 ++++--
realgud/debugger/ipdb/ipdb.el | 118 +++++++++++
realgud/debugger/{pydb => ipdb}/track-mode.el | 46 +++--
realgud/debugger/pydb/core.el | 160 ---------------
realgud/debugger/pydb/pydb.el | 63 ------
realgud/debugger/pydbgr/Makefile.am | 1 -
realgud/debugger/pydbgr/core.el | 172 ----------------
realgud/debugger/pydbgr/init.el | 99 ---------
realgud/debugger/pydbgr/pydbgr.el | 64 ------
realgud/debugger/pydbgr/track-mode.el | 60 ------
realgud/debugger/trepan8/Makefile.am | 1 -
realgud/debugger/trepan8/core.el | 183 -----------------
realgud/debugger/trepan8/init.el | 159 ---------------
realgud/debugger/trepan8/track-mode.el | 74 -------
realgud/debugger/trepan8/trepan8.el | 78 -------
realgud/debugger/trepanx/Makefile.am | 1 -
realgud/debugger/trepanx/core.el | 166 ---------------
realgud/debugger/trepanx/init.el | 143 -------------
realgud/debugger/trepanx/track-mode.el | 77 -------
realgud/debugger/trepanx/trepanx.el | 64 ------
test/test-bt-pydb.el | 44 ----
test/test-bt-pydbgr.el | 43 ----
test/test-bt-trepanx.el | 49 -----
test/test-ipdb.el | 39 ++++
test/test-loc-regexp-trepanx.el | 68 -------
test/test-pydb.el | 18 --
test/test-pydbgr.el | 38 ----
test/test-realgud.el | 2 +-
test/test-regexp-ipdb.el | 105 ++++++++++
test/test-regexp-pydb.el | 97 ---------
test/test-regexp-pydbgr.el | 76 -------
test/test-regexp-trepanx.el | 72 -------
38 files changed, 608 insertions(+), 2126 deletions(-)
diff --git a/THANKS b/THANKS
index fba09c8..bacb71c 100644
--- a/THANKS
+++ b/THANKS
@@ -7,3 +7,5 @@ Nick Roberts - We used some of the code for the fringe icons
from gdb-mi.
NYC Emacs Meetup and Nicolas Dudebout - straightening me out on
set-keymap-parent
Kilian Kilger - gdb fixes
+
+Sean Farley - ipdb support
diff --git a/configure.ac b/configure.ac
index 0feab78..e616ad6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -67,13 +67,12 @@ AC_CONFIG_FILES([Makefile \
realgud/debugger/bashdb/Makefile \
realgud/debugger/gdb/Makefile \
realgud/debugger/gub/Makefile \
+ realgud/debugger/ipdb/Makefile \
realgud/debugger/jdb/Makefile \
realgud/debugger/kshdb/Makefile \
realgud/debugger/nodejs/Makefile \
realgud/debugger/perldb/Makefile \
realgud/debugger/pdb/Makefile \
- realgud/debugger/pydb/Makefile \
- realgud/debugger/pydbgr/Makefile \
realgud/debugger/rdebug/Makefile \
realgud/debugger/remake/Makefile \
realgud/debugger/trepan/Makefile \
@@ -81,8 +80,6 @@ AC_CONFIG_FILES([Makefile \
realgud/debugger/trepan3k/Makefile \
realgud/debugger/trepan.pl/Makefile \
realgud/debugger/trepanjs/Makefile \
- realgud/debugger/trepanx/Makefile \
- realgud/debugger/trepan8/Makefile \
realgud/debugger/zshdb/Makefile \
realgud/lang/Makefile \
test/Makefile \
diff --git a/realgud.el b/realgud.el
index 0e7eb6f..6430c5c 100644
--- a/realgud.el
+++ b/realgud.el
@@ -57,6 +57,7 @@
;; kshdb kshdb Korn Shell 93u+
;; nodejs nodejs node.js javascript debugger
;; pdb realgud:pdb stock C Python debugger
+;; ipdb realgud:ipdb iPython debugger
;; perldb realgud:perldb stock Perl5 debugger
;; pydb pydb slighly enhanced pdb for Python 2.x
;; pydbgr pydbgr obsolete trepanning debugger for Python 2.x
@@ -111,13 +112,12 @@
"./realgud/debugger/bashdb/bashdb"
"./realgud/debugger/gdb/gdb"
"./realgud/debugger/gub/gub"
+ "./realgud/debugger/ipdb/ipdb"
"./realgud/debugger/jdb/jdb"
"./realgud/debugger/kshdb/kshdb"
"./realgud/debugger/nodejs/nodejs"
"./realgud/debugger/pdb/pdb"
"./realgud/debugger/perldb/perldb"
- "./realgud/debugger/pydb/pydb"
- "./realgud/debugger/pydbgr/pydbgr"
"./realgud/debugger/rdebug/rdebug"
"./realgud/debugger/remake/remake"
"./realgud/debugger/trepan/trepan"
@@ -125,8 +125,6 @@
"./realgud/debugger/trepan.pl/trepanpl"
"./realgud/debugger/trepan2/trepan2"
"./realgud/debugger/trepan3k/trepan3k"
- "./realgud/debugger/trepanx/trepanx"
- "./realgud/debugger/trepan8/trepan8"
"./realgud/debugger/zshdb/zshdb"
) "realgud-")
)
@@ -154,9 +152,6 @@ like 'pydbgr'."
(string-prefix-p feature-str "nodejs"))
(setq result (cons feature-str result)))
((eq 't
- (string-prefix-p feature-str "pydbgr"))
- (setq result (cons feature-str result)))
- ((eq 't
;; No trailing '-' to get a plain "trepan".
(string-prefix-p feature-str "trepan"))
(setq result (cons feature-str result)))
diff --git a/realgud/debugger/Makefile.am b/realgud/debugger/Makefile.am
index 69ae438..5f7a769 100644
--- a/realgud/debugger/Makefile.am
+++ b/realgud/debugger/Makefile.am
@@ -1,7 +1,7 @@
SUBDIRS = \
- bashdb gdb gub jdb kshdb nodejs \
- pdb perldb pydb pydbgr rdebug remake \
- trepan trepan2 trepan3k trepan.pl trepanjs trepanx trepan8 \
+ bashdb gdb gub ipdb jdb kshdb nodejs \
+ pdb perldb rdebug remake \
+ trepan trepan2 trepan3k trepan.pl trepanjs \
zshdb
EXTRA_DIST = common.mk
diff --git a/realgud/debugger/pydb/Makefile.am
b/realgud/debugger/ipdb/Makefile.am
similarity index 100%
rename from realgud/debugger/pydb/Makefile.am
rename to realgud/debugger/ipdb/Makefile.am
diff --git a/realgud/debugger/ipdb/core.el b/realgud/debugger/ipdb/core.el
new file mode 100644
index 0000000..43a42c5
--- /dev/null
+++ b/realgud/debugger/ipdb/core.el
@@ -0,0 +1,269 @@
+;; Copyright (C) 2016 Free Software Foundation, Inc
+
+;; Author: Rocky Bernstein <address@hidden>
+;; Author: Sean Farley <address@hidden>
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;;; Copyright (C) 2014-2015 Rocky Bernstein <address@hidden>
+
+(eval-when-compile (require 'cl))
+
+(require 'load-relative)
+(require-relative-list '("../../common/track"
+ "../../common/core"
+ "../../common/lang")
+ "realgud-")
+(require-relative-list '("init") "realgud:ipdb-")
+
+
+(declare-function realgud-lang-mode? 'realgud-lang)
+(declare-function realgud-parse-command-arg 'realgud-core)
+(declare-function realgud-query-cmdline 'realgud-core)
+(declare-function realgud-suggest-invocation 'realgud-core)
+
+;; FIXME: I think the following could be generalized and moved to
+;; realgud-... probably via a macro.
+(defvar realgud:ipdb-minibuffer-history nil
+ "minibuffer history list for the command `ipdb'.")
+
+(defvar realgud:ipdb-remote-minibuffer-history nil
+ "minibuffer history list for the command `ipdb-remote'.")
+
+(easy-mmode-defmap ipdb-minibuffer-local-map
+ '(("\C-i" . comint-dynamic-complete-filename))
+ "Keymap for minibuffer prompting of gud startup command."
+ :inherit minibuffer-local-map)
+
+;; FIXME: I think this code and the keymaps and history
+;; variable chould be generalized, perhaps via a macro.
+(defun ipdb-query-cmdline (&optional opt-debugger)
+ (realgud-query-cmdline
+ 'ipdb-suggest-invocation
+ ipdb-minibuffer-local-map
+ 'realgud:ipdb-minibuffer-history
+ opt-debugger))
+
+(defun ipdb-parse-cmd-args (orig-args)
+ "Parse command line ORIG-ARGS for the annotate level and name of script to
debug.
+
+ORIG-ARGS should contain a tokenized list of the command line to run.
+
+We return the a list containing:
+* the command processor (e.g. python) and it's arguments if any - a list of
strings
+* the name of the debugger given (e.g. ipdb) and its arguments - a list of
strings
+* the script name and its arguments - list of strings
+* whether the annotate or emacs option was given ('-A', '--annotate' or
'--emacs) - a boolean
+
+For example for the following input:
+ (map 'list 'symbol-name
+ '(python2.6 -O -Qold ./gcd.py a b))
+
+we might return:
+ ((\"python2.6\" \"-O\" \"-Qold\") (\"ipdb\") (\"/tmp/gcd.py\" \"a\" \"b\")
nil)
+
+Note that the script name path has been expanded via `expand-file-name'.
+"
+
+ ;; Parse the following kind of pattern:
+ ;; [python python-options] ipdb ipdb-options script-name script-options
+ (let (
+ (args orig-args)
+ (pair) ;; temp return from
+ (python-opt-two-args '())
+ ;; Python doesn't have mandatory 2-arg options in our sense,
+ ;; since the two args can be run together, e.g. "-C/tmp" or "-C /tmp"
+ ;;
+ (python-two-args '())
+ ;; ipdb doesn't have any arguments
+ (ipdb-two-args '())
+ (ipdb-opt-two-args '())
+ (interp-regexp
+ (if (member system-type (list 'windows-nt 'cygwin 'msdos))
+ "^python[-0-9.]*\\(.exe\\)?$"
+ "^python[-0-9.]*$"))
+
+ ;; Things returned
+ (annotate-p nil)
+ (debugger-args '())
+ (debugger-name nil)
+ (interpreter-args '())
+ (script-args '())
+ (script-name nil)
+ )
+
+ (if (not (and args))
+ ;; Got nothing: return '(nil, nil)
+ (list interpreter-args debugger-args script-args annotate-p)
+ ;; else
+ ;; Strip off optional "python" or "python182" etc.
+ (when (string-match interp-regexp
+ (file-name-sans-extension
+ (file-name-nondirectory (car args))))
+ (setq interpreter-args (list (pop args)))
+
+ ;; Strip off Python-specific options
+ (while (and args
+ (string-match "^-" (car args)))
+ (setq pair (realgud-parse-command-arg
+ args python-two-args python-opt-two-args))
+ (nconc interpreter-args (car pair))
+ (setq args (cadr pair))))
+
+ ;; Remove "ipdb" from "ipdb --ipdb-options script
+ ;; --script-options"
+ (setq debugger-name (file-name-sans-extension
+ (file-name-nondirectory (car args))))
+ (unless (string-match "^\\(ipdb\\|cli.py\\)$" debugger-name)
+ (message
+ "Expecting debugger name `%s' to be `ipdb' or `cli.py'"
+ debugger-name))
+ (setq debugger-args (list (pop args)))
+
+ ;; Skip to the first non-option argument.
+ (while (and args (not script-name))
+ (let ((arg (car args)))
+ (cond
+ ;; Options with arguments.
+ ((string-match "^-" arg)
+ (setq pair (realgud-parse-command-arg
+ args ipdb-two-args ipdb-opt-two-args))
+ (nconc debugger-args (car pair))
+ (setq args (cadr pair)))
+ ;; Anything else must be the script to debug.
+ (t (setq script-name (expand-file-name arg))
+ (setq script-args (cons script-name (cdr args))))
+ )))
+ (list interpreter-args debugger-args script-args annotate-p))))
+
+(defun ipdb-parse-remote-cmd-args (orig-args)
+ "Parse command line ORIG-ARGS
+ORIG-ARGS should contain a tokenized list of the command line to run.
+
+We return the a list containing:
+* the command processor (e.g. python) and it's arguments if any - a list of
strings
+* the name of the debugger given (e.g. ipdb) and its arguments - a list of
strings
+* the script name and its arguments - list of strings
+* nil
+
+For example for the following input:
+ (map 'list 'symbol-name
+ '(telnet localhost 6900))
+
+we might return:
+ ((\"telnet\" \"localhost\" \"6900\") (\"ipdb\") (\"\") nil)
+
+Note that the script name path has been expanded via `expand-file-name'.
+"
+ (list orig-args '("ipdb") '("") nil)
+ )
+
+ ;; To silence Warning: reference to free variable
+(defvar realgud:ipdb-command-name)
+
+(defun ipdb-suggest-invocation (debugger-name)
+ "Suggest a ipdb command invocation via `realgud-suggest-invocaton'"
+ (realgud-suggest-invocation realgud:ipdb-command-name
+ realgud:ipdb-minibuffer-history
+ "python" "\\.py"))
+
+(defun ipdb-reset ()
+ "Ipdb cleanup - remove debugger's internal buffers (frame,
+breakpoints, etc.)."
+ (interactive)
+ ;; (ipdb-breakpoint-remove-all-icons)
+ (dolist (buffer (buffer-list))
+ (when (string-match "\\*ipdb-[a-z]+\\*" (buffer-name buffer))
+ (let ((w (get-buffer-window buffer)))
+ (when w
+ (delete-window w)))
+ (kill-buffer buffer))))
+
+;; (defun ipdb-reset-keymaps()
+;; "This unbinds the special debugger keys of the source buffers."
+;; (interactive)
+;; (setcdr (assq 'ipdb-debugger-support-minor-mode minor-mode-map-alist)
+;; ipdb-debugger-support-minor-mode-map-when-deactive))
+
+(defun realgud:ipdb-backend-complete ()
+ "Send a command to the ipdb buffer and parse the output.
+
+The idea here is to rely on the
+`comint-redirect-send-command-to-process' function to send a
+python command that will return the completions for the given
+input. Specifically, here is the python code:
+
+>>> from IPython import get_ipython
+>>> comp = '''%s'''
+>>> ';'.join(get_ipython().complete(comp.split()[-1] if len(comp)else '',
comp)[1])
+
+This returns a list of strings that match the current word (hence
+why we need the `bounds-of-thing-at-point')."
+ (interactive)
+ (let ((buffer (current-buffer))
+ (cmdbuf (realgud-get-cmdbuf))
+ (process (get-buffer-process (current-buffer)))
+ (end-position (point))
+ (bounds (bounds-of-thing-at-point 'word))
+ )
+
+ ;; get the input string
+ (save-excursion
+ (comint-goto-process-mark)
+ (let* ((start-position (point))
+ (input-str (buffer-substring-no-properties start-position
+ end-position))
+ )
+ (when (not (= (length input-str) 0))
+ (let* ((python-str (concat
+ "from IPython import get_ipython; "
+ "comp = '''%s''';"
+ "';'.join(get_ipython()"
+ ".complete(comp.split()[-1] if len(comp)"
+ "else '', comp)[1])"))
+ (command-str (format python-str input-str))
+ (output-str (with-temp-buffer
+ (let ((tmpbuf (current-buffer)))
+ (comint-redirect-send-command-to-process
+ command-str tmpbuf process nil t)
+ ;; Wait for the process to complete
+ (set-buffer (process-buffer process))
+ (while (null comint-redirect-completed)
+ (accept-process-output nil 0 5)) ;; wait 5ms
+ (set-buffer tmpbuf)
+ (buffer-substring (1+ (point-min))
+ (1- (1- (point-max)))))))
+ )
+
+ ;; we need to change the start position to that of the current word
+ ;; since python returns just the word (and not the whole line)
+ (setq start-position (car bounds))
+
+ (list start-position
+ end-position
+ (split-string output-str ";"))))))))
+
+(defun realgud:ipdb-completion-at-point ()
+ (let ((ipdb (realgud:ipdb-backend-complete)))
+ (when ipdb
+ (list (nth 0 ipdb)
+ (nth 1 ipdb)
+ (nth 2 ipdb)
+ :exclusive 'yes))))
+
+(defun realgud:ipdb-customize ()
+ "Use `customize' to edit the settings of the `ipdb' debugger."
+ (interactive)
+ (customize-group 'realgud:ipdb))
+
+(provide-me "realgud:ipdb-")
diff --git a/realgud/debugger/pydb/init.el b/realgud/debugger/ipdb/init.el
similarity index 52%
rename from realgud/debugger/pydb/init.el
rename to realgud/debugger/ipdb/init.el
index e5a6a17..c854f68 100644
--- a/realgud/debugger/pydb/init.el
+++ b/realgud/debugger/ipdb/init.el
@@ -1,5 +1,21 @@
-;;; Copyright (C) 2012 Rocky Bernstein <address@hidden>
-;;; Stock Python debugger pydb
+;; Copyright (C) 2016 Free Software Foundation, Inc
+
+;; Author: Rocky Bernstein <address@hidden>
+;; Author: Sean Farley <address@hidden>
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+;; Stock Python debugger ipdb
(eval-when-compile (require 'cl))
@@ -13,38 +29,42 @@
(defvar realgud-pat-hash)
(declare-function make-realgud-loc-pat (realgud-loc))
-(defvar realgud:pydb-pat-hash (make-hash-table :test 'equal)
+(defvar realgud:ipdb-pat-hash (make-hash-table :test 'equal)
"Hash key is the what kind of pattern we want to match:
backtrace, prompt, etc. The values of a hash entry is a
realgud-loc-pat struct")
(declare-function make-realgud-loc "realgud-loc" (a b c d e f))
-;; Regular expression that describes a pydb location generally shown
+;; Regular expression that describes a ipdb location generally shown
;; before a command prompt.
;;
;; Program-location lines look like this:
;; > /usr/bin/zonetab2pot.py(15)<module>()
;; or MS Windows:
;; > c:\\mydirectory\\gcd.py(10)<module>
-(setf (gethash "loc" realgud:pydb-pat-hash)
+(setf (gethash "loc" realgud:ipdb-pat-hash)
(make-realgud-loc-pat
- :regexp "^(\\(\\(?:[a-zA-Z]:\\)?[-a-zA-Z0-9_/.\\\\ ]+\\):\\([0-9]+\\))"
+ :regexp "^> \\(\\(?:[a-zA-Z]:\\)?[-a-zA-Z0-9_/.\\\\ ]+\\)(\\([0-9]+\\))"
:file-group 1
:line-group 2))
-(setf (gethash "prompt" realgud:pydb-pat-hash)
+(setf (gethash "prompt" realgud:ipdb-pat-hash)
(make-realgud-loc-pat
- :regexp "^[(]+Pydb[)]+ "
+ :regexp "^ipdb[>] "
))
;; Regular expression that describes a Python backtrace line.
-(setf (gethash "lang-backtrace" realgud:pydb-pat-hash)
+(setf (gethash "lang-backtrace" realgud:ipdb-pat-hash)
realgud-python-backtrace-loc-pat)
+;; Regular expression that describes location in a pytest error
+(setf (gethash "pytest-error" realgud:ipdb-pat-hash)
+ realgud-pytest-error-loc-pat)
+
;; Regular expression that describes a "breakpoint set" line. For example:
-;; Breakpoint 1 at /usr/bin/pydb:7
-(setf (gethash "brkpt-set" realgud:pydb-pat-hash)
+;; Breakpoint 1 at /usr/bin/ipdb:7
+(setf (gethash "brkpt-set" realgud:ipdb-pat-hash)
(make-realgud-loc-pat
:regexp "^Breakpoint \\([0-9]+\\) at[
\t\n]+\\(.+\\):\\([0-9]+\\)\\(\n\\|$\\)"
:num 1
@@ -52,12 +72,12 @@ realgud-loc-pat struct")
:line-group 3))
;; Regular expression that describes a "delete breakpoint" line
-(setf (gethash "brkpt-del" realgud:pydb-pat-hash)
+(setf (gethash "brkpt-del" realgud:ipdb-pat-hash)
(make-realgud-loc-pat
:regexp "^Deleted breakpoint \\([0-9]+\\)\n"
:num 1))
-(setf (gethash "font-lock-keywords" realgud:pydb-pat-hash)
+(setf (gethash "font-lock-keywords" realgud:ipdb-pat-hash)
'(
;; The frame number and first type name, if present.
("^\\(->\\|##\\)\\([0-9]+\\) \\(<module>\\)?
*\\([a-zA-Z_][a-zA-Z0-9_]*\\)(\\(.+\\))?"
@@ -83,17 +103,18 @@ realgud-loc-pat struct")
("\\<\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\.\\([a-zA-Z_][a-zA-Z0-9_]*\\)"
(1 font-lock-type-face)
(2 font-lock-function-name-face))
- ;; (pydb-frames-match-current-line
- ;; (0 pydb-frames-current-frame-face append))
+ ;; (ipdb-frames-match-current-line
+ ;; (0 ipdb-frames-current-frame-face append))
))
-(setf (gethash "pydb" realgud-pat-hash) realgud:pydb-pat-hash)
+(setf (gethash "ipdb" realgud-pat-hash) realgud:ipdb-pat-hash)
-(defvar realgud:pydb-command-hash (make-hash-table :test 'equal)
+(defvar realgud:ipdb-command-hash (make-hash-table :test 'equal)
"Hash key is command name like 'shell' and the value is
- the pydb command to use, like 'python'")
+ the ipdb command to use, like 'python'")
-(setf (gethash "shell" realgud:pydb-command-hash) "python")
-(setf (gethash "pydb" realgud-command-hash) realgud:pydb-command-hash)
+(setf (gethash "shell" realgud:ipdb-command-hash) "python")
+(setf (gethash "eval" realgud:ipdb-command-hash) "p %s")
+(setf (gethash "ipdb" realgud-command-hash) realgud:ipdb-command-hash)
-(provide-me "realgud:pydb-")
+(provide-me "realgud:ipdb-")
diff --git a/realgud/debugger/ipdb/ipdb.el b/realgud/debugger/ipdb/ipdb.el
new file mode 100644
index 0000000..0cc8eb7
--- /dev/null
+++ b/realgud/debugger/ipdb/ipdb.el
@@ -0,0 +1,118 @@
+;; Copyright (C) 2016 Free Software Foundation, Inc
+
+;; Author: Rocky Bernstein <address@hidden>
+;; Author: Sean Farley <address@hidden>
+
+;; This program is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; This program is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+;; `ipdb' Main interface to ipdb via Emacs
+(require 'load-relative)
+(require-relative-list '("core" "track-mode") "realgud:ipdb-")
+(require-relative-list '("../../common/run") "realgud:")
+(require-relative-list '("core" "track-mode") "realgud:ipdb-")
+
+;; This is needed, or at least the docstring part of it is needed to
+;; get the customization menu to work in Emacs 24.
+(defgroup realgud:ipdb nil
+ "The realgud interface to the Python ipdb debugger"
+ :group 'realgud
+ :version "24.1")
+
+;; -------------------------------------------------------------------
+;; User-definable variables
+;;
+
+(defcustom realgud:ipdb-command-name
+ "ipdb"
+ "File name for executing the stock Python debugger and command options.
+This should be an executable on your path, or an absolute file name."
+ :type 'string
+ :group 'realgud:ipdb)
+;; -------------------------------------------------------------------
+;; The end.
+;;
+
+(declare-function ipdb-track-mode 'realgud:ipdb-track)
+(declare-function ipdb-query-cmdline 'realgud:ipdb-core)
+(declare-function ipdb-parse-cmd-args 'realgud:ipdb-core)
+(declare-function realgud:ipdb-completion-at-point 'realgud:ipdb-core)
+(declare-function realgud:run-debugger 'realgud:run)
+
+;;;###autoload
+(defun realgud:ipdb (&optional opt-cmd-line no-reset)
+ "Invoke the ipdb Python debugger and start the Emacs user interface.
+
+String OPT-CMD-LINE specifies how to run ipdb. You will be prompted
+for a command line is one isn't supplied.
+
+OPT-COMMAND-LINE is treated like a shell string; arguments are
+tokenized by `split-string-and-unquote'. The tokenized string is
+parsed by `ipdb-parse-cmd-args' and path elements found by that
+are expanded using `realgud:expand-file-name-if-exists'.
+
+Normally, command buffers are reused when the same debugger is
+reinvoked inside a command buffer with a similar command. If we
+discover that the buffer has prior command-buffer information and
+NO-RESET is nil, then that information which may point into other
+buffers and source buffers which may contain marks and fringe or
+marginal icons is reset. See `loc-changes-clear-buffer' to clear
+fringe and marginal icons.
+"
+ (interactive)
+ (let ((cmd-buf (realgud:run-debugger "ipdb" 'ipdb-query-cmdline
+ 'ipdb-parse-cmd-args
+ 'realgud:ipdb-minibuffer-history
+ opt-cmd-line no-reset))
+ )
+ (add-hook 'completion-at-point-functions
+ 'realgud:ipdb-completion-at-point nil t)
+ cmd-buf)
+ )
+
+
+;;;###autoload
+(defun realgud:ipdb-remote (&optional opt-cmd-line no-reset)
+ "Invoke the ipdb Python debugger and start the Emacs user interface.
+
+String OPT-CMD-LINE specifies how to run ipdb. You will be prompted
+for a command line is one isn't supplied.
+
+OPT-COMMAND-LINE is treated like a shell string; arguments are
+tokenized by `split-string-and-unquote'. The tokenized string is
+parsed by `ipdb-parse-remote-cmd-args' and path elements found by that
+are expanded using `realgud:expand-file-name-if-exists'.
+
+Normally, command buffers are reused when the same debugger is
+reinvoked inside a command buffer with a similar command. If we
+discover that the buffer has prior command-buffer information and
+NO-RESET is nil, then that information which may point into other
+buffers and source buffers which may contain marks and fringe or
+marginal icons is reset. See `loc-changes-clear-buffer' to clear
+fringe and marginal icons.
+"
+ (interactive)
+ (let ((cmd-buf (realgud:run-debugger "ipdb" 'ipdb-remote-query-cmdline
+ 'ipdb-parse-remote-cmd-args
+ 'realgud:ipdb-remote-minibuffer-history
+ opt-cmd-line no-reset))
+ )
+ (add-hook 'completion-at-point-functions
+ 'realgud:ipdb-completion-at-point nil t)
+ cmd-buf)
+ )
+
+
+(defalias 'ipdb 'realgud:ipdb)
+
+(provide-me "realgud-")
diff --git a/realgud/debugger/pydb/track-mode.el
b/realgud/debugger/ipdb/track-mode.el
similarity index 60%
rename from realgud/debugger/pydb/track-mode.el
rename to realgud/debugger/ipdb/track-mode.el
index 142717b..17133b3 100644
--- a/realgud/debugger/pydb/track-mode.el
+++ b/realgud/debugger/ipdb/track-mode.el
@@ -1,6 +1,7 @@
-;; Copyright (C) 2015 Free Software Foundation, Inc
+;; Copyright (C) 2016 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
+;; Author: Sean Farley <address@hidden>
;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
@@ -14,7 +15,7 @@
;; You should have received a copy of the GNU General Public License
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-;; Python "pydb" Debugger
+;; Python "ipdb" Debugger tracking a comint buffer.
(eval-when-compile (require 'cl))
(require 'load-relative)
@@ -25,48 +26,53 @@
"../../common/track-mode"
)
"realgud-")
-(require-relative-list '("core" "init") "realgud:pydb-")
+(require-relative-list '("core" "init") "realgud:ipdb-")
-(realgud-track-mode-vars "pydb")
+(realgud-track-mode-vars "ipdb")
(declare-function realgud-track-mode 'realgud-track-mode)
(declare-function realgud-track-mode-setup 'realgud-track-mode)
(declare-function realgud:track-set-debugger 'realgud-track-mode)
(declare-function realgud-python-populate-command-keys 'realgud-lang-python)
+(declare-function realgud:ipdb-completion-at-point 'realgud:ipdb-core)
-(realgud-python-populate-command-keys pydb-track-mode-map)
+(realgud-python-populate-command-keys ipdb-track-mode-map)
-(defun pydb-track-mode-hook()
- (if pydb-track-mode
+(defun ipdb-track-mode-hook()
+ (if ipdb-track-mode
(progn
- (use-local-map pydb-track-mode-map)
- (message "using pydb mode map")
+ (use-local-map ipdb-track-mode-map)
+ (add-hook 'completion-at-point-functions
+ 'realgud:ipdb-completion-at-point nil t)
+ (message "using ipdb mode map")
)
- (message "pydb track-mode-hook disable called")
+ (message "ipdb track-mode-hook disable called")
)
)
-(define-minor-mode pydb-track-mode
- "Minor mode for tracking pydb source locations inside a process shell via
realgud. pydb is a Python debugger.
+(define-minor-mode ipdb-track-mode
+ "Minor mode for tracking ipdb source locations inside a process shell via
realgud. ipdb is a Python debugger based on ipython.
If called interactively with no prefix argument, the mode is toggled. A prefix
argument, captured as ARG, enables the mode if the argument is positive, and
disables it otherwise.
-\\{pydb-track-mode-map}
+a process shell.
+
+\\{ipdb-track-mode-map}
"
:init-value nil
- ;; :lighter " pydb" ;; mode-line indicator from realgud-track is
sufficient.
+ ;; :lighter " ipdb" ;; mode-line indicator from realgud-track is
sufficient.
;; The minor mode bindings.
:global nil
- :group 'realgud:pydb
- :keymap pydb-track-mode-map
- (realgud:track-set-debugger "pydb")
- (if pydb-track-mode
+ :group 'realgud:ipdb
+ :keymap ipdb-track-mode-map
+ (realgud:track-set-debugger "ipdb")
+ (if ipdb-track-mode
(progn
(realgud-track-mode-setup 't)
- (pydb-track-mode-hook))
+ (ipdb-track-mode-hook))
(progn
(setq realgud-track-mode nil)
))
)
-(provide-me "realgud:pydb-")
+(provide-me "realgud:ipdb-")
diff --git a/realgud/debugger/pydb/core.el b/realgud/debugger/pydb/core.el
deleted file mode 100644
index 19fbc1e..0000000
--- a/realgud/debugger/pydb/core.el
+++ /dev/null
@@ -1,160 +0,0 @@
-;;; Copyright (C) 2012 Rocky Bernstein <address@hidden>
-(eval-when-compile (require 'cl))
-
-(require 'load-relative)
-(require-relative-list '("../../common/track"
- "../../common/core"
- "../../common/lang")
- "realgud-")
-(require-relative-list '("init") "realgud:pydb-")
-
-
-(declare-function realgud-lang-mode? 'realgud-lang)
-(declare-function realgud-parse-command-arg 'realgud-core)
-(declare-function realgud-query-cmdline 'realgud-core)
-(declare-function realgud-suggest-invocation 'realgud-core)
-
-;; FIXME: I think the following could be generalized and moved to
-;; realgud-... probably via a macro.
-(defvar realgud:pydb-minibuffer-history nil
- "minibuffer history list for the command `pydb'.")
-
-(easy-mmode-defmap pydb-minibuffer-local-map
- '(("\C-i" . comint-dynamic-complete-filename))
- "Keymap for minibuffer prompting of gud startup command."
- :inherit minibuffer-local-map)
-
-;; FIXME: I think this code and the keymaps and history
-;; variable chould be generalized, perhaps via a macro.
-(defun pydb-query-cmdline (&optional opt-debugger)
- (realgud-query-cmdline
- 'pydb-suggest-invocation
- pydb-minibuffer-local-map
- 'realgud:pydb-minibuffer-history
- opt-debugger))
-
-(defun pydb-parse-cmd-args (orig-args)
- "Parse command line ARGS for the annotate level and name of script to debug.
-
-ARGS should contain a tokenized list of the command line to run.
-
-We return the a list containing
-- the command processor (e.g. python) and it's arguments if any - a list of
strings
-- the name of the debugger given (e.g. pydb) and its arguments - a list of
strings
-- the script name and its arguments - list of strings
-- whether the annotate or emacs option was given ('-A', '--annotate' or
'--emacs) - a boolean
-
-For example for the following input
- (map 'list 'symbol-name
- '(python2.6 -O -Qold ./gcd.py a b))
-
-we might return:
- ((python2.6 -O -Qold) (pydb) (./gcd.py a b) 't)
-
-NOTE: the above should have each item listed in quotes.
-"
-
- ;; Parse the following kind of pattern:
- ;; [python python-options] pydb pydb-options script-name script-options
- (let (
- (args orig-args)
- (pair) ;; temp return from
- (python-opt-two-args '())
- ;; Python doesn't have mandatory 2-arg options in our sense,
- ;; since the two args can be run together, e.g. "-C/tmp" or "-C /tmp"
- ;;
- (python-two-args '())
- ;; pydb doesn't have any arguments
- (pydb-two-args '())
- (pydb-opt-two-args '())
- (interp-regexp
- (if (member system-type (list 'windows-nt 'cygwin 'msdos))
- "^python[-0-9.]*\\(.exe\\)?$"
- "^python[-0-9.]*$"))
-
- ;; Things returned
- (annotate-p nil)
- (debugger-args '())
- (debugger-name nil)
- (interpreter-args '())
- (script-args '())
- (script-name nil)
- )
-
- (if (not (and args))
- ;; Got nothing: return '(nil, nil)
- (list interpreter-args debugger-args script-args annotate-p)
- ;; else
- ;; Strip off optional "python" or "python182" etc.
- (when (string-match interp-regexp
- (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (setq interpreter-args (list (pop args)))
-
- ;; Strip off Python-specific options
- (while (and args
- (string-match "^-" (car args)))
- (setq pair (realgud-parse-command-arg
- args python-two-args python-opt-two-args))
- (nconc interpreter-args (car pair))
- (setq args (cadr pair))))
-
- ;; Remove "pydb" from "pydb --pydb-options script
- ;; --script-options"
- (setq debugger-name (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (unless (string-match "^\\(pydb\\|cli.py\\)$" debugger-name)
- (message
- "Expecting debugger name `%s' to be `pydb' or `cli.py'"
- debugger-name))
- (setq debugger-args (list (pop args)))
-
- ;; Skip to the first non-option argument.
- (while (and args (not script-name))
- (let ((arg (car args)))
- (cond
- ;; Options with arguments.
- ((string-match "^-" arg)
- (setq pair (realgud-parse-command-arg
- args pydb-two-args pydb-opt-two-args))
- (nconc debugger-args (car pair))
- (setq args (cadr pair)))
- ;; Anything else must be the script to debug.
- (t (setq script-name arg)
- (setq script-args args))
- )))
- (list interpreter-args debugger-args script-args annotate-p))))
-
-;; To silence Warning: reference to free variable
-(defvar realgud:pydb-command-name)
-
-(defun pydb-suggest-invocation (debugger-name)
- "Suggest a pydb command invocation via `realgud-suggest-invocaton'"
- (realgud-suggest-invocation realgud:pydb-command-name
- realgud:pydb-minibuffer-history
- "python" "\\.py"))
-
-(defun pydb-reset ()
- "Pydb cleanup - remove debugger's internal buffers (frame,
-breakpoints, etc.)."
- (interactive)
- ;; (pydb-breakpoint-remove-all-icons)
- (dolist (buffer (buffer-list))
- (when (string-match "\\*pydb-[a-z]+\\*" (buffer-name buffer))
- (let ((w (get-buffer-window buffer)))
- (when w
- (delete-window w)))
- (kill-buffer buffer))))
-
-;; (defun pydb-reset-keymaps()
-;; "This unbinds the special debugger keys of the source buffers."
-;; (interactive)
-;; (setcdr (assq 'pydb-debugger-support-minor-mode minor-mode-map-alist)
-;; pydb-debugger-support-minor-mode-map-when-deactive))
-
-
-(defun realgud:pydb-customize ()
- "Use `customize' to edit the settings of the `pydb' debugger."
- (interactive)
- (customize-group 'realgud:pydb))
-(provide-me "realgud:pydb-")
diff --git a/realgud/debugger/pydb/pydb.el b/realgud/debugger/pydb/pydb.el
deleted file mode 100644
index 2dd8f97..0000000
--- a/realgud/debugger/pydb/pydb.el
+++ /dev/null
@@ -1,63 +0,0 @@
-;;; Copyright (C) 2012, 2014 Rocky Bernstein <address@hidden>
-;; `pydb' Main interface to pydb via Emacs
-(require 'load-relative)
-(require-relative-list '("../../common/helper") "realgud-")
-(require-relative-list '("../../common/run") "realgud:")
-(require-relative-list '("core" "track-mode") "realgud:pydb-")
-
-(declare-function pydb-query-cmdline 'realgud:pydb-core)
-(declare-function pydb-parse-cmd-args 'realgud:pydb-core)
-(declare-function realgud:run-debugger 'realgud:run)
-
-;; This is needed, or at least the docstring part of it is needed to
-;; get the customization menu to work in Emacs 24.
-(defgroup realgud:pydb nil
- "The realgud interface to the Python pydb debugger"
- :group 'realgud
- :group 'python
- :version "24.1")
-
-;; -------------------------------------------------------------------
-;; User-definable variables
-;;
-
-(defcustom realgud:pydb-command-name
- "pydb"
- "File name for executing the stock Python debugger and command options.
-This should be an executable on your path, or an absolute file name."
- :type 'string
- :group 'realgud:pydb)
-
-(declare-function pydb-track-mode (bool))
-
-;; -------------------------------------------------------------------
-;; The end.
-;;
-
-;;;###autoload
-(defun realgud:pydb (&optional opt-cmd-line no-reset)
- "Invoke the pydb Python debugger and start the Emacs user interface.
-
-OPT-COMMAND-LINE is treated like a shell string; arguments are
-tokenized by `split-string-and-unquote'. The tokenized string is
-parsed by `pydb-parse-cmd-args' and path elements found by that
-are expanded using `realgud:expand-file-name-if-exists'.
-
-Normally, command buffers are reused when the same debugger is
-reinvoked inside a command buffer with a similar command. If we
-discover that the buffer has prior command-buffer information and
-NO-RESET is nil, then that information which may point into other
-buffers and source buffers which may contain marks and fringe or
-marginal icons is reset. See `loc-changes-clear-buffer' to clear
-fringe and marginal icons.
-"
- (interactive)
- (realgud:run-debugger "pydb" 'pydb-query-cmdline 'pydb-parse-cmd-args
- 'realgud:pydb-minibuffer-history
- opt-cmd-line no-reset)
- )
-
-
-(defalias 'pydb 'realgud:pydb)
-
-(provide-me "realgud-")
diff --git a/realgud/debugger/pydbgr/Makefile.am
b/realgud/debugger/pydbgr/Makefile.am
deleted file mode 100644
index 23f8a8f..0000000
--- a/realgud/debugger/pydbgr/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-include ../common.mk
diff --git a/realgud/debugger/pydbgr/core.el b/realgud/debugger/pydbgr/core.el
deleted file mode 100644
index 9124640..0000000
--- a/realgud/debugger/pydbgr/core.el
+++ /dev/null
@@ -1,172 +0,0 @@
-;;; Copyright (C) 2010, 2013 Rocky Bernstein <address@hidden>
-(eval-when-compile (require 'cl))
-
-(require 'load-relative)
-(require-relative-list '("../../common/track"
- "../../common/core"
- "../../common/lang")
- "realgud-")
-(require-relative-list '("init") "realgud-pydbgr-")
-
-(declare-function realgud-lang-mode? 'realgud-lang)
-(declare-function realgud-parse-command-arg 'realgud-core)
-(declare-function realgud-query-cmdline 'realgud-core)
-(declare-function realgud-suggest-invocation 'realgud-core)
-
-;; FIXME: I think the following could be generalized and moved to
-;; realgud-... probably via a macro.
-(defvar realgud:pydbgr-minibuffer-history nil
- "minibuffer history list for the command `pydbgr'.")
-
-(easy-mmode-defmap pydbgr-minibuffer-local-map
- '(("\C-i" . comint-dynamic-complete-filename))
- "Keymap for minibuffer prompting of gud startup command."
- :inherit minibuffer-local-map)
-
-;; FIXME: I think this code and the keymaps and history
-;; variable chould be generalized, perhaps via a macro.
-(defun pydbgr-query-cmdline (&optional opt-debugger)
- (realgud-query-cmdline
- 'pydbgr-suggest-invocation
- pydbgr-minibuffer-local-map
- 'realgud:pydbgr-minibuffer-history
- opt-debugger))
-
-(defun pydbgr-parse-cmd-args (orig-args)
- "Parse command line ARGS for the annotate level and name of script to debug.
-
-ARGS should contain a tokenized list of the command line to run.
-
-We return the a list containing
-- the command processor (e.g. python) and it's arguments if any - a list of
strings
-- the name of the debugger given (e.g. pydbgr) and its arguments - a list of
strings
-- the script name and its arguments - list of strings
-- whether the annotate or emacs option was given ('-A', '--annotate' or
'--emacs) - a boolean
-
-For example for the following input
- (map 'list 'symbol-name
- '(python2.6 -O -Qold --emacs ./gcd.py a b))
-
-we might return:
- ((python2.6 -O -Qold) (pydbgr --emacs) (./gcd.py a b) 't)
-
-NOTE: the above should have each item listed in quotes.
-"
-
- ;; Parse the following kind of pattern:
- ;; [python python-options] pydbgr pydbgr-options script-name script-options
- (let (
- (args orig-args)
- (pair) ;; temp return from
- (python-opt-two-args '("c" "m" "Q" "W"))
- ;; Python doesn't have mandatory 2-arg options in our sense,
- ;; since the two args can be run together, e.g. "-C/tmp" or "-C /tmp"
- ;;
- (python-two-args '())
- ;; One dash is added automatically to the below, so
- ;; h is really -h and -host is really --host.
- (pydbgr-two-args '("x" "-command" "e" "-execute"
- "o" "-output" "t" "-target"
- "a" "-annotate"))
- (pydbgr-opt-two-args '())
- (interp-regexp
- (if (member system-type (list 'windows-nt 'cygwin 'msdos))
- "^python[-0-9.]*\\(.exe\\)?$"
- "^python[-0-9.]*$"))
-
- ;; Things returned
- (annotate-p nil)
- (debugger-args '())
- (debugger-name nil)
- (interpreter-args '())
- (script-args '())
- (script-name nil)
- )
-
- (if (not (and args))
- ;; Got nothing: return '(nil, nil)
- (list interpreter-args debugger-args script-args annotate-p)
- ;; else
- ;; Strip off optional "python" or "python182" etc.
- (when (string-match interp-regexp
- (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (setq interpreter-args (list (pop args)))
-
- ;; Strip off Python-specific options
- (while (and args
- (string-match "^-" (car args)))
- (setq pair (realgud-parse-command-arg
- args python-two-args python-opt-two-args))
- (nconc interpreter-args (car pair))
- (setq args (cadr pair))))
-
- ;; Remove "pydbgr" from "pydbgr --pydbgr-options script
- ;; --script-options"
- (setq debugger-name (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (unless (string-match "^\\(pydbgr\\|cli.py\\)$" debugger-name)
- (message
- "Expecting debugger name `%s' to be `pydbgr' or `cli.py'"
- debugger-name))
- (setq debugger-args (list (pop args)))
-
- ;; Skip to the first non-option argument.
- (while (and args (not script-name))
- (let ((arg (car args)))
- (cond
- ;; Annotation or emacs option with level number.
- ((or (member arg '("--annotate" "-A"))
- (equal arg "--emacs"))
- (setq annotate-p t)
- (nconc debugger-args (list (pop args))))
- ;; Combined annotation and level option.
- ((string-match "^--annotate=[0-9]" arg)
- (nconc debugger-args (list (pop args)) )
- (setq annotate-p t))
- ;; Options with arguments.
- ((string-match "^-" arg)
- (setq pair (realgud-parse-command-arg
- args pydbgr-two-args pydbgr-opt-two-args))
- (nconc debugger-args (car pair))
- (setq args (cadr pair)))
- ;; Anything else must be the script to debug.
- (t (setq script-name arg)
- (setq script-args args))
- )))
- (list interpreter-args debugger-args script-args annotate-p))))
-
-;; To silence Warning: reference to free variable
-(defvar realgud:pydbgr-command-name)
-
-(defun pydbgr-suggest-invocation (debugger-name)
- "Suggest a pydbgr command invocation via `realgud-suggest-invocaton'"
- (realgud-suggest-invocation realgud:pydbgr-command-name
- realgud:pydbgr-minibuffer-history
- "python" "\\.py"))
-
-(defun pydbgr-reset ()
- "Pydbgr cleanup - remove debugger's internal buffers (frame,
-breakpoints, etc.)."
- (interactive)
- ;; (pydbgr-breakpoint-remove-all-icons)
- (dolist (buffer (buffer-list))
- (when (string-match "\\*pydbgr-[a-z]+\\*" (buffer-name buffer))
- (let ((w (get-buffer-window buffer)))
- (when w
- (delete-window w)))
- (kill-buffer buffer))))
-
-;; (defun pydbgr-reset-keymaps()
-;; "This unbinds the special debugger keys of the source buffers."
-;; (interactive)
-;; (setcdr (assq 'pydbgr-debugger-support-minor-mode minor-mode-map-alist)
-;; pydbgr-debugger-support-minor-mode-map-when-deactive))
-
-
-(defun realgud:pydbgr-customize ()
- "Use `customize' to edit the settings of the `pydbgr' debugger."
- (interactive)
- (customize-group 'realgud:pydbgr))
-
-(provide-me "realgud-pydbgr-")
diff --git a/realgud/debugger/pydbgr/init.el b/realgud/debugger/pydbgr/init.el
deleted file mode 100644
index 5778fc8..0000000
--- a/realgud/debugger/pydbgr/init.el
+++ /dev/null
@@ -1,99 +0,0 @@
-;;; Copyright (C) 2010-2012 Rocky Bernstein <address@hidden>
-;;; pydbgr: Python 2.5 but less than 3K
-
-(eval-when-compile (require 'cl))
-
-(require 'load-relative)
-(require-relative-list '("../../common/regexp"
- "../../common/loc"
- "../../common/init")
- "realgud-")
-(require-relative-list '("../../lang/python") "realgud-lang-")
-
-(defvar realgud-pat-hash)
-(declare-function make-realgud-loc-pat (realgud-loc))
-
-(defvar realgud-pydbgr-pat-hash (make-hash-table :test 'equal)
- "Hash key is the what kind of pattern we want to match:
-backtrace, prompt, etc. The values of a hash entry is a
-realgud-loc-pat struct")
-
-(declare-function make-realgud-loc "realgud-loc" (a b c d e f))
-
-;; Regular expression that describes a pydbgr location generally shown
-;; before a command prompt.
-;;
-;; For example:
-;; (/usr/bin/zonetab2pot.py:15): <module>
-;; (/usr/bin/zonetab2pot.py:15 remapped <string>): <module>
-;; or MS Windows:
-;; (c:\\mydirectory\\gcd.py:10): <module>
-(setf (gethash "loc" realgud-pydbgr-pat-hash)
- (make-realgud-loc-pat
- :regexp "^(\\(\\(?:[a-zA-Z]:\\)?[-a-zA-Z0-9_/.\\\\
]+\\):\\([0-9]+\\)\\(?: remapped .*\\)?)"
- :file-group 1
- :line-group 2))
-
-(setf (gethash "prompt" realgud-pydbgr-pat-hash)
- (make-realgud-loc-pat
- :regexp "^(Pydbgr) "
- ))
-
-;; Regular expression that describes a Python backtrace line.
-(setf (gethash "lang-backtrace" realgud-pydbgr-pat-hash)
- realgud-python-backtrace-loc-pat)
-
-;; Regular expression that describes a "breakpoint set" line
-(setf (gethash "brkpt-set" realgud-pydbgr-pat-hash)
- (make-realgud-loc-pat
- :regexp "^Breakpoint \\([0-9]+\\) set at line \\([0-9]+\\)[ \t\n]+of
file \\(.+\\)\\(\n\\|$\\)"
- :num 1
- :file-group 3
- :line-group 2))
-
-;; Regular expression that describes a "delete breakpoint" line
-(setf (gethash "brkpt-del" realgud-pydbgr-pat-hash)
- (make-realgud-loc-pat
- :regexp "^Deleted breakpoint \\([0-9]+\\)\n"
- :num 1))
-
-(setf (gethash "font-lock-keywords" realgud-pydbgr-pat-hash)
- '(
- ;; The frame number and first type name, if present.
- ("^\\(->\\|##\\)\\([0-9]+\\) \\(<module>\\)?
*\\([a-zA-Z_][a-zA-Z0-9_]*\\)(\\(.+\\))?"
- (2 realgud-backtrace-number-face)
- (4 font-lock-function-name-face nil t)) ; t means optional.
-
- ;; Parameter sequence, E.g. gcd(a=3, b=5)
- ;; ^^^^^^^^^
- ("(\\(.+\\))"
- (1 font-lock-variable-name-face))
-
- ;; File name. E.g file '/test/gcd.py'
- ;; ------^^^^^^^^^^^^-
- ("[ \t]+file '\\([^ ]+*\\)'"
- (1 realgud-file-name-face))
-
- ;; Line number. E.g. at line 28
- ;; ---------^^
- ("[ \t]+at line \\([0-9]+\\)$"
- (1 realgud-line-number-face))
-
- ;; Function name.
- ("\\<\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\.\\([a-zA-Z_][a-zA-Z0-9_]*\\)"
- (1 font-lock-type-face)
- (2 font-lock-function-name-face))
- ;; (pydbgr-frames-match-current-line
- ;; (0 pydbgr-frames-current-frame-face append))
- ))
-
-(setf (gethash "pydbgr" realgud-pat-hash) realgud-pydbgr-pat-hash)
-
-(defvar realgud-pydbgr-command-hash (make-hash-table :test 'equal)
- "Hash key is command name like 'shell' and the value is
- the pydbgr command to use, like 'python'")
-
-(setf (gethash "shell" realgud-pydbgr-command-hash) "python")
-(setf (gethash "pydbgr" realgud-command-hash) realgud-pydbgr-command-hash)
-
-(provide-me "realgud-pydbgr-")
diff --git a/realgud/debugger/pydbgr/pydbgr.el
b/realgud/debugger/pydbgr/pydbgr.el
deleted file mode 100644
index c0dba95..0000000
--- a/realgud/debugger/pydbgr/pydbgr.el
+++ /dev/null
@@ -1,64 +0,0 @@
-;;; Copyright (C) 2010-2012, 2014 Rocky Bernstein <address@hidden>
-;; `pydbgr' Main interface to pydbgr via Emacs
-(require 'load-relative)
-(require-relative-list '("../../common/helper"
- "../../common/track") "realgud-")
-(require-relative-list '("core" "track-mode") "realgud-pydbgr-")
-
-;; This is needed, or at least the docstring part of it is needed to
-;; get the customization menu to work in Emacs 24.
-(defgroup realgud:pydbgr nil
- "The realgud interface to the Python pydbgr debugger"
- :group 'realgud
- :group 'python
- :version "24.1")
-
-(declare-function pydbgr-query-cmdline 'realgud-pydbgr-core)
-(declare-function pydbgr-parse-cmd-args 'realgud-pydbgr-core)
-(declare-function pydbgr-track-mode 'realgud:pydbgr-track-mode)
-(declare-function realgud:run-debugger 'realgud:run)
-
-;; -------------------------------------------------------------------
-;; User-definable variables
-;;
-
-(defcustom realgud:pydbgr-command-name
- ;;"pydbgr --emacs 3"
- "pydbgr"
- "File name for executing the Python debugger and command options.
-This should be an executable on your path, or an absolute file name."
- :type 'string
- :group 'realgud:pydbgr)
-
-;; -------------------------------------------------------------------
-;; The end.
-;;
-
-;;;###autoload
-(defun realgud-pydbgr (&optional opt-cmd-line no-reset)
- "Invoke the pydbgr Python debugger and start the Emacs user interface.
-
-String OPT-CMD-LINE is treated like a shell string; arguments are
-tokenized by `split-string-and-unquote'. The tokenized string is
-parsed by `pydbgr-parse-cmd-args' and path elements found by that
-are expanded using `realgud:expand-file-name-if-exists'.
-
-Normally, command buffers are reused when the same debugger is
-reinvoked inside a command buffer with a similar command. If we
-discover that the buffer has prior command-buffer information and
-NO-RESET is nil, then that information which may point into other
-buffers and source buffers which may contain marks and fringe or
-marginal icons is reset. See `loc-changes-clear-buffer' to clear
-fringe and marginal icons.
-"
- (interactive)
- (realgud:run-debugger "pydbgr"
- 'pydbgr-query-cmdline
- 'pydbgr-parse-cmd-args
- 'realgud:pydbgr-minibuffer-history
- opt-cmd-line no-reset)
- )
-
-(defalias 'pydbgr 'realgud-pydbgr)
-
-(provide-me "realgud-")
diff --git a/realgud/debugger/pydbgr/track-mode.el
b/realgud/debugger/pydbgr/track-mode.el
deleted file mode 100644
index 6889c7e..0000000
--- a/realgud/debugger/pydbgr/track-mode.el
+++ /dev/null
@@ -1,60 +0,0 @@
-;; Copyright (C) 2010, 2012-2015 Rocky Bernstein <address@hidden>
-;;
-;; Python "pydbgr" Debugger tracking a comint buffer.
-
-(eval-when-compile (require 'cl))
-(require 'load-relative)
-(require-relative-list '(
- "../../common/cmds"
- "../../common/menu"
- "../../common/track"
- "../../common/track-mode"
- )
- "realgud-")
-
-(require-relative-list '("../../lang/python") "realgud-lang-")
-(require-relative-list '("core" "init") "realgud-pydbgr-")
-
-(realgud-track-mode-vars "pydbgr")
-
-(declare-function realgud-track-mode 'realgud-track-mode)
-(declare-function realgud-track-mode-setup 'realgud-track-mode)
-(declare-function realgud:track-set-debugger 'realgud-track-mode)
-(declare-function realgud-python-populate-command-keys 'realgud-lang-python)
-
-(realgud-python-populate-command-keys pydbgr-track-mode-map)
-
-(defun pydbgr-track-mode-hook()
- (if pydbgr-track-mode
- (progn
- (use-local-map pydbgr-track-mode-map)
- (message "using pydbgr mode map")
- )
- (message "pydbgr track-mode-hook disable called")
- )
-)
-
-(define-minor-mode pydbgr-track-mode
- "Minor mode for tracking pydbgr source locations inside a process shelll via
realgud. pydbgr is a Python debugger. See URL
`https://code.google.com/p/pydbgr/'.
-
-If called interactively with no prefix argument, the mode is toggled. A prefix
argument, captured as ARG, enables the mode if the argument is positive, and
disables it otherwise.
-
-\\{pydbgr-track-mode-map}
-"
- :init-value nil
- ;; :lighter " pydbgr" ;; mode-line indicator from realgud-track is
sufficient.
- ;; The minor mode bindings.
- :global nil
- :group 'realgud:pydbgr
- :keymap pydbgr-track-mode-map
- (realgud:track-set-debugger "pydbgr")
- (if pydbgr-track-mode
- (progn
- (realgud-track-mode-setup 't)
- (pydbgr-track-mode-hook))
- (progn
- (setq realgud-track-mode nil)
- ))
-)
-
-(provide-me "realgud-pydbgr-")
diff --git a/realgud/debugger/trepan8/Makefile.am
b/realgud/debugger/trepan8/Makefile.am
deleted file mode 100644
index 23f8a8f..0000000
--- a/realgud/debugger/trepan8/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-include ../common.mk
diff --git a/realgud/debugger/trepan8/core.el b/realgud/debugger/trepan8/core.el
deleted file mode 100644
index 9939e5a..0000000
--- a/realgud/debugger/trepan8/core.el
+++ /dev/null
@@ -1,183 +0,0 @@
-;; Copyright (C) 2015 Free Software Foundation, Inc
-
-;; Author: Rocky Bernstein <address@hidden>
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-(eval-when-compile (require 'cl))
-
-(require 'load-relative)
-
-(require-relative-list '("../../common/track"
- "../../common/core"
- "../../common/lang")
- "realgud-")
-(require-relative-list '("init") "realgud:trepan8-")
-
-(declare-function realgud:expand-file-name-if-exists 'realgud-core)
-(declare-function realgud-parse-command-arg 'realgud-core)
-(declare-function realgud-query-cmdline 'realgud-core)
-(declare-function realgud-suggest-invocation 'realgud-core)
-
-;; FIXME: I think the following could be generalized and moved to
-;; realgud-... probably via a macro.
-(defvar realgud:trepan8-minibuffer-history nil
- "minibuffer history list for the command `realgud:trepan8'.")
-
-(easy-mmode-defmap trepan8-minibuffer-local-map
- '(("\C-i" . comint-dynamic-complete-filename))
- "Keymap for minibuffer prompting of gud startup command."
- :inherit minibuffer-local-map)
-
-;; FIXME: I think this code and the keymaps and history
-;; variable chould be generalized, perhaps via a macro.
-(defun trepan8-query-cmdline (&optional opt-debugger)
- (realgud-query-cmdline
- 'trepan8-suggest-invocation
- trepan8-minibuffer-local-map
- 'realgud:trepan8-minibuffer-history
- opt-debugger))
-
-(defun trepan8-parse-cmd-args (orig-args)
- "Parse command line ARGS for the annotate level and name of script to debug.
-
-ARGS should contain a tokenized list of the command line to run.
-
-We return the a list containing
-* the command processor (e.g. ruby) and it's arguments if any - a list of
strings
-* the name of the debugger given (e.g. trepan8) and its arguments - a list of
strings
-* the script name and its arguments - list of strings
-* whether the annotate or emacs option was given ('-A', '--annotate' or
'--emacs) - a boolean
-
-For example for the following input
- (map 'list 'symbol-name
- '(ruby1.9 -W -C /tmp trepan8 --emacs ./gcd.rb a b))
-
-we might return:
- ((ruby1.9 -W -C) (trepan8 --emacs) (./gcd.rb a b) 't)
-
-Note that the script name path has been expanded via `expand-file-name'.
-"
-
- ;; Parse the following kind of pattern:
- ;; [ruby ruby-options] trepan8 trepan8-options script-name script-options
- (let (
- (args orig-args)
- (pair) ;; temp return from
- (ruby-opt-two-args '("0" "C" "e" "E" "F" "i"))
- ;; Ruby doesn't have mandatory 2-arg options in our sense,
- ;; since the two args can be run together, e.g. "-C/tmp" or "-C /tmp"
- ;;
- (ruby-two-args '())
- ;; One dash is added automatically to the below, so
- ;; h is really -h and -host is really --host.
- (trepan8-two-args '("h" "-host" "p" "-port"
- "I" "-include" "-r" "-require"))
- (trepan8-opt-two-args '())
-
- ;; Things returned
- (script-name nil)
- (debugger-name nil)
- (interpreter-args '())
- (debugger-args '())
- (script-args '())
- (annotate-p nil))
-
- (if (not (and args))
- ;; Got nothing: return '(nil, nil)
- (list interpreter-args debugger-args script-args annotate-p)
- ;; else
- ;; Strip off optional "ruby" or "ruby182" etc.
- (when (string-match "^ruby[-0-9]*$"
- (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (setq interpreter-args (list (pop args)))
-
- ;; Strip off Ruby-specific options
- (while (and args
- (string-match "^-" (car args)))
- (setq pair (realgud-parse-command-arg
- args ruby-two-args ruby-opt-two-args))
- (nconc interpreter-args (car pair))
- (setq args (cadr pair))))
-
- ;; Remove "trepan8" from "trepan8 --trepan8-options script
- ;; --script-options"
- (setq debugger-name (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (unless (string-match "^trepan8$" debugger-name)
- (message
- "Expecting debugger name `%s' to be `trepan8'"
- debugger-name))
- (setq debugger-args (list (pop args)))
-
- ;; Skip to the first non-option argument.
- (while (and args (not script-name))
- (let ((arg (car args)))
- (cond
- ;; Annotation or emacs option with level number.
- ((or (member arg '("--annotate" "-A"))
- (equal arg "--emacs"))
- (setq annotate-p t)
- (nconc debugger-args (list (pop args))))
- ;; Combined annotation and level option.
- ((string-match "^--annotate=[0-9]" arg)
- (nconc debugger-args (list (pop args)) )
- (setq annotate-p t))
- ;; Options with arguments.
- ((string-match "^-" arg)
- (setq pair (realgud-parse-command-arg
- args trepan8-two-args trepan8-opt-two-args))
- (nconc debugger-args (car pair))
- (setq args (cadr pair)))
- ;; Anything else must be the script to debug.
- (t (setq script-name (realgud:expand-file-name-if-exists arg))
- (setq script-args (cons script-name (cdr args))))
- )))
- (list interpreter-args debugger-args script-args annotate-p))))
-
-;; To silence Warning: reference to free variable
-(defvar realgud:trepan8-command-name)
-
-(defun trepan8-suggest-invocation (debugger-name)
- "Suggest a trepan8 command invocation via `realgud-suggest-invocaton'"
- (realgud-suggest-invocation realgud:trepan8-command-name
- realgud:trepan8-minibuffer-history
- "ruby" "\\.rb$"))
-
-(defun trepan8-reset ()
- "Trepan8 cleanup - remove debugger's internal buffers (frame,
-breakpoints, etc.)."
- (interactive)
- ;; (trepan8-breakpoint-remove-all-icons)
- (dolist (buffer (buffer-list))
- (when (string-match "\\*trepan8-[a-z]+\\*" (buffer-name buffer))
- (let ((w (get-buffer-window buffer)))
- (when w
- (delete-window w)))
- (kill-buffer buffer))))
-
-;; (defun trepan8-reset-keymaps()
-;; "This unbinds the special debugger keys of the source buffers."
-;; (interactive)
-;; (setcdr (assq 'trepan8-debugger-support-minor-mode minor-mode-map-alist)
-;; trepan8-debugger-support-minor-mode-map-when-deactive))
-
-
-(defun realgud:trepan8-customize ()
- "Use `customize' to edit the settings of the `trepan8' debugger."
- (interactive)
- (customize-group 'realgud:trepan8))
-
-(provide-me "realgud:trepan8-")
diff --git a/realgud/debugger/trepan8/init.el b/realgud/debugger/trepan8/init.el
deleted file mode 100644
index 622a4e7..0000000
--- a/realgud/debugger/trepan8/init.el
+++ /dev/null
@@ -1,159 +0,0 @@
-;; Copyright (C) 2015 Free Software Foundation, Inc
-
-;; Author: Rocky Bernstein <address@hidden>
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-(eval-when-compile (require 'cl))
-
-(require 'load-relative)
-(require-relative-list '("../../common/regexp" "../../common/loc") "realgud-")
-(require-relative-list '("../../lang/ruby") "realgud-lang-")
-
-(defvar realgud-pat-hash)
-(declare-function make-realgud-loc-pat (realgud-loc))
-
-(defvar realgud:trepan8-pat-hash (make-hash-table :test 'equal)
- "Hash key is the what kind of pattern we want to match:
-backtrace, prompt, etc. The values of a hash entry is a
-realgud-loc-pat struct")
-
-;; Regular expression that describes a trepan8 location generally shown
-;; before a command prompt.
-;; For example:
-;; -> (/tmp/fact.rb:1)
-;; -- (kernel/common/scope.rb:134 remapped /tmp/scope.rb:134)
-(setf (gethash "loc" realgud:trepan8-pat-hash)
- (make-realgud-loc-pat
- :regexp (format ".. (\\(?:.+ \\(?:via\\|remapped\\)
\\)?\\(.+\\):%s\\(?: @[0-9]+\\)?)"
- realgud:regexp-captured-num)
- :file-group 1
- :line-group 2))
-
-;; Regular expression that describes a trepan8 command prompt
-;; For example:
-;; (trepan8):
-;; ((trepan8)):
-(setf (gethash "prompt" realgud:trepan8-pat-hash)
- (make-realgud-loc-pat
- :regexp "^(+trepan8\\(@[0-9]+\\|@main\\)?)+: "
- ))
-
-;; Regular expression that describes a MRI 1.8 Ruby backtrace line.
-(setf (gethash "lang-backtrace" realgud:trepan8-pat-hash)
- realgud-ruby-backtrace-loc-pat)
-
-;; Regular expression that describes a ruby $! backtrace
-(setf (gethash "dollar-bang-backtrace" realgud:trepan8-pat-hash)
- realgud-ruby-dollar-bang-loc-pat)
-
-;; Regular expression that describes a "breakpoint set" line
-;; For example:
-;; Set breakpoint 1: /tmp/fact.rb:1 (@0)
-(setf (gethash "brkpt-set" realgud:trepan8-pat-hash)
- (make-realgud-loc-pat
- :regexp (format "^Set breakpoint %s: .+ at \\(.+\\):\\([0-9]+\\)
(@[0-9]+)"
- realgud:regexp-captured-num)
- :num 1
- :file-group 2
- :line-group 3))
-
-;; Regular expression that describes a debugger "delete" (breakpoint) response.
-;; For example:'
-;; Deleted breakpoint 1.
-(setf (gethash "brkpt-del" realgud:trepan8-pat-hash)
- (make-realgud-loc-pat
- :regexp (format "^Deleted breakpoint %s.\n"
- realgud:regexp-captured-num)
- :num 1))
-
-;; Regular expression that describes a Ruby $! string
-(setf (gethash "dollar-bang" realgud:trepan8-pat-hash)
- realgud-ruby-dollar-bang-loc-pat)
-
-(setf (gethash "trepan8" realgud-pat-hash) realgud:trepan8-pat-hash)
-
-(defconst realgud:trepan8-frame-file-line-regexp
- (format " at \\(.*\\):%s$" realgud:regexp-captured-num))
-
-(defconst realgud:trepan8-frame-start-regexp realgud:trepan-frame-start-regexp)
-(defconst realgud:trepan8-frame-num-regexp realgud:trepan-frame-start-regexp)
-
-;; Regular expression that describes a debugger "backtrace" command line.
-;; e.g.
-;; --> #0 at line /usr/bin/irb:12
-;; #1 main.__script__ at /tmp/fact.rb:1
-;; #1 main.__script__ at /tmp/fact.rb:1
-;; #0 IRB.start(ap_path#String) at line /usr/lib/ruby/1.8/irb.rb:52
-(setf (gethash "debugger-backtrace" realgud:trepan8-pat-hash)
- (make-realgud-loc-pat
- :regexp (concat realgud:trepan8-frame-start-regexp " "
- realgud:trepan8-frame-num-regexp
- "\\(?: \\(?:\\(.+\\)(\\(.*\\))\\)\\)?"
- realgud:trepan8-frame-file-line-regexp
- )
- :num 2
- :file-group 5
- :line-group 6)
- )
-
-;; Regular expression that for a termination message.
-(setf (gethash "termination" realgud:trepan8-pat-hash)
- "^trepan8: That's all, folks...\n")
-
-(setf (gethash "font-lock-keywords" realgud:trepan8-pat-hash)
- '(
- ;; Parameters and first type entry. E.g Object.gcd(a#Fixnum, b#Fixnum)
- ;; ^-^^^^^^ ^-^^^^^^
- ("\\<\\([a-zA-Z_][a-zA-Z0-9_]*\\)#\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\>"
- (1 font-lock-variable-name-face)
- (2 font-lock-constant-face))
-
- ;; "::Type", which occurs in class name of function and in
- ;; parameter list.
- ("::\\([a-zA-Z_][a-zA-Z0-9_]*\\)"
- (1 font-lock-type-face))
-
- ;; The frame number and first type name, if present.
- ;; E.g. --> #0 Object.gcd(a#Fixnum, b#Fixnum)
- ;; -----^-^^^^^^.^^^
- ("^\\(-->\\)? *#\\([0-9]+\\) *\\(\\([a-zA-Z_][a-zA-Z0-9_]*\\)[.:]\\)?"
- (2 realgud-backtrace-number-face)
- (4 font-lock-constant-face nil t)) ; t means optional.
-
- ;; File name and line number. E.g. at line /test/gcd.rb:6
- ;; -------^^^^^^^^^^^^^-^
- ("at line \\(.*\\):\\([0-9]+\\)$"
- (1 realgud-file-name-face)
- (2 realgud-line-number-face))
-
- ;; Function name.
- ("\\<\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\.\\([a-zA-Z_][a-zA-Z0-9_]*\\)"
- (1 font-lock-type-face)
- (2 font-lock-function-name-face))
- ;; (trepan-frames-match-current-line
- ;; (0 trepan-frames-current-frame-face append))
- ))
-
-(setf (gethash "trepan8" realgud-pat-hash) realgud:trepan8-pat-hash)
-
-(defvar realgud:trepan8-command-hash (make-hash-table :test 'equal)
- "Hash key is command name like 'quit' and the value is
- the trepan8 command to use, like 'quit!'")
-
-(setf (gethash "quit" realgud:trepan8-command-hash) "quit!")
-(setf (gethash "shell" realgud:trepan8-command-hash) "irb")
-(setf (gethash "trepan8" realgud-command-hash) realgud:trepan8-command-hash)
-
-(provide-me "realgud:trepan8-")
diff --git a/realgud/debugger/trepan8/track-mode.el
b/realgud/debugger/trepan8/track-mode.el
deleted file mode 100644
index 2040a8b..0000000
--- a/realgud/debugger/trepan8/track-mode.el
+++ /dev/null
@@ -1,74 +0,0 @@
-;; Copyright (C) 2015 Free Software Foundation, Inc
-
-;; Author: Rocky Bernstein <address@hidden>
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-;; Ruby "trepan8" Debugger tracking a comint buffer.
-
-(eval-when-compile (require 'cl))
-(require 'load-relative)
-(require-relative-list '(
- "../../common/cmds"
- "../../common/menu"
- "../../common/track"
- "../../common/track-mode"
- )
- "realgud-")
-(require-relative-list '("core" "init") "realgud:trepan8-")
-(require-relative-list '("../../lang/ruby") "realgud-lang-")
-
-(realgud-track-mode-vars "trepan8")
-
-(declare-function realgud-track-mode 'realgud-track-mode)
-(declare-function realgud-track-mode-hook 'realgud-track-mode)
-(declare-function realgud-track-mode-setup 'realgud-track-mode)
-(declare-function realgud:track-set-debugger 'realgud-track-mode)
-(declare-function realgud:ruby-populate-command-keys 'realgud-lang-ruby)
-
-(realgud:ruby-populate-command-keys trepan8-track-mode-map)
-
-(define-key trepan8-track-mode-map
- (kbd "C-c !!") 'realgud:ruby-goto-dollar-bang-line)
-
-(defun trepan8-track-mode-hook()
- (use-local-map trepan8-track-mode-map)
- (realgud-track-mode-setup 't)
- (message "trepan8 track-mode-hook called")
-)
-(define-minor-mode trepan8-track-mode
- "Minor mode for tracking trepan8 source locations inside a process shell via
realgud. trepan8 is a Ruby debugger for version 1.8.
-
-If called interactively with no prefix argument, the mode is toggled. A prefix
argument, captured as ARG, enables the mode if the argument is positive, and
disables it otherwise.
-
-\\{trepan8-track-mode-map}
-"
- :init-value nil
- ;; :lighter " trepan8" ;; mode-line indicator from realgud-track is
sufficient.
- ;; The minor mode bindings.
- :global nil
- :group 'realgud:trepan8
- :keymap trepan8-track-mode-map
-
- (realgud:track-set-debugger "trepan8")
- (if trepan8-track-mode
- (progn
- (realgud-track-mode 't)
- (trepan8-track-mode-hook))
- (progn
- (realgud-track-mode nil)
- ))
-)
-
-(provide-me "realgud:trepan8-")
diff --git a/realgud/debugger/trepan8/trepan8.el
b/realgud/debugger/trepan8/trepan8.el
deleted file mode 100644
index 6d80fa5..0000000
--- a/realgud/debugger/trepan8/trepan8.el
+++ /dev/null
@@ -1,78 +0,0 @@
-;; Copyright (C) 2015 Free Software Foundation, Inc
-
-;; Author: Rocky Bernstein <address@hidden>
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-
-;; `trepan8' Main interface to trepan8 via Emacs
-(require 'load-relative)
-(require-relative-list '("../../common/helper") "realgud-")
-(require-relative-list '("../../common/run") "realgud:")
-(require-relative-list '("core" "track-mode") "realgud:trepan8-")
-
-(declare-function trepan8-query-cmdline 'realgud:trepan8-core)
-(declare-function trepan8-parse-cmd-args 'realgud:trepan8-core)
-(declare-function realgud:run-debugger 'realgud:run)
-
-;; This is needed, or at least the docstring part of it is needed to
-;; get the customization menu to work in Emacs 24.
-(defgroup realgud:trepan8 nil
- "The reagud interface toe th Ruby \"trepanning\" debugger for Ruby 1.8"
- :group 'ruby
- :group 'realgud
- :version "23.4")
-
-;; -------------------------------------------------------------------
-;; User-definable variables
-;;
-
-(defcustom realgud:trepan8-command-name
- ;;"trepan8 --emacs 3"
- "trepan8"
- "File name for executing the Ruby debugger and command options.
-This should be an executable on your path, or an absolute file name."
- :type 'string
- :group 'realgud:trepan8)
-
-;; -------------------------------------------------------------------
-;; The end.
-;;
-
-;;;###autoload
-(defun realgud:trepan8 (&optional opt-cmd-line no-reset)
- "Invoke the trepan8 Ruby debugger and start the Emacs user interface.
-
-String OPT-CMD-LINE is treated like a shell string; arguments are
-tokenized by `split-string-and-unquote'. The tokenized string is
-parsed by `trepan8-parse-cmd-args' and path elements found by that
-are expanded using `realgud:expand-file-name-if-exists'.
-
-Normally, command buffers are reused when the same debugger is
-reinvoked inside a command buffer with a similar command. If we
-discover that the buffer has prior command-buffer information and
-NO-RESET is nil, then that information which may point into other
-buffers and source buffers which may contain marks and fringe or
-marginal icons is reset. See `loc-changes-clear-buffer' to clear
-fringe and marginal icons.
-"
- (interactive)
- (realgud:run-debugger "trepan8" 'trepan8-query-cmdline
- 'trepan8-parse-cmd-args
- 'realgud:trepan8-minibuffer-history
- opt-cmd-line no-reset)
- )
-
-(defalias 'trepan8 'realgud:trepan8)
-
-(provide-me "realgud-")
diff --git a/realgud/debugger/trepanx/Makefile.am
b/realgud/debugger/trepanx/Makefile.am
deleted file mode 100644
index 23f8a8f..0000000
--- a/realgud/debugger/trepanx/Makefile.am
+++ /dev/null
@@ -1 +0,0 @@
-include ../common.mk
diff --git a/realgud/debugger/trepanx/core.el b/realgud/debugger/trepanx/core.el
deleted file mode 100644
index f00d301..0000000
--- a/realgud/debugger/trepanx/core.el
+++ /dev/null
@@ -1,166 +0,0 @@
-;;; Copyright (C) 2010, 2014 Rocky Bernstein <address@hidden>
-(eval-when-compile (require 'cl))
-
-(require 'load-relative)
-
-(require-relative-list '("../../common/track"
- "../../common/core"
- "../../common/lang")
- "realgud-")
-(require-relative-list '("init") "realgud:trepanx-")
-
-(declare-function realgud-parse-command-arg 'realgud-core)
-(declare-function realgud-query-cmdline 'realgud-core)
-(declare-function realgud-suggest-invocation 'realgud-core)
-
-;; FIXME: I think the following could be generalized and moved to
-;; realgud-... probably via a macro.
-(defvar realgud:trepanx-minibuffer-history nil
- "minibuffer history list for the command `realgud:trepanx'.")
-
-(easy-mmode-defmap trepanx-minibuffer-local-map
- '(("\C-i" . comint-dynamic-complete-filename))
- "Keymap for minibuffer prompting of gud startup command."
- :inherit minibuffer-local-map)
-
-;; FIXME: I think this code and the keymaps and history
-;; variable chould be generalized, perhaps via a macro.
-(defun trepanx-query-cmdline (&optional opt-debugger)
- (realgud-query-cmdline
- 'trepanx-suggest-invocation
- trepanx-minibuffer-local-map
- 'realgud:trepanx-minibuffer-history
- opt-debugger))
-
-(defun trepanx-parse-cmd-args (orig-args)
- "Parse command line ARGS for the annotate level and name of script to debug.
-
-ARGS should contain a tokenized list of the command line to run.
-
-We return the a list containing
-- the command processor (e.g. ruby) and it's arguments if any - a list of
strings
-- the name of the debugger given (e.g. trepanx) and its arguments - a list of
strings
-- the script name and its arguments - list of strings
-- whether the annotate or emacs option was given ('-A', '--annotate' or
'--emacs) - a boolean
-
-For example for the following input
- (map 'list 'symbol-name
- '(ruby1.9 -W -C /tmp trepanx --emacs ./gcd.rb a b))
-
-we might return:
- ((ruby1.9 -W -C) (trepanx --emacs) (./gcd.rb a b) 't)
-
-NOTE: the above should have each item listed in quotes.
-"
-
- ;; Parse the following kind of pattern:
- ;; [ruby ruby-options] trepanx trepanx-options script-name script-options
- (let (
- (args orig-args)
- (pair) ;; temp return from
- (ruby-opt-two-args '("0" "C" "e" "E" "F" "i"))
- ;; Ruby doesn't have mandatory 2-arg options in our sense,
- ;; since the two args can be run together, e.g. "-C/tmp" or "-C /tmp"
- ;;
- (ruby-two-args '())
- ;; One dash is added automatically to the below, so
- ;; h is really -h and -host is really --host.
- (trepanx-two-args '("h" "-host" "p" "-port"
- "I" "-include" "-r" "-require"))
- (trepanx-opt-two-args '())
-
- ;; Things returned
- (script-name nil)
- (debugger-name nil)
- (interpreter-args '())
- (debugger-args '())
- (script-args '())
- (annotate-p nil))
-
- (if (not (and args))
- ;; Got nothing: return '(nil, nil)
- (list interpreter-args debugger-args script-args annotate-p)
- ;; else
- ;; Strip off optional "ruby" or "ruby182" etc.
- (when (string-match "^ruby[-0-9]*$"
- (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (setq interpreter-args (list (pop args)))
-
- ;; Strip off Ruby-specific options
- (while (and args
- (string-match "^-" (car args)))
- (setq pair (realgud-parse-command-arg
- args ruby-two-args ruby-opt-two-args))
- (nconc interpreter-args (car pair))
- (setq args (cadr pair))))
-
- ;; Remove "trepanx" from "trepanx --trepanx-options script
- ;; --script-options"
- (setq debugger-name (file-name-sans-extension
- (file-name-nondirectory (car args))))
- (unless (string-match "^trepanx$" debugger-name)
- (message
- "Expecting debugger name `%s' to be `trepanx'"
- debugger-name))
- (setq debugger-args (list (pop args)))
-
- ;; Skip to the first non-option argument.
- (while (and args (not script-name))
- (let ((arg (car args)))
- (cond
- ;; Annotation or emacs option with level number.
- ((or (member arg '("--annotate" "-A"))
- (equal arg "--emacs"))
- (setq annotate-p t)
- (nconc debugger-args (list (pop args))))
- ;; Combined annotation and level option.
- ((string-match "^--annotate=[0-9]" arg)
- (nconc debugger-args (list (pop args)) )
- (setq annotate-p t))
- ;; Options with arguments.
- ((string-match "^-" arg)
- (setq pair (realgud-parse-command-arg
- args trepanx-two-args trepanx-opt-two-args))
- (nconc debugger-args (car pair))
- (setq args (cadr pair)))
- ;; Anything else must be the script to debug.
- (t (setq script-name arg)
- (setq script-args args))
- )))
- (list interpreter-args debugger-args script-args annotate-p))))
-
-;; To silence Warning: reference to free variable
-(defvar realgud:trepanx-command-name)
-
-(defun trepanx-suggest-invocation (debugger-name)
- "Suggest a trepanx command invocation via `realgud-suggest-invocaton'"
- (realgud-suggest-invocation realgud:trepanx-command-name
- realgud:trepanx-minibuffer-history
- "ruby" "\\.rb$" "trepanx"))
-
-(defun trepanx-reset ()
- "Trepanx cleanup - remove debugger's internal buffers (frame,
-breakpoints, etc.)."
- (interactive)
- ;; (trepanx-breakpoint-remove-all-icons)
- (dolist (buffer (buffer-list))
- (when (string-match "\\*trepanx-[a-z]+\\*" (buffer-name buffer))
- (let ((w (get-buffer-window buffer)))
- (when w
- (delete-window w)))
- (kill-buffer buffer))))
-
-;; (defun trepanx-reset-keymaps()
-;; "This unbinds the special debugger keys of the source buffers."
-;; (interactive)
-;; (setcdr (assq 'trepanx-debugger-support-minor-mode minor-mode-map-alist)
-;; trepanx-debugger-support-minor-mode-map-when-deactive))
-
-
-(defun realgud:trepanx-customize ()
- "Use `customize' to edit the settings of the `trepanx' debugger."
- (interactive)
- (customize-group 'realgud:trepanx))
-
-(provide-me "realgud:trepanx-")
diff --git a/realgud/debugger/trepanx/init.el b/realgud/debugger/trepanx/init.el
deleted file mode 100644
index 9f03385..0000000
--- a/realgud/debugger/trepanx/init.el
+++ /dev/null
@@ -1,143 +0,0 @@
-;;; Copyright (C) 2010-2011, 2014 Rocky Bernstein <address@hidden>
-(eval-when-compile (require 'cl))
-
-(require 'load-relative)
-(require-relative-list '("../../common/regexp" "../../common/loc") "realgud-")
-(require-relative-list '("../../lang/ruby") "realgud-lang-")
-
-(defvar realgud-pat-hash)
-(declare-function make-realgud-loc-pat (realgud-loc))
-
-(defvar realgud:trepanx-pat-hash (make-hash-table :test 'equal)
- "Hash key is the what kind of pattern we want to match:
-backtrace, prompt, etc. The values of a hash entry is a
-realgud-loc-pat struct")
-
-;; Regular expression that describes a trepanx location generally shown
-;; before a command prompt.
-;; For example:
-;; -> (/tmp/fact.rb:1)
-;; -- (kernel/common/scope.rb:134 remapped /tmp/scope.rb:134)
-(setf (gethash "loc" realgud:trepanx-pat-hash)
- (make-realgud-loc-pat
- :regexp ".. (\\(?:.+ \\(?:via\\|remapped\\)
\\)?\\(.+\\):\\([0-9]+\\)\\(?: @[0-9]+\\)?)"
- :file-group 1
- :line-group 2))
-
-;; Regular expression that describes a trepanx command prompt
-;; For example:
-;; (trepanx):
-;; ((trepanx)):
-(setf (gethash "prompt" realgud:trepanx-pat-hash)
- (make-realgud-loc-pat
- :regexp "^(+trepanx\\(@[0-9]+\\|@main\\)?)+: "
- ))
-
-;; Regular expression that describes a Rubinius backtrace line.
-(setf (gethash "lang-backtrace" realgud:trepanx-pat-hash)
- realgud-rubinius-backtrace-loc-pat)
-
-;; Regular expression that describes a ruby $! backtrace
-(setf (gethash "dollar-bang-backtrace" realgud:trepanx-pat-hash)
- realgud-ruby-dollar-bang-loc-pat)
-
-;; Regular expression that describes a Rubinius X-agent backtrace
-;; line.
-(setf (gethash "rubinius-backtrace-Xagent" realgud:trepanx-pat-hash)
- realgud-rubinius-Xagent-backtrace-loc-pat)
-
-;; Regular expression that describes a "breakpoint set" line
-;; For example:
-;; Set breakpoint 1: /tmp/fact.rb:1 (@0)
-(setf (gethash "brkpt-set" realgud:trepanx-pat-hash)
- (make-realgud-loc-pat
- :regexp "^Set breakpoint \\([0-9]+\\): .+ at \\(.+\\):\\([0-9]+\\)
(@[0-9]+)"
- :num 1
- :file-group 2
- :line-group 3))
-
-;; Regular expression that describes a debugger "delete" (breakpoint) response.
-;; For example:'
-;; Deleted breakpoint 1.
-(setf (gethash "brkpt-del" realgud:trepanx-pat-hash)
- (make-realgud-loc-pat
- :regexp "^Deleted breakpoint \\([0-9]+\\).\n"
- :num 1))
-
-;; Regular expression that describes a Ruby $! string
-(setf (gethash "dollar-bang" realgud:trepanx-pat-hash)
- realgud-ruby-dollar-bang-loc-pat)
-
-(setf (gethash "trepanx" realgud-pat-hash) realgud:trepanx-pat-hash)
-
-(defconst realgud:trepanx-frame-file-line-regexp
- " at \\(.*\\):\\([0-9]+\\)$")
-
-(defconst realgud:trepanx-frame-start-regexp realgud:trepan-frame-start-regexp)
-(defconst realgud:trepanx-frame-num-regexp realgud:trepan-frame-start-regexp)
-
-;; Regular expression that describes a debugger "backtrace" command line.
-;; e.g.
-;; --> #0 Rubinius::Scope#my_method at kernel/common/variable_scope.rb:134
-;; #1 main.__script__ at /tmp/fact.rb:1
-(setf (gethash "debugger-backtrace" realgud:trepanx-pat-hash)
- (make-realgud-loc-pat
- :regexp (concat realgud:trepanx-frame-start-regexp " "
- realgud:trepanx-frame-num-regexp " "
- "\\([A-Z_][a-zA-Z0-9_:]*\\)[#.]\\(.*\\)"
- realgud:trepanx-frame-file-line-regexp
- )
- :num 2
- :file-group 6
- :line-group 7)
- )
-
-;; Regular expression that for a termination message.
-(setf (gethash "termination" realgud:trepanx-pat-hash)
- "^trepanx: That's all, folks...\n")
-
-(setf (gethash "font-lock-keywords" realgud:trepanx-pat-hash)
- '(
- ;; File name and line number. E.g. at /test/gcd.rb:6
- ;; ---^^^^^^^^^^^^-^
- (" at \\(.*\\):\\([0-9]+\\)$"
- (1 realgud-file-name-face)
- (2 realgud-line-number-face))
-
- ;; The frame number and first type name, if present.
- ("^\\(-->\\| \\)? #\\([0-9]+\\)
\\([a-zA-Z_][a-zA-Z0-9_]*\\).*\\(\\([#.]\\)?\\([a-zA-Z_][a-zA-Z_[0-9]]*\\)?\\)?"
- (2 realgud-backtrace-number-face)
- (3 font-lock-constant-face) ; e.g. Object
- (6 font-lock-function-name-face nil t)) ; t means optional
-
- ;; The frame number and first type name, if present.
- ("^ +\\([0-9]+\\)
*\\([a-zA-Z_][a-zA-Z0-9_]*\\).*\\(\\([#.]\\)?\\([a-zA-Z_][a-zA-Z_[0-9]]*\\)?\\)?"
- (1 realgud-backtrace-number-face)
- (2 font-lock-constant-face) ; e.g. Object
- (5 font-lock-function-name-face nil t)) ; t means optional
- ;; Parameter sequence
- ("(\\(.+\\))"
- (1 font-lock-variable-name-face))
- ;; "::Type", which occurs in class name of function and in parameter
list.
- ("::\\([a-zA-Z_][a-zA-Z0-9_]*\\)"
- (1 font-lock-type-face))
-
- ;; Function name.
- ("\\<\\([a-zA-Z_][a-zA-Z0-9_]*\\)\\.\\([a-zA-Z_][a-zA-Z0-9_]*\\)"
- (1 font-lock-type-face)
- (2 font-lock-function-name-face))
- ;; (trepan-frames-match-current-line
- ;; (0 trepan-frames-current-frame-face append))
- ))
-
-(setf (gethash "trepanx" realgud-pat-hash) realgud:trepanx-pat-hash)
-
-(defvar realgud:trepanx-command-hash (make-hash-table :test 'equal)
- "Hash key is command name like 'quit' and the value is
- the trepanx command to use, like 'quit!'")
-
-(setf (gethash "quit" realgud:trepanx-command-hash) "quit!")
-(setf (gethash "shell" realgud:trepanx-command-hash) "irb")
-(setf (gethash "trepanx" realgud-command-hash) realgud:trepanx-command-hash)
-
-(provide-me "realgud:trepanx-")
diff --git a/realgud/debugger/trepanx/track-mode.el
b/realgud/debugger/trepanx/track-mode.el
deleted file mode 100644
index 1295cd4..0000000
--- a/realgud/debugger/trepanx/track-mode.el
+++ /dev/null
@@ -1,77 +0,0 @@
-;; Copyright (C) 2015 Free Software Foundation, Inc
-
-;; Author: Rocky Bernstein <address@hidden>
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <http://www.gnu.org/licenses/>.
-;;; Ruby "trepanx" Debugger tracking a comint or eshell buffer.
-
-(eval-when-compile (require 'cl))
-(require 'load-relative)
-(require-relative-list '(
- "../../common/cmds"
- "../../common/menu"
- "../../common/track"
- "../../common/track-mode"
- )
- "realgud-")
-(require-relative-list '("core" "init") "realgud:trepanx-")
-(require-relative-list '("../../lang/ruby") "realgud-lang-")
-
-(realgud-track-mode-vars "trepanx")
-
-(declare-function realgud-track-mode(bool))
-
-(declare-function realgud:ruby-populate-command-keys 'realgud-lang-ruby)
-(declare-function realgud-track-mode 'realgud-track-mode)
-(declare-function realgud-track-mode-hook 'realgud-track-mode)
-(declare-function realgud-track-mode-setup 'realgud-track-mode)
-(declare-function realgud:track-set-debugger 'realgud-track-mode)
-
-(realgud:ruby-populate-command-keys trepanx-track-mode-map)
-
-(define-key trepanx-track-mode-map
- (kbd "C-c !x") 'realgud:rubinius-goto-Xagent-backtrace-line)
-(define-key trepanx-track-mode-map
- (kbd "C-c !!") 'realgud:ruby-goto-dollar-bang-line)
-
-(defun trepanx-track-mode-hook()
- (use-local-map trepanx-track-mode-map)
- (realgud-track-mode-setup 't)
- (message "trepanx track-mode-hook called")
-)
-(define-minor-mode trepanx-track-mode
- "Minor mode for tracking trepanx source locations inside a process shell via
realgud. trepanx is a Rubinius Ruby debugger.
-
-If called interactively with no prefix argument, the mode is toggled. A prefix
argument, captured as ARG, enables the mode if the argument is positive, and
disables it otherwise.
-
-\\{trepanx-track-mode-map}"
-
- :init-value nil
- ;; :lighter " trepanx" ;; mode-line indicator from realgud-track is
sufficient.
- ;; The minor mode bindings.
- :global nil
- :group 'realgud:trepanx
- :keymap trepanx-track-mode-map
-
- (realgud:track-set-debugger "trepanx")
- (if trepanx-track-mode
- (progn
- (realgud-track-mode-setup 't)
- (trepanx-track-mode-hook))
- (progn
- (setq realgud-track-mode nil)
- ))
-)
-
-(provide-me "realgud:trepanx-")
diff --git a/realgud/debugger/trepanx/trepanx.el
b/realgud/debugger/trepanx/trepanx.el
deleted file mode 100644
index ede3163..0000000
--- a/realgud/debugger/trepanx/trepanx.el
+++ /dev/null
@@ -1,64 +0,0 @@
-;;; Copyright (C) 2010-2011, 2014-2015 Rocky Bernstein <address@hidden>
-;; `trepanx' Main interface to trepanx via Emacs
-(require 'load-relative)
-(require-relative-list '("../../common/helper") "realgud-")
-(require-relative-list '("../../common/track") "realgud-")
-(require-relative-list '("core" "track-mode") "realgud:trepanx-")
-
-(declare-function trepanx-query-cmdline 'realgud:trepanx-core)
-(declare-function trepanx-parse-cmd-args 'realgud:trepanx-core)
-(declare-function realgud:run-process 'realgud-run)
-
-;; This is needed, or at least the docstring part of it is needed to
-;; get the customization menu to work in Emacs 24.
-(defgroup realgud:trepanx nil
- "The realgud interface to the Rubinius \"trepanning\" debugger"
- :group 'ruby
- :group 'realgud
- :version "23.1")
-
-;; -------------------------------------------------------------------
-;; User definable variables
-;;
-
-(defcustom realgud:trepanx-command-name
- ;;"trepanx --emacs 3"
- "trepanx"
- "File name for executing the Ruby debugger and command options.
-This should be an executable on your path, or an absolute file name."
- :type 'string
- :group 'realgud:trepanx)
-
-;; -------------------------------------------------------------------
-;; The end.
-;;
-
-;;;###autoload
-(defun realgud:trepanx (&optional opt-command-line no-reset)
- "Invoke the trepanx Ruby debugger and start the Emacs user interface.
-
-String COMMAND-LINE specifies how to run trepanx.
-
-Normally command buffers are reused when the same debugger is
-reinvoked inside a command buffer with a similar command. If we
-discover that the buffer has prior command-buffer information and
-NO-RESET is nil, then that information which may point into other
-buffers and source buffers which may contain marks and fringe or
-marginal icons is reset."
- (interactive)
- (let* (
- (cmd-str (or opt-command-line (trepanx-query-cmdline "trepanx")))
- (cmd-args (split-string-and-unquote cmd-str))
- (parsed-args (trepanx-parse-cmd-args cmd-args))
- (script-args (cdr cmd-args))
- (script-name (car script-args))
- (cmd-buf))
- (realgud:run-process "trepanx" script-name cmd-args
- 'realgud:trepanx-minibuffer-history
- no-reset)
- )
- )
-
-(defalias 'trepanx 'realgud:trepanx)
-
-(provide-me "realgud-")
diff --git a/test/test-bt-pydb.el b/test/test-bt-pydb.el
deleted file mode 100644
index d32a2bd..0000000
--- a/test/test-bt-pydb.el
+++ /dev/null
@@ -1,44 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(require 'test-simple)
-(require 'load-relative)
-(load-file "./bt-helper.el")
-(load-file "../realgud/debugger/pydb/init.el")
-
-(declare-function setup-bt 'realgud-bt-helper)
-(declare-function __FILE__ 'load-relative)
-
-(test-simple-start)
-
-(eval-when-compile
- (defvar temp-bt)
-)
-
-(setq temp-bt
- (setup-bt "pydb"
- "->0 gcd(a=3, b=5) called from file '/test/gcd.py' at line 28
-##1 <module> execfile() file '/test/gcd.py' at line 41
-"))
-
-(with-current-buffer temp-bt
- (switch-to-buffer temp-bt)
- (goto-char (point-min))
- (dolist (pair
- '(
- ("->" . realgud-backtrace-number )
- ("gc" . font-lock-function-name-face )
- ("(" . font-lock-variable-name-face )
- ("/test" . realgud-file-name)
- ("2" . realgud-line-number)
- ("##" . realgud-backtrace-number)
- ("/test" . realgud-file-name)
- ("4" . realgud-line-number)
- ))
- (search-forward (car pair))
- (assert-eql (cdr pair)
- (get-text-property (point) 'face))
- )
- )
-
-(end-tests)
diff --git a/test/test-bt-pydbgr.el b/test/test-bt-pydbgr.el
deleted file mode 100644
index 2676d8c..0000000
--- a/test/test-bt-pydbgr.el
+++ /dev/null
@@ -1,43 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(require 'test-simple)
-(require 'load-relative)
-(load-file "./bt-helper.el")
-(load-file "../realgud/debugger/pydbgr/init.el")
-
-(declare-function setup-bt 'realgud-bt-helper)
-(declare-function __FILE__ 'load-relative)
-
-(test-simple-start)
-
-(eval-when-compile
- (defvar temp-bt)
-)
-
-(setq temp-bt
- (setup-bt "pydbgr"
- "->0 gcd(a=3, b=5) called from file '/test/gcd.py' at line 28
-##1 <module> execfile() file '/test/gcd.py' at line 41
-"))
-
-(with-current-buffer temp-bt
- (switch-to-buffer temp-bt)
- (goto-char (point-min))
- (dolist (pair
- '(
- ("->" . realgud-backtrace-number )
- ("gc" . font-lock-function-name-face )
- ("(" . font-lock-variable-name-face )
- ("/test" . realgud-file-name)
- ("2" . realgud-line-number)
- ("##" . realgud-backtrace-number)
- ("/test" . realgud-file-name)
- ("4" . realgud-line-number)
- ))
- (search-forward (car pair))
- (assert-equal (cdr pair)
- (get-text-property (point) 'face))
- )
- )
-(end-tests)
diff --git a/test/test-bt-trepanx.el b/test/test-bt-trepanx.el
deleted file mode 100644
index 6f8d3c4..0000000
--- a/test/test-bt-trepanx.el
+++ /dev/null
@@ -1,49 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(require 'test-simple)
-(require 'load-relative)
-(load-file "./bt-helper.el")
-(load-file "../realgud/debugger/trepanx/init.el")
-
-(declare-function setup-bt 'realgud-bt-helper)
-(declare-function __FILE__ 'load-relative)
-
-(test-simple-start)
-
-(eval-when-compile
- (defvar temp-bt)
-)
-
-(setq temp-bt
- (setup-bt "trepanx"
- " 0 Trepanning(Object)#debug_program(dbgr, ruby_path,
program_to_debug) at /foo.rb:10
- 3 main.__script__ at /bin/trepan:19
- 4 Kernel(Object)#load(name) at kernel/common/kernel.rb:678
- 5 main.__script__ at /home/rocky-rvm/.rvm/gems/rbx-head/bin/trepan:19
-"))
-
-(with-current-buffer temp-bt
- (switch-to-buffer temp-bt)
- (goto-char (point-min))
- (dolist (pair
- '(
- (" " . realgud-backtrace-number )
- ("Trepan" . font-lock-constant-face )
- ("Objec" . font-lock-variable-name-face )
- ("#" . font-lock-variable-name-face )
- ("(" . font-lock-variable-name-face )
- ("/foo" . realgud-file-name)
- ("1" . realgud-line-number)
- (" " . realgud-backtrace-number)
- ("mai" . font-lock-constant-face )
- ("/bin" . realgud-file-name)
- ("1" . realgud-line-number)
- ))
- (search-forward (car pair))
- (assert-equal (cdr pair)
- (get-text-property (point) 'face))
- )
- )
-
-(end-tests)
diff --git a/test/test-ipdb.el b/test/test-ipdb.el
new file mode 100644
index 0000000..e82e56f
--- /dev/null
+++ b/test/test-ipdb.el
@@ -0,0 +1,39 @@
+;; Press C-x C-e at the end of the next line to run this file test
non-interactively
+;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
+
+(require 'test-simple)
+(require 'load-relative)
+(load-file "../realgud/debugger/ipdb/ipdb.el")
+
+(eval-when-compile (defvar test:run-process-save))
+
+(declare-function ipdb-parse-cmd-args 'realgud:ipdb-core)
+(declare-function realgud:ipdb 'realgud:ipdb)
+(declare-function __FILE__ 'load-relative)
+
+(test-simple-start)
+
+;; Save value realgud:run-process and change it to something we want
+(setq test:run-process-save (symbol-function 'realgud:run-process))
+(defun realgud:run-process(debugger-name script-filename cmd-args
+ minibuffer-histroy &optional no-reset)
+ "Fake realgud:run-process used in testing"
+ (note
+ (format "%s %s %s" debugger-name script-filename cmd-args))
+ (assert-equal "ipdb" debugger-name "debugger name gets passed")
+ (assert-equal (expand-file-name "./gcd.py") script-filename "file name
check")
+ (assert-equal '("3" "5") (cddr cmd-args) "command args listified")
+ )
+
+(note "ipdb-parse-cmd-args")
+(assert-equal (list nil '("ipdb") (list (expand-file-name "foo")) nil)
+ (ipdb-parse-cmd-args '("ipdb" "foo")))
+(assert-equal (list nil '("ipdb") (list (expand-file-name "program.py") "foo")
nil)
+ (ipdb-parse-cmd-args
+ '("ipdb" "program.py" "foo")))
+
+(realgud:ipdb "ipdb ./gcd.py 3 5")
+;; Restore the old value of realgud:run-process
+(fset 'realgud:run-process test:run-process-save)
+
+(end-tests)
diff --git a/test/test-loc-regexp-trepanx.el b/test/test-loc-regexp-trepanx.el
deleted file mode 100644
index 316643d..0000000
--- a/test/test-loc-regexp-trepanx.el
+++ /dev/null
@@ -1,68 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(require 'test-simple)
-(require 'load-relative)
-(load-file "./regexp-helper.el")
-(load-file "../realgud/common/regexp.el")
-(load-file "../realgud/debugger/trepanx/init.el")
-
-(declare-function realgud-cmdbuf-info-loc-regexp 'realgud-buffer-command)
-(declare-function cmdbuf-loc-match 'realgud-regexp)
-(declare-function realgud-loc-pat-regexp 'realgud-regexp)
-(declare-function realgud-loc-pat-file-group 'realgud-regexp)
-(declare-function realgud-loc-pat-line-group 'realgud-regexp)
-(declare-function realgud-cmdbuf-info-file-group 'realgud-regexp)
-(declare-function realgud-cmdbuf-info-line-group 'realgud-regexp)
-(declare-function realgud-cmdbuf-info 'realgud-regexp)
-(declare-function make-realgud-cmdbuf-info 'realgud-regexp)
-(declare-function __FILE__ 'require-relative)
-
-(test-simple-start)
-
-(eval-when-compile
- (defvar dbg-name)
- (defvar realgud-pat-hash)
- (defvar loc-pat)
- (defvar test-dbgr)
- (defvar test-text)
- (defvar xagent-pat)
-)
-
-;; Some setup usually done in setting up the buffer.
-;; We customize this for the debugger trepan. Others may follow.
-;; FIXME: encapsulate this.
-(setq dbg-name "trepanx")
-(setq loc-pat (gethash "loc" (gethash dbg-name realgud-pat-hash)))
-(setq xagent-pat (gethash "rubinius-backtrace-Xagent" (gethash dbg-name
realgud-pat-hash)))
-
-(setq test-dbgr (make-realgud-cmdbuf-info
- :debugger-name dbg-name
- :loc-regexp (realgud-loc-pat-regexp loc-pat)
- :file-group (realgud-loc-pat-file-group loc-pat)
- :line-group (realgud-loc-pat-line-group loc-pat)))
-
-
-(defun xagent-match(text)
- (string-match (realgud-loc-pat-regexp xagent-pat) test-text)
-)
-
-(setq test-text "-- (../rbx-trepanning/tmp/rbxtest.rb:7 @5)")
-(assert-t (numberp (cmdbuf-loc-match test-text test-dbgr)) "basic location")
-
-(note "extract file name")
-(setq test-text "-- (../rbx-trepanning/tmp/rbxtest.rb:7 @5)")
-(assert-equal 0 (cmdbuf-loc-match test-text test-dbgr))
-(assert-equal "../rbx-trepanning/tmp/rbxtest.rb"
- (match-string (realgud-cmdbuf-info-file-group test-dbgr)
- test-text))
-(setq test-text "-- (../rbx-trepanning/tmp/rbxtest.rb:7 @5)")
-(assert-equal "7"
- (match-string
- (realgud-cmdbuf-info-line-group test-dbgr)
- test-text) "extract line number")
-
-(setq test-text "0xbfb63710: RakeFileUtils#ruby in
/home/rocky-rvm/.rvm/gems/rbx-head/gems/rake-0.8.7/lib/rake.rb:1094 (+61)")
-(assert-t (numberp (xagent-match test-text)) "basic xagent location")
-
-(end-tests)
diff --git a/test/test-pydb.el b/test/test-pydb.el
deleted file mode 100644
index 224cc05..0000000
--- a/test/test-pydb.el
+++ /dev/null
@@ -1,18 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(require 'test-simple)
-(require 'load-relative)
-(load-file "../realgud/debugger/pydb/pydb.el")
-(declare-function pydb-parse-cmd-args 'realgud:pydb)
-(declare-function __FILE__ 'load-relative)
-
-(test-simple-start)
-
-(note "pydb-parse-cmd-args")
-(assert-equal '(nil ("pydb") ("foo") nil)
- (pydb-parse-cmd-args '("pydb" "foo")))
-(assert-equal '(nil ("pydb") ("program.py" "foo") nil)
- (pydb-parse-cmd-args
- '("pydb" "program.py" "foo")))
-(end-tests)
diff --git a/test/test-pydbgr.el b/test/test-pydbgr.el
deleted file mode 100644
index 81d82db..0000000
--- a/test/test-pydbgr.el
+++ /dev/null
@@ -1,38 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(require 'test-simple)
-(require 'load-relative)
-(load-file "../realgud/debugger/pydbgr/pydbgr.el")
-(declare-function pydbgr-parse-cmd-args 'pydbgr-pdb)
-(declare-function __FILE__ 'load-relative)
-
-(test-simple-start)
-
-(note "pydbgr-parse-cmd-args")
-
-(assert-equal '(nil ("pydbgr") ("foo") nil)
- (pydbgr-parse-cmd-args '("pydbgr" "foo")))
-(assert-equal '(nil ("pydbgr" "-n") ("foo") nil)
- (pydbgr-parse-cmd-args '("pydbgr" "-n" "foo")))
-(assert-equal '(nil ("pydbgr" "--annotate=1") ("foo") t)
- (pydbgr-parse-cmd-args
- '("pydbgr" "--annotate=1" "foo")))
-(assert-equal '(nil ("mypydbgr" "--annotate=1") ("foo") t)
- (pydbgr-parse-cmd-args
- '("mypydbgr" "--annotate=1" "foo")))
-(assert-equal '(("python") ("pydbgr" "--annotate") ("1" "foo") t)
- (pydbgr-parse-cmd-args
- '("python" "pydbgr" "--annotate" "1" "foo")))
-(assert-equal '(("/usr/bin/python") ("pydbgr" "--different")
- ("foo") nil)
- (pydbgr-parse-cmd-args
- '("/usr/bin/python" "pydbgr"
- "--different" "foo")))
-(assert-equal '(nil ("program.py") ("foo") nil)
- (pydbgr-parse-cmd-args '("program.py" "foo")))
-(assert-equal '(nil ("pydbgr") ("program.py" "foo") nil)
- (pydbgr-parse-cmd-args
- '("pydbgr" "program.py" "foo")))
-
-(end-tests)
diff --git a/test/test-realgud.el b/test/test-realgud.el
index 2b400e2..2e7d09e 100644
--- a/test/test-realgud.el
+++ b/test/test-realgud.el
@@ -18,7 +18,7 @@
(note "realgud:loaded-features")
(set (make-local-variable 'test-realgud:features) (realgud:loaded-features))
-;; (dolist (feature '(realgud-trepan realgud-pydbgr
+;; (dolist (feature '(realgud-trepan
;; realgud-core))
;; (assert-t (not (not (member feature test-realgud:features)))) )
diff --git a/test/test-regexp-ipdb.el b/test/test-regexp-ipdb.el
new file mode 100644
index 0000000..71aaa4b
--- /dev/null
+++ b/test/test-regexp-ipdb.el
@@ -0,0 +1,105 @@
+;; Press C-x C-e at the end of the next line to run this file test
non-interactively
+;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
+
+(require 'test-simple)
+(load-file "../realgud/debugger/ipdb/init.el")
+(load-file "./regexp-helper.el")
+
+(declare-function __FILE__ 'load-relative)
+(declare-function prompt-match 'regexp-helper)
+
+(test-simple-start)
+
+(eval-when-compile
+ (defvar loc-pat) (defvar prompt-pat) (defvar realgud:ipdb-pat-hash)
+ (defvar tb-pat) (defvar test-text) (defvar prompt-str)
+ (defvar bps-pat)
+)
+
+(set (make-local-variable 'bps-pat)
+ (gethash "brkpt-set" realgud:ipdb-pat-hash))
+
+(set (make-local-variable 'loc-pat)
+ (gethash "loc" realgud:ipdb-pat-hash))
+
+(set (make-local-variable 'prompt-pat)
+ (gethash "prompt" realgud:ipdb-pat-hash))
+
+(set (make-local-variable 'tb-pat)
+ (gethash "lang-backtrace" realgud:ipdb-pat-hash))
+
+;; FIXME: we get a void variable somewhere in here when running
+;; even though we define it in lexical-let. Dunno why.
+;; setq however will workaround this.
+(setq test-text
+ " File \"/usr/lib/python2.6/code.py\", line 281, in raw_input")
+(note "traceback location matching")
+
+(assert-t (numberp (loc-match test-text tb-pat)) "basic traceback location")
+
+(assert-equal "/usr/lib/python2.6/code.py"
+ (match-string (realgud-loc-pat-file-group tb-pat)
+ test-text))
+
+(setq test-text
+ " File \"/usr/lib/python2.6/code.py\", line 281, in raw_input")
+(loc-match test-text tb-pat)
+(assert-equal "281"
+ (match-string (realgud-loc-pat-line-group tb-pat)
+ test-text) "extract line number")
+
+(note "breakpoint location matching")
+
+(setq test-text "Breakpoint 1 at /src/git/code/gcd.py:13")
+(assert-t (numberp (loc-match test-text bps-pat))
+ "basic breakpoint location")
+
+(assert-equal "/src/git/code/gcd.py"
+ (match-string (realgud-loc-pat-file-group
+ bps-pat)
+ test-text)
+ "extract breakpoint file name")
+
+
+(assert-equal "13"
+ (match-string (realgud-loc-pat-line-group
+ bps-pat)
+ test-text) "extract breakpoint line number")
+
+;; (set test-text "(c:\\working\\python\\helloworld.py:30): <module>")
+;;
+;; (assert-t (numberp (loc-match test-text loc-pat)) "MS DOS position
location")
+;; ;;
+;; (assert-equal "c:\\working\\python\\helloworld.py"
+;; (match-string (realgud-loc-pat-file-group loc-pat)
+;; test-text)
+;; (format "Failing file group is %s"
+;; (realgud-loc-pat-file-group tb-pat))
+;; "extract file name")
+;; (assert-equal "30"
+;; (match-string (realgud-loc-pat-line-group loc-pat)
+;; test-text) "extract line number")
+
+(setq test-text "> /usr/bin/ipython(24)<module>")
+(assert-t (numberp (loc-match test-text loc-pat)) "position location")
+(assert-equal "/usr/bin/ipython"
+ (match-string (realgud-loc-pat-file-group loc-pat)
+ test-text)
+ (format "Failing file group is %s"
+ (realgud-loc-pat-file-group tb-pat)))
+(assert-equal "24"
+ (match-string (realgud-loc-pat-line-group
+ loc-pat)
+ test-text)
+ "extract line number")
+
+
+(note "prompt matching")
+(set (make-local-variable 'prompt-str) "ipdb> ")
+(prompt-match prompt-str nil "debugger prompt: %s")
+(setq prompt-str "ipdb")
+(assert-nil (numberp (loc-match prompt-str prompt-pat))
+ (format "%s %s" "invalid debugger prompt"
+ prompt-str))
+
+(end-tests)
diff --git a/test/test-regexp-pydb.el b/test/test-regexp-pydb.el
deleted file mode 100644
index 3ccd402..0000000
--- a/test/test-regexp-pydb.el
+++ /dev/null
@@ -1,97 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(require 'test-simple)
-(load-file "../realgud/debugger/pydb/init.el")
-(load-file "./regexp-helper.el")
-
-(test-simple-start)
-
-
-(set (make-local-variable 'bps-pat)
- (gethash "brkpt-set" realgud:pydb-pat-hash))
-
-(set (make-local-variable 'loc-pat)
- (gethash "loc" realgud:pydb-pat-hash))
-
-(set (make-local-variable 'prompt-pat)
- (gethash "prompt" realgud:pydb-pat-hash))
-
-(set (make-local-variable 'tb-pat)
- (gethash "lang-backtrace" realgud:pydb-pat-hash))
-
-;; FIXME: we get a void variable somewhere in here when running
-;; even though we define it in lexical-let. Dunno why.
-;; setq however will workaround this.
-(set (make-local-variable 'text)
- " File \"/usr/lib/python2.6/code.py\", line 281, in raw_input")
-(note "traceback location matching")
-
-(assert-t (numberp (loc-match text tb-pat)) "basic traceback location")
-
-(assert-equal "/usr/lib/python2.6/code.py"
- (match-string (realgud-loc-pat-file-group tb-pat)
- text)
- (format "Failing file group is %s"
- (realgud-loc-pat-file-group tb-pat) "extract file name"))
-
-(assert-equal "281"
- (match-string (realgud-loc-pat-line-group tb-pat)
- text) "extract line number")
-
-(note "breakpoint location matching")
-
-(setq text "Breakpoint 1 at /src/git/code/gcd.py:13")
-(assert-t (numberp (loc-match text bps-pat)) "basic breakpoint location")
-
-(assert-equal "/src/git/code/gcd.py"
- (match-string (realgud-loc-pat-file-group
- bps-pat)
- text) "extract breakpoint file name")
-
-
-(assert-equal "13"
- (match-string (realgud-loc-pat-line-group
- bps-pat)
- text) "extract breakpoint line number")
-
-;; (set text "(c:\\working\\python\\helloworld.py:30): <module>")
-;;
-;; (assert-t (numberp (loc-match text loc-pat)) "MS DOS position location")
-;; ;;
-;; (assert-equal "c:\\working\\python\\helloworld.py"
-;; (match-string (realgud-loc-pat-file-group loc-pat)
-;; text)
-;; (format "Failing file group is %s"
-;; (realgud-loc-pat-file-group tb-pat))
-;; "extract file name")
-;; (assert-equal "30"
-;; (match-string (realgud-loc-pat-line-group loc-pat)
-;; text) "extract line number")
-
-;; (setq text "> /usr/bin/ipython(24)<module>")
-;; (assert-t (numberp (loc-match text loc-pat)) "position location")
-;; (assert-equal "/usr/bin/ipython"
-;; (match-string (realgud-loc-pat-file-group loc-pat)
-;; text)
-;; (format "Failing file group is %s"
-;; (realgud-loc-pat-file-group tb-pat)
-;; "extract file name"))
-;; (assert-equal "24"
-;; (match-string (realgud-loc-pat-line-group
-;; loc-pat)
-;; text)
-;; "extract line number")
-
-
-(note "prompt matching")
-(set (make-local-variable 'prompt-str) "(Pydb) ")
-(prompt-match prompt-str nil "debugger prompt: %s")
-(setq prompt-str "((Pydb)) ")
-(prompt-match prompt-str nil "nested debugger prompt: %s")
-(setq prompt-str "Pydb) ")
-(assert-nil (numberp (loc-match prompt-str prompt-pat))
- (format "%s %s" "invalid debugger prompt"
- prompt-str))
-
-(end-tests)
diff --git a/test/test-regexp-pydbgr.el b/test/test-regexp-pydbgr.el
deleted file mode 100644
index 4bc8e8b..0000000
--- a/test/test-regexp-pydbgr.el
+++ /dev/null
@@ -1,76 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(load-file "./regexp-helper.el")
-(load-file "../realgud/debugger/pydbgr/init.el")
-
-(test-simple-start)
-
-(setup-regexp-vars realgud-pydbgr-pat-hash)
-
-;; FIXME: we get a void variable somewhere in here when running
-;; even though we define it in lexical-let. Dunno why.
-;; setq however will workaround this.
-(setq text " File \"/usr/lib/python2.6/code.py\", line 281, in raw_input")
-
-(note "traceback location matching")
-(assert-t (numberp (loc-match text helper-tb)) "basic traceback location")
-(assert-equal "/usr/lib/python2.6/code.py"
- (match-string (realgud-loc-pat-file-group helper-tb)
- text)
- (format "Failing file group is %s"
- (realgud-loc-pat-file-group helper-tb) "extract file
name"))
-(assert-equal "281"
- (match-string (realgud-loc-pat-line-group helper-tb)
- text) "extract line number")
-
-(note "breakpoint location matching")
-(lexical-let ((text "Breakpoint 1 set at line 13 of file
/src/git/code/gcd.py"))
- (assert-t (numberp (loc-match text helper-bps)) "basic breakpoint location")
- (assert-equal "/src/git/code/gcd.py"
- (match-string (realgud-loc-pat-file-group helper-bps)
- text) "extract breakpoint file name")
- (assert-equal "13"
- (match-string (realgud-loc-pat-line-group helper-bps)
- text) "extract breakpoint line number")
- )
-
-(note "prompt matching")
-(lexical-let ((text "(c:\\working\\python\\helloworld.py:30): <module>"))
- (assert-t (numberp (loc-match text helper-loc)) "MS DOS position location")
- (assert-equal "c:\\working\\python\\helloworld.py"
- (match-string (realgud-loc-pat-file-group helper-loc)
- text)
- (format "Failing file group is %s"
- (realgud-loc-pat-file-group helper-tb) "extract file
name"))
- (assert-equal "30"
- (match-string (realgud-loc-pat-line-group helper-loc)
- text) "extract line number")
-
- )
-(lexical-let ((text "(/usr/bin/ipython:24): <module>"))
- (assert-t (numberp (loc-match text helper-loc)) "position location")
- (assert-equal "/usr/bin/ipython"
- (match-string (realgud-loc-pat-file-group helper-loc)
- text)
- (format "Failing file group is %s"
- (realgud-loc-pat-file-group helper-tb) "extract file
name"))
- (assert-equal "24"
- (match-string (realgud-loc-pat-line-group helper-loc)
- text) "extract line number")
- )
-
-(lexical-let
- ((text "(/tmp/eval_stringzDKTfr.py:1 remapped <string>): <module>"))
- (assert-t (numberp (loc-match text helper-loc)) "position location")
- (assert-equal "/tmp/eval_stringzDKTfr.py"
- (match-string (realgud-loc-pat-file-group helper-loc)
- text)
- (format "Failing file group is %s"
- (realgud-loc-pat-file-group helper-tb) "extract file
name"))
- (assert-equal "1"
- (match-string (realgud-loc-pat-line-group helper-loc)
- text) "extract line number")
- )
-
-(end-tests)
diff --git a/test/test-regexp-trepanx.el b/test/test-regexp-trepanx.el
deleted file mode 100644
index a43658c..0000000
--- a/test/test-regexp-trepanx.el
+++ /dev/null
@@ -1,72 +0,0 @@
-;; Press C-x C-e at the end of the next line to run this file test
non-interactively
-;; (test-simple-run "emacs -batch -L %s -l %s" (file-name-directory
(locate-library "test-simple.elc")) buffer-file-name)
-
-(load-file "../realgud/debugger/trepanx/init.el")
-(load-file "./regexp-helper.el")
-
-(test-simple-start)
-
-(set (make-local-variable 'helper-bps)
- (gethash "brkpt-set" realgud:trepanx-pat-hash))
-(set (make-local-variable 'prompt)
- (gethash "prompt" realgud:trepanx-pat-hash))
-(set (make-local-variable 'helper-tb)
- (gethash "lang-backtrace" realgud:trepanx-pat-hash))
-
-;; FIXME: we get a void variable somewhere in here when running
-;; even though we define it in lexical-let. Dunno why.
-;; setq however will workaround this.
-(set (make-local-variable 'text)
- " [0;31m Object#boom at tmp/boom.rb:2[0m")
-
-(assert-t (numberp (tb-loc-match text))
- "basic traceback location")
-
-(assert-equal 0 (tb-loc-match text)
- "match trepanx location")
-(assert-equal "tmp/boom.rb"
- (match-string (realgud-loc-pat-file-group helper-tb)
- text)
- "extract traceback file name")
-(setq text
- " { } in main.__script__ at /tmp/blam.rb:5")
-(assert-equal 0 (tb-loc-match text)
- "find a trepanx location")
-(assert-equal "/tmp/blam.rb"
- (match-string (realgud-loc-pat-file-group helper-tb)
- text)
- "extract traceback file name")
-
-(assert-equal "5"
- (match-string (realgud-loc-pat-line-group helper-tb)
- text)
- "extract traceback line number")
-
-(note "prompt matching")
-(set (make-local-variable 'prompt-pat)
- (gethash "prompt" realgud:trepanx-pat-hash))
-(prompt-match "((trepanx)): " nil "nested debugger prompt: %s")
-(prompt-match "((address@hidden)): "
- "@55" "nested debugger prompt with addr: %s")
-(prompt-match "((address@hidden)): " "@main"
- "nested debugger prompt with method: %s")
-(setq prompt-str "trepanx:")
-(assert-nil (loc-match prompt-str prompt-pat)
- (format "invalid prompt %s" prompt-str))
-
-(setq text "Set breakpoint 1: __script__() at /bin/irb:2 (@0)")
-
-(assert-t (numberp (bp-loc-match text))
- "basic breakpoint location")
-(assert-equal "/bin/irb"
- (match-string (realgud-loc-pat-file-group helper-bps)
- text)
- "extract breakpoint file name"
- )
-(assert-equal "2"
- (match-string (realgud-loc-pat-line-group helper-bps)
- text)
- "extract breakpoint line number"
- )
-
-(end-tests)
- [elpa] master 81f0b58 172/215: Merge pull request #114 from rocky/default-hash, (continued)
- [elpa] master 81f0b58 172/215: Merge pull request #114 from rocky/default-hash, Rocky Bernstein, 2016/07/30
- [elpa] master d2b8d13 134/215: Remove key argument of realgud:cmd-remap, Rocky Bernstein, 2016/07/30
- [elpa] master bf1cd9f 087/215: Travis emacs doesn't do font-lock-ensure. Use older form for now, Rocky Bernstein, 2016/07/30
- [elpa] master 8e00edc 174/215: Further cleanup in cmds.el: remove unused arguments, Rocky Bernstein, 2016/07/30
- [elpa] master 6429d94 129/215: Revert "Manually generate "recursive" autoloads for subdirectories", Rocky Bernstein, 2016/07/30
- [elpa] master 1ff6720 189/215: Merge pull request #127 from realgud/quit-confirm, Rocky Bernstein, 2016/07/30
- [elpa] master 70ead82 184/215: Correct "breakpoint deleted" regexp, Rocky Bernstein, 2016/07/30
- [elpa] master b71750a 193/215: Relax deleted breakpoint regexp in PDB to support Python 2 and 3, Rocky Bernstein, 2016/07/30
- [elpa] master 2f30f42 176/215: Merge pull request #119 from realgud/improve-break-C-u, Rocky Bernstein, 2016/07/30
- [elpa] master cbfa182 203/215: Improve realgud:run-process docstring, Rocky Bernstein, 2016/07/30
- [elpa] master 333a946 104/215: Merge pull request #74 from rocky/ipdb,
Rocky Bernstein <=
- [elpa] master 2316417 205/215: Reassign more copyrights to FSF, Rocky Bernstein, 2016/07/30
- [elpa] master 703e087 185/215: Correct cmd capabilities for perldb and trepanjs, Rocky Bernstein, 2016/07/30
- [elpa] master d367cab 196/215: Correct python trepan enable/disable patterns, Rocky Bernstein, 2016/07/30
- [elpa] master 5a84817 178/215: Fix invalid references to realgud:loc-follow, Rocky Bernstein, 2016/07/30
- [elpa] master 8edfb04 215/215: Not needed for elpa, Rocky Bernstein, 2016/07/30
- [elpa] master d97bf08 179/215: Update doc links, Rocky Bernstein, 2016/07/30
- [elpa] master e4c05b2 208/215: Merge pull request #137 from realgud/gdb-mi-warning, Rocky Bernstein, 2016/07/30
- [elpa] master 78d9901 122/215: Add a "safe mode" setting (on by default), Rocky Bernstein, 2016/07/30
- [elpa] master c49e2b3 204/215: Another small doc change, Rocky Bernstein, 2016/07/30
- [elpa] master 2f8efa3 130/215: Merge pull request #95 from rocky/revert-94-84-fix-autoloads, Rocky Bernstein, 2016/07/30