[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] master a3c4726: Update realgud to MELPA stable 1.4.4
From: |
Rocky Bernstein |
Subject: |
[elpa] master a3c4726: Update realgud to MELPA stable 1.4.4 |
Date: |
Sat, 16 Dec 2017 11:31:07 -0500 (EST) |
branch: master
commit a3c472662f3d7ecd9c6477ca59192f1fc9c7349f
Author: rocky <address@hidden>
Commit: rocky <address@hidden>
Update realgud to MELPA stable 1.4.4
---
packages/realgud/realgud.el | 93 +++++------
packages/realgud/realgud/Makefile.am | 20 +++
packages/realgud/realgud/common/bp.el | 6 +-
.../realgud/realgud/common/buffer/backtrace.el | 21 ++-
packages/realgud/realgud/common/buffer/command.el | 92 +++++++++--
packages/realgud/realgud/common/cmds.el | 58 ++++---
packages/realgud/realgud/common/fringe.el | 66 +++-----
packages/realgud/realgud/common/loc.el | 27 ++-
packages/realgud/realgud/common/run.el | 17 +-
packages/realgud/realgud/common/shortkey.el | 8 +-
packages/realgud/realgud/common/track-mode.el | 3 +-
packages/realgud/realgud/common/track.el | 184 ++++++++++++++-------
packages/realgud/realgud/common/utils.el | 12 +-
packages/realgud/realgud/debugger/bashdb/bashdb.el | 1 +
packages/realgud/realgud/debugger/bashdb/init.el | 3 +-
packages/realgud/realgud/debugger/gdb/core.el | 6 +-
packages/realgud/realgud/debugger/gdb/init.el | 4 +-
packages/realgud/realgud/debugger/gub/gub.el | 1 +
packages/realgud/realgud/debugger/ipdb/ipdb.el | 1 +
packages/realgud/realgud/debugger/jdb/jdb.el | 1 +
packages/realgud/realgud/debugger/kshdb/init.el | 3 +-
packages/realgud/realgud/debugger/kshdb/kshdb.el | 1 +
packages/realgud/realgud/debugger/pdb/core.el | 5 +-
packages/realgud/realgud/debugger/pdb/pdb.el | 32 +++-
packages/realgud/realgud/debugger/perldb/perldb.el | 3 +-
packages/realgud/realgud/debugger/rdebug/core.el | 5 +-
packages/realgud/realgud/debugger/rdebug/rdebug.el | 1 +
packages/realgud/realgud/debugger/remake/core.el | 12 +-
packages/realgud/realgud/debugger/remake/remake.el | 1 +
.../realgud/realgud/debugger/trepan.pl/init.el | 1 +
.../realgud/realgud/debugger/trepan.pl/trepanpl.el | 1 +
packages/realgud/realgud/debugger/trepan/trepan.el | 1 +
packages/realgud/realgud/debugger/trepan2/init.el | 10 +-
.../realgud/realgud/debugger/trepan2/trepan2.el | 13 +-
packages/realgud/realgud/debugger/trepan3k/core.el | 2 +-
packages/realgud/realgud/debugger/trepan3k/init.el | 10 +-
.../realgud/realgud/debugger/trepan3k/trepan3k.el | 14 +-
packages/realgud/realgud/debugger/zshdb/init.el | 1 +
packages/realgud/realgud/debugger/zshdb/zshdb.el | 1 +
39 files changed, 485 insertions(+), 256 deletions(-)
diff --git a/packages/realgud/realgud.el b/packages/realgud/realgud.el
index 13a9624..0826911 100644
--- a/packages/realgud/realgud.el
+++ b/packages/realgud/realgud.el
@@ -3,7 +3,7 @@
;; Author: Rocky Bernstein <address@hidden>
;; Version: 1.4.4
;; Package-Type: multi
-;; Package-Requires: ((load-relative "1.3") (loc-changes "1.2") (test-simple
"1.3.0") (cl-lib "0.5") (emacs "24"))
+;; Package-Requires: ((load-relative "1.2") (loc-changes "1.2") (test-simple
"1.2.0") (cl-lib "0.5") (emacs "24"))
;; URL: http://github.com/realgud/realgud/
;; Keywords: gdb, python, perl, go, bash, nodejs, zsh, bashdb, zshdb, remake,
make, trepan, perldb
@@ -68,7 +68,7 @@
;; Press C-x C-e at the end of the next line configure the program in
;; for building via "make" to get set up.
-;; (compile (format "EMACSLOADPATH=:%s:%s ./autogen.sh" (file-name-directory
(locate-library "test-simple.elc")) (file-name-directory (locate-library
"load-relative.elc")) (file-name-directory (locate-library "loc-changes.elc"))))
+;; (compile (format "EMACSLOADPATH=:%s:%s:%s ./autogen.sh"
(file-name-directory (locate-library "test-simple.elc")) (file-name-directory
(locate-library "load-relative.elc")) (file-name-directory (locate-library
"loc-changes.elc"))))
(require 'load-relative)
@@ -80,28 +80,31 @@
;; FIXME: extend require-relative for "autoload".
(defun realgud:load-features()
- (require-relative-list
- '(
- "./realgud/common/track-mode"
- "./realgud/common/utils"
- "./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/rdebug/rdebug"
- "./realgud/debugger/remake/remake"
- "./realgud/debugger/trepan/trepan"
- "./realgud/debugger/trepanjs/trepanjs"
- "./realgud/debugger/trepan.pl/trepanpl"
- "./realgud/debugger/trepan2/trepan2"
- "./realgud/debugger/trepan3k/trepan3k"
- "./realgud/debugger/zshdb/zshdb"
- ) "realgud-")
+ (progn
+ (require-relative-list
+ '(
+ "./realgud/common/track-mode"
+ "./realgud/common/utils"
+ "./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/rdebug/rdebug"
+ "./realgud/debugger/remake/remake"
+ "./realgud/debugger/trepan/trepan"
+ "./realgud/debugger/trepanjs/trepanjs"
+ "./realgud/debugger/trepan.pl/trepanpl"
+ "./realgud/debugger/trepan2/trepan2"
+ "./realgud/debugger/trepan3k/trepan3k"
+ "./realgud/debugger/zshdb/zshdb"
+ ) "realgud-")
+ (realgud:loaded-features)
+ )
)
(load-relative "./realgud/common/custom")
@@ -113,42 +116,20 @@
)
(defun realgud:loaded-features()
- "Return a list of loaded debugger features. These are the
-features that start with 'realgud-' and also include standalone debugger
features
-like 'pydbgr'."
- (let ((result nil)
- (feature-str))
- (dolist (feature features result)
- (setq feature-str (symbol-name feature))
- (cond ((eq 't
- (string-prefix-p feature-str "realgud-"))
- (setq result (cons feature-str result)))
- ((eq 't
- (string-prefix-p feature-str "nodejs"))
- (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)))
- ((eq 't
- ;; No trailing '-' to get a plain "trepanx".
- (string-prefix-p feature-str "trepanx"))
- (setq result (cons feature-str result)))
- ('t nil))
- )
- )
-)
+ "Return a list of loaded debugger features. These are the features
+that start with 'realgud-' and 'realgud:'"
+
+ (delq nil
+ (mapcar (lambda (x) (and (string-match-p
"^\\(realgud:\\|realgud-\\)" (symbol-name x)) x))
+ features)))
(defun realgud:unload-features()
"Remove all features loaded from this package. Used in
`realgud:reload-features'. See that."
- (interactive "")
- (let ((result (realgud:loaded-features)))
- (dolist (feature result result)
- (unless (symbolp feature) (setq feature (make-symbol feature)))
- (if (featurep feature)
- (unload-feature feature) 't))
- ))
+ (let ((removal-set (realgud:loaded-features)))
+ (dolist (feature removal-set)
+ (unload-feature feature t))
+ removal-set)) ; return removed set
(defun realgud:reload-features()
"Reload all features loaded from this package. Useful if have
diff --git a/packages/realgud/realgud/Makefile.am
b/packages/realgud/realgud/Makefile.am
index 75a2af8..c87e282 100644
--- a/packages/realgud/realgud/Makefile.am
+++ b/packages/realgud/realgud/Makefile.am
@@ -1 +1,21 @@
+# Directories to run recursive makes
SUBDIRS = common debugger lang
+
+# lispdir needs to get set here because it seems
+# to automatically use the parent root. Not sure
+# why that is since none of the other subdirectories have this
+# problem.
+lispdir = ${datarootdir}/emacs/site-lisp/realgud
+
+# By default this is based off of $lispdir, but that
+# is set funny, so we'll be explicit about lispdir_realgud,
+# although in fact it isn't used.
+lispdir_realgud = ${datarootdir}/emacs/site-lisp/realgud
+
+# .nosearch isn't a lisp file, but we want it installed along with the
+# lisp files.
+lisp_LISP = .nosearch
+
+# Overwrite clean-lisp target so it doesn't remove .nosearch
+# Note: There are no lisp files in this directory
+clean-lisp:
diff --git a/packages/realgud/realgud/common/bp.el
b/packages/realgud/realgud/common/bp.el
index 8d426e3..4e13a15 100644
--- a/packages/realgud/realgud/common/bp.el
+++ b/packages/realgud/realgud/common/bp.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2010, 2012-2015 Free Software Foundation, Inc
+;; Copyright (C) 2010, 2012-2015, 2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -106,12 +106,12 @@ Only used in text terminals: fringe icons always use
:group 'realgud-bp)
(defface realgud-bp-line-enabled-face
- '((t :inherit diff-removed))
+ '((t :underline "red"))
"Face for lines with enabled breakpoints."
:group 'realgud-bp)
(defface realgud-bp-line-disabled-face
- '((t))
+ '((t :underline "gray"))
"Face for lines with disabled breakpoints."
:group 'realgud-bp)
diff --git a/packages/realgud/realgud/common/buffer/backtrace.el
b/packages/realgud/realgud/common/buffer/backtrace.el
index 84290be..0a7908f 100644
--- a/packages/realgud/realgud/common/buffer/backtrace.el
+++ b/packages/realgud/realgud/common/buffer/backtrace.el
@@ -28,14 +28,16 @@
(require-relative-list
'("command") "realgud-buffer-")
-(declare-function realgud-cmdbuf-debugger-name 'realgud-buffer-command)
-(declare-function realgud-cmdbuf? 'realgud-buffer-command)
+(declare-function realgud-cmdbuf-debugger-name 'realgud-buffer-command)
+(declare-function realgud-cmdbuf? 'realgud-buffer-command)
+(declare-function realgud-cmdbuf-info-divert-output?= 'realgud-buffer-command)
(declare-function realgud-backtrace-mode (cmdbuf))
(declare-function realgud:cmd-backtrace (arg))
(declare-function realgud-cmdbuf-pat(key))
(declare-function realgud-cmdbuf-info-in-srcbuf?= (arg))
(declare-function realgud-get-cmdbuf 'realgud-buffer-helper)
(declare-function realgud:file-loc-from-line 'realgud-file)
+(declare-function buffer-killed? 'realgud-helper)
(declare-function realgud:loc-describe 'realgud-loc)
(cl-defstruct realgud-backtrace-info
@@ -407,6 +409,15 @@ filename, line number, whether the frame is selected as
text properties."
;; FIXME: Remove hack that group 1 is always the frame indicator.
(frame-indicator
(substring stripped-string (match-beginning 1) (match-end 1)))
+ ;; From https://github.com/realgud/realgud/pull/192
+ ;; Each frame of backtrace is searched via string-match
+ ;; invocation and a position of the current frame is
+ ;; updated via (setq last-pos (match-end 0)) in the end of
+ ;; the loop. But somewhere in the body of the loop (I do
+ ;; not know exactly where), there is another call to
+ ;; string-match and it messes up all positions.
+ (whole-match-begin (match-beginning 0))
+ (whole-match-end (match-end 0))
(frame-num-pos)
)
@@ -462,12 +473,12 @@ filename, line number, whether the frame is selected as
text properties."
(when (and (stringp filename) (numberp line-num))
(let ((loc (realgud:file-loc-from-line filename line-num cmdbuf)))
- (put-text-property (match-beginning 0) (match-end 0)
+ (put-text-property whole-match-begin whole-match-end
'loc loc string)
))
- (put-text-property (match-beginning 0) (match-end 0)
+ (put-text-property whole-match-begin whole-match-end
'frame-num frame-num string)
- (setq last-pos (match-end 0))
+ (setq last-pos whole-match-end)
(if (string-match frame-indicator-re frame-indicator)
(setq selected-frame-num frame-num))
diff --git a/packages/realgud/realgud/common/buffer/command.el
b/packages/realgud/realgud/common/buffer/command.el
index bd8aaca..8e0e66c 100644
--- a/packages/realgud/realgud/common/buffer/command.el
+++ b/packages/realgud/realgud/common/buffer/command.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
;; This program is free software; you can redistribute it and/or modify
@@ -156,6 +156,51 @@
(insert "\n")
)))
+;; FIXME: this is a cheat. We are inserting
+;; and afterwards inserting ""
+(defun realgud:cmdbuf-bp-list-describe (info)
+ (let ((bp-list (realgud-cmdbuf-info-bp-list info)))
+ (cond (bp-list
+ (insert "** Breakpoint list (bp-list)\n")
+ (dolist (loc bp-list "")
+ (let ((bp-num (realgud-loc-num loc)))
+ (insert (format "*** Breakpoint %d\n" bp-num))
+ (realgud:org-mode-append-loc loc))))
+ ;; Since we are inserting, the below in fact
+ ;; inserts nothing. The string return is
+ ;; aspirational for when this is fixed
+ (t "\n")
+ )))
+
+(defun realgud:org-mode-encode (header object)
+ "Return an org-mode representation of OBJECT as an org-mode string."
+ (format "%s%s" header
+ (cond ((not object) "nil\n")
+ ((stringp object) (format "%s\n" object))
+ ((keywordp object) (json-encode-string
+ (substring (symbol-name object) 1)))
+ ((symbolp object) (json-encode-string
+ (symbol-name object)))
+ ((numberp object) (json-encode-number object))
+ ((arrayp object) (json-encode-array object))
+ ((hash-table-p object) (realgud:org-mode-encode-htable object))
+ ;; ((listp object) (realgud:org-mode-encodelist object))
+ (t (signal 'error (list object))))))
+
+(defun realgud:org-mode-encode-htable (hash-table)
+ "Return an org-mode representation of HASH-TABLE as a s."
+ (format "%s"
+ (json-join
+ (let (r)
+ (maphash
+ (lambda (k v)
+ (push (format
+ " - %s\t::\t%s" k (realgud:org-mode-encode v ""))
+ r))
+ hash-table)
+ r)
+ "")))
+
(defun realgud:cmdbuf-info-describe (&optional buffer)
"Display realgud-cmdcbuf-info fields of BUFFER.
BUFFER is either a debugger command or source buffer. If BUFFER is not given
@@ -172,21 +217,25 @@ Information is put in an internal buffer called
*Describe*."
(switch-to-buffer (get-buffer-create "*Describe*"))
(setq buffer-read-only 'nil)
(delete-region (point-min) (point-max))
- (insert "#+STARTUP: showall\n")
;;(insert "#+OPTIONS: H:2 num:nil toc:t \\n:nil ::t |:t
^:nil -:t f:t *:t tex:t d:(HIDE) tags:not-in-toc\n")
- (insert (format "#+TITLE: Debugger info for %s\n" cmdbuf-name))
- (insert "** General Information (")
- (insert-text-button
- "realgud-cmdbuf-info"
- ;; FIXME figure out how to set buffer to cmdbuf so we get
cmdbuf value
- 'action (lambda(button) (describe-variable
'realgud-cmdbuf-info))
- 'help-echo "mouse-2: help-on-variable")
- (insert ")\n")
+ (insert (format "#+TITLE: Debugger info for %s
+
+This is based on an org-mode buffer. Hit tab to expand/contract sections.
+\n"
+ cmdbuf-name))
+ (insert "** General Information (realgud-cmdbuf-info)\n")
+ ;; (insert "** General Information (")
+ ;; (insert-text-button
+ ;; "realgud-cmdbuf-info"
+ ;; ;; FIXME figure out how to set buffer to cmdbuf so we get
cmdbuf value
+ ;; 'action (lambda(button) (describe-variable
'realgud-cmdbuf-info))
+ ;; 'help-echo "mouse-2: help-on-variable")
+ ;; (insert ")\n")
(mapc 'insert
(list
(format " - Debugger name ::\t%s\n"
- (json-encode (realgud-cmdbuf-info-debugger-name
info)))
+ (realgud-cmdbuf-info-debugger-name info))
(format " - Command-line args ::\t%s\n"
(json-encode (realgud-cmdbuf-info-cmd-args
info)))
(format " - Starting directory ::\t%s\n"
@@ -197,19 +246,28 @@ Information is put in an internal buffer called
*Describe*."
(realgud-cmdbuf-info-last-input-end info))
(format " - Source should go into short-key mode? ::
%s\n"
(realgud-cmdbuf-info-src-shortkey? info))
- (format " - Breakpoint list ::\t %s\n"
- (realgud-cmdbuf-info-bp-list info))
- (format " - Remap table for debugger commands
::\n\t%s\n"
- (json-encode (realgud-cmdbuf-info-cmd-hash
info)))
- (format " - Backtrace buffer ::\t%s\n"
- (realgud-cmdbuf-info-bt-buf info))
(format " - In debugger? ::\t%s\n"
(realgud-cmdbuf-info-in-debugger? info))
+
+ (realgud:org-mode-encode "\n*** Remap table for debugger
commands\n"
+
(realgud-cmdbuf-info-cmd-hash info))
+ ;; (realgud:org-mode-encode "\n*** Backtrace buffer"
+ ;;
(realgud-cmdbuf-info-bt-buf info))
+ ;; (format " - Backtrace buffer ::\t%s\n"
+ ;; (realgud-cmdbuf-info-bt-buf info))
))
(insert "\n")
+ (realgud:cmdbuf-bp-list-describe info)
+ (insert "\n")
(realgud:cmdbuf-buffers-describe info)
(insert "\n")
(realgud:loc-hist-describe (realgud-cmdbuf-info-loc-hist info))
+ (insert "
+#+STARTUP: overview
+ #+STARTUP: content
+ #+STARTUP: showall
+ #+STARTUP: showeverything
+")
(goto-char (point-min))
(realgud:info-mode)
)
diff --git a/packages/realgud/realgud/common/cmds.el
b/packages/realgud/realgud/common/cmds.el
index 8f02555..9c7f88f 100644
--- a/packages/realgud/realgud/common/cmds.el
+++ b/packages/realgud/realgud/common/cmds.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -16,6 +16,7 @@
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
(require 'load-relative)
+(require 'thingatpt)
(require-relative-list '("send" "core") "realgud-")
(require-relative-list '("buffer/command") "realgud-buffer-")
(require-relative-list '("buffer/source") "realgud-buffer-")
@@ -86,26 +87,31 @@ with other motion initiated by debugger messages."
(defconst realgud-cmd:default-hash
(let ((hash (make-hash-table :test 'equal)))
- (puthash "backtrace" "backtrace" hash)
- (puthash "break" "break %X:%l" hash)
- (puthash "clear" "clear %l" hash)
- (puthash "continue" "continue" hash)
- (puthash "delete" "delete %p" hash)
- (puthash "disable" "disable %p" hash)
- (puthash "down" "down %p" hash)
- (puthash "enable" "enable %p" hash)
- (puthash "eval" "eval %s" hash)
- (puthash "finish" "finish" hash)
- (puthash "frame" "frame %p" hash)
- (puthash "jump" "jump %l" hash)
- (puthash "kill" "kill" hash)
- (puthash "next" "next %p" hash)
+ (puthash "backtrace" "backtrace" hash)
+ (puthash "break" "break %X:%l" hash)
+ (puthash "break_fn" "break %s" hash)
+ (puthash "clear" "clear %l" hash)
+ (puthash "continue" "continue" hash)
+ (puthash "delete" "delete %p" hash)
+ (puthash "delete_all" "delete" hash)
+ (puthash "disable" "disable %p" hash)
+ (puthash "disable_all" "disable" hash)
+ (puthash "down" "down %p" hash)
+ (puthash "enable" "enable %p" hash)
+ (puthash "enable_all" "enable" hash)
+ (puthash "eval" "eval %s" hash)
+ (puthash "finish" "finish" hash)
+ (puthash "frame" "frame %p" hash)
+ (puthash "help" "help" hash)
+ (puthash "jump" "jump %l" hash)
+ (puthash "kill" "kill" hash)
+ (puthash "next" "next %p" hash)
(puthash "repeat-last" "\n" hash)
- (puthash "restart" "run" hash)
- (puthash "shell" "shell" hash)
- (puthash "step" "step %p" hash)
- (puthash "until" "until" hash)
- (puthash "up" "up %p" hash)
+ (puthash "restart" "run" hash)
+ (puthash "shell" "shell" hash)
+ (puthash "step" "step %p" hash)
+ (puthash "until" "until" hash)
+ (puthash "up" "up %p" hash)
hash)
"Default hash of command name → debugger command.
This is used as a fallback when the debugger-specific command
@@ -283,6 +289,18 @@ EVENT should be a mouse click on the left fringe or
margin."
#'realgud:cmd-eval-region
#'realgud:cmd-eval)))
+(defun realgud:cmd-eval-at-point()
+ "Eval symbol under point."
+ (interactive)
+
+ (beginning-of-thing 'symbol)
+ (set-mark-command 'nil)
+ (end-of-thing 'symbol)
+
+ (realgud:cmd-run-command
+ (read-string "Eval: " (thing-at-point 'symbol))
+ "eval"))
+
(defun realgud:cmd-finish(&optional arg)
"Run until the completion of the current stack frame.
diff --git a/packages/realgud/realgud/common/fringe.el
b/packages/realgud/realgud/common/fringe.el
index c50153b..f974e28 100644
--- a/packages/realgud/realgud/common/fringe.el
+++ b/packages/realgud/realgud/common/fringe.el
@@ -29,51 +29,27 @@
;; FIXME: Figure out how to do this as a macro.
-(if (equal 'dark (frame-parameter nil 'background-mode))
- (progn
- (defface realgud-overlay-arrow1
- '((t
- :foreground "green"
- :weight bold))
- "Fringe face for current position."
- :group 'realgud)
-
- (defface realgud-overlay-arrow2
- '((t
- :foreground "white"
- :weight bold))
- "Fringe face for position one back in fringe."
- :group 'realgud)
-
- (defface realgud-overlay-arrow3
- '((t
- :foreground "gray"
- :weight bold))
- "Fringe face for position two back in fringe."
- :group 'realgud)
- )
- ;; else
- (progn
- (defface realgud-overlay-arrow1
- '((t
- :foreground "black"
- :weight bold))
- "Fringe face for current position."
- :group 'realgud)
-
- (defface realgud-overlay-arrow2
- '((t
- :foreground "gray"
- :weight bold))
- "Fringe face for position one back in fringe."
- :group 'realgud)
-
- (defface realgud-overlay-arrow3
- '((t
- :foreground "gainsboro"
- :weight bold))
- "Fringe face for position two back in fringe."
- :group 'realgud)))
+(defface realgud-overlay-arrow1
+ '((((class color) (min-colors 16) (background light)) :foreground
"ForestGreen" :weight bold)
+ (((class color) (min-colors 16) (background dark)) :foreground
"PaleGreen" :weight bold)
+ (((class color) (min-colors 8)) :foreground "green")
+ (((class grayscale) (background light)) :foreground "Black" :weight bold)
+ (((class grayscale) (background dark)) :foreground "White" :weight bold)
+ (t :weight bold))
+ "Realgud fringe face for current position indicator."
+ :group 'realgud)
+
+(defface realgud-overlay-arrow2
+ '((((background dark)) :foreground "white" :weight bold)
+ (((background light)) :foreground "black" :weight bold))
+ "Fringe face for current position."
+ :group 'realgud)
+
+(defface realgud-overlay-arrow3
+ '((((background dark)) :foreground "DimGray")
+ (((background light)) :foreground "DarkGray"))
+ "Fringe face for current position."
+ :group 'realgud)
(defvar realgud-overlay-arrow1 nil
diff --git a/packages/realgud/realgud/common/loc.el
b/packages/realgud/realgud/common/loc.el
index 76584c0..f90436f 100644
--- a/packages/realgud/realgud/common/loc.el
+++ b/packages/realgud/realgud/common/loc.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -62,9 +62,16 @@ without buffer properties."
Information is put in an internal buffer called *Describe*."
(interactive "")
(switch-to-buffer (get-buffer-create "*Describe*"))
- (let ((link-start) (link-end) (map) (filename))
+ (realgud:org-mode-append-loc loc))
+
+(defun realgud:org-mode-append-loc (loc)
+ "Display realgud-cmdcbuf-info.
+Information is put in an internal buffer called *Describe*."
+ (let ((column-number (realgud-loc-column-number loc))
+ (bp-num (realgud-loc-num loc))
+ (source-text (realgud-loc-source-text loc))
+ (filename (realgud-loc-filename loc)))
(insert " - filename :: ")
- (setq filename (realgud-loc-filename loc))
(put-text-property
(insert-text-button filename
'action 'realgud:follow-event
@@ -75,10 +82,16 @@ Information is put in an internal buffer called *Describe*."
(mapc 'insert
(list
(format " - line number :: %s\n" (realgud-loc-line-number loc))
- (format " - brkpt num :: %s\n" (realgud-loc-num loc))
- (format " - column number :: %s\n"
- (realgud-loc-column-number loc))
- (format " - source text :: %s\n" (realgud-loc-source-text loc))
+ (if bp-num
+ (format " - brkpt num :: %s\n" (realgud-loc-num loc))
+ "")
+ (if column-number
+ (format " - column number :: %s\n"
+ (realgud-loc-column-number loc))
+ "")
+ (if source-text
+ (format " - source text :: %s\n" (realgud-loc-source-text
loc))
+ "")
))
;; Make locations clickable
(insert " - source marker :: ")
diff --git a/packages/realgud/realgud/common/run.el
b/packages/realgud/realgud/common/run.el
index f78bd35..b34a3f0 100644
--- a/packages/realgud/realgud/common/run.el
+++ b/packages/realgud/realgud/common/run.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -198,6 +198,21 @@ Otherwise nil is returned.
)
)
+;; For name = trepan2 we produce:
+;;
+;; (defalias 'trepan2 'realgud:trepan2)
+;; (defvar realgud:trepan2-delayed-minibuffer-history nil
+;; "minibuffer history list for the command `realgud:trepan2-delayed'.")
+
+(defmacro realgud-deferred-invoke-setup (name)
+ `(progn
+ (defalias
+ ',(intern (concat name "-delayed"))
+ ',(intern (concat "realgud:" name "-delayed")))
+ (defvar ,(intern (concat "realgud:" name "-delayed-minibuffer-history"))
nil
+ ,(format "minibuffer history for the command `%s-delayed'" name))
+ ))
+
(provide-me "realgud:")
;; Local Variables:
diff --git a/packages/realgud/realgud/common/shortkey.el
b/packages/realgud/realgud/common/shortkey.el
index 43c741f..3483eed 100644
--- a/packages/realgud/realgud/common/shortkey.el
+++ b/packages/realgud/realgud/common/shortkey.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2010-2015 Free Software Foundation, Inc
+;; Copyright (C) 2010-2015, 2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -16,7 +16,7 @@
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
(require 'load-relative)
-(require-relative-list '("custom" "eval" "helper" "key" "lochist" "loc"
+(require-relative-list '("cmds" "custom" "eval" "helper" "key" "lochist" "loc"
"menu")
"realgud-")
(require-relative-list '("buffer/command" "buffer/helper" "buffer/source")
@@ -27,6 +27,7 @@
)
+(declare-function realgud-cmds--mouse-add-remove-bp 'realgud-cmds)
(declare-function realgud-cmdbuf?
'realgud-buffer-command)
(declare-function realgud:debugger-name-transform 'realgud-helper)
(declare-function realgud-get-cmdbuf 'realgud-buffer-helper)
@@ -40,6 +41,8 @@
(declare-function realgud-srcbuf-info-was-read-only?= 'realgud-source)
(declare-function realgud-srcbuf-info-prev-local-map= 'realgud-source)
(declare-function realgud-srcbuf? 'realgud-buffer-source)
+(declare-function realgud--ensure-attached 'realgud-buffer-source)
+(declare-function realgud-srcbuf-info-set? 'realgud-buffer-source)
;; (defvar realgud::tool-bar-map) ;; fully defined in track-mode.el
@@ -62,6 +65,7 @@
(define-key map "j" 'realgud:cmd-jump)
(define-key map "c" 'realgud:cmd-continue)
(define-key map "e" 'realgud:cmd-eval-dwim)
+ (define-key map "E" 'realgud:cmd-eval-at-point)
(define-key map "U" 'realgud:cmd-until)
(define-key map [mouse-2] 'realgud:tooltip-eval)
(define-key map [left-fringe mouse-1] #'realgud-cmds--mouse-add-remove-bp)
diff --git a/packages/realgud/realgud/common/track-mode.el
b/packages/realgud/realgud/common/track-mode.el
index b996e91..bb30e5b 100644
--- a/packages/realgud/realgud/common/track-mode.el
+++ b/packages/realgud/realgud/common/track-mode.el
@@ -30,8 +30,7 @@
(declare-function realgud-fringe-erase-history-arrows 'realgud-buffer-command)
(declare-function realgud:track-set-debugger 'realgud-track)
(declare-function realgud-populate-debugger-menu 'realgud-menu)
-(declare-function realgud-cmdbuf-info-divert-output?=
- 'realgud-buffer-command)
+(declare-function realgud-cmdbuf-info-divert-output?= 'realgud-buffer-command)
(declare-function realgud-cmdbuf-info-prior-prompt-regexp=
'realgud-buffer-command)
(declare-function realgud-cmdbuf-info-set?
diff --git a/packages/realgud/realgud/common/track.el
b/packages/realgud/realgud/common/track.el
index f26a0ed..1bae618 100644
--- a/packages/realgud/realgud/common/track.el
+++ b/packages/realgud/realgud/common/track.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -29,10 +29,11 @@
(require-relative-list
'("core" "file" "fringe"
"helper" "init" "loc" "lochist"
- "regexp" "shortkey" "window"
+ "regexp" "shortkey" "window" "utils"
"bp"
) "realgud-")
+
(require-relative-list
'("buffer/command" "buffer/helper" "buffer/source") "realgud-buffer-")
@@ -41,6 +42,12 @@
:type 'symbolp
:group 'realgud)
+(defcustom realgud-eval-message-print-length 1000
+"If non-nil, truncate eval output into the echo area"
+ :type 'symbolp
+ :group 'realgud)
+
+(declare-function buffer-killed? 'realgud-helper)
(declare-function fn-p-to-fn?-alias 'realgud-helper)
(declare-function realgud-bp-add-info 'realgud-bp)
(declare-function realgud-bp-del-info 'realgud-bp)
@@ -76,6 +83,7 @@
(declare-function realgud-window-src 'realgud-window)
(declare-function realgud-window-src-undisturb-cmd 'realgud-window)
(declare-function realgud-window-update-position 'realgud-window)
+(declare-function realgud:join-string 'realgud-utils)
(make-variable-buffer-local (defvar realgud-track-mode))
(fn-p-to-fn?-alias 'realgud-loc-p)
@@ -167,6 +175,33 @@ message."
"Buffer %s is not a debugger command buffer" buf)
t))
+(defun realgud:get-output-command(text)
+ "Splits the TEXT by newline."
+ (car (split-string text "\n")))
+
+(defun realgud:get-eval-output(text)
+ "Gets the output stripping the command and debugger prompt from the TEXT."
+ (realgud:join-string (butlast (cdr (split-string text "\n"))) "\n"))
+
+(defun realgud:get-command-name(command-name)
+ "Gets the COMMAND-NAME for this particular debugger."
+ (gethash command-name (buffer-local-value 'realgud-command-name-hash
(current-buffer))))
+
+(defun realgud:eval-command-p(text)
+ "Checks the TEXT if the command that was ran was an eval command."
+ (let ((cmd-name (realgud:get-command-name "eval")))
+ (and (stringp cmd-name) (string-prefix-p (realgud:get-command-name
"eval") (realgud:get-output-command text)))))
+
+(defun realgud:truncate-eval-message(text)
+ "Truncates the TEXT to the size of realgud-eval-message-print-length."
+ (if (< realgud-eval-message-print-length (length text))
+ (substring text 0 realgud-eval-message-print-length)
+ text))
+
+(defun realgud:message-eval-results(text)
+ "Output the TEXT to the message area."
+ (message (realgud:truncate-eval-message (realgud:get-eval-output text))))
+
(defun realgud:track-from-region(from to &optional cmd-mark opt-cmdbuf
shortkey-on-tracing? no-warn-if-no-match?)
"Find and position a buffer at the location found in the marked region.
@@ -192,6 +227,9 @@ evaluating (realgud-cmdbuf-info-loc-regexp
realgud-cmdbuf-info)"
(cmdbuf (or opt-cmdbuf (current-buffer)))
)
(unless (realgud:track-complain-if-not-in-cmd-buffer cmdbuf t)
+ (if (realgud:eval-command-p text)
+ (realgud:message-eval-results text))
+
(if (not (equal "" text))
(with-current-buffer cmdbuf
(if (realgud-sget 'cmdbuf-info 'divert-output?)
@@ -460,65 +498,79 @@ Otherwise return nil. CMD-MARK is set in the realgud-loc
object created.
(setq cmdbuf (or cmdbuf (current-buffer)))
(with-current-buffer cmdbuf
(unless (realgud:track-complain-if-not-in-cmd-buffer cmdbuf t)
- (let* ((loc-pat (realgud-cmdbuf-pat "brkpt-set")))
- (if loc-pat
- (let ((bp-num-group (realgud-loc-pat-num loc-pat))
- (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))
- (text-group (realgud-loc-pat-text-group loc-pat))
- (ignore-file-re (realgud-loc-pat-ignore-file-re loc-pat))
- (callback-loc-fn (realgud-sget 'cmdbuf-info
'callback-loc-fn))
+ (let* ((loc-pat (realgud-cmdbuf-pat "brkpt-set"))
+ (shortkey-mode? (realgud-sget 'cmdbuf-info 'src-shortkey?)))
+ (if loc-pat
+ (let ((bp-num-group (realgud-loc-pat-num loc-pat))
+ (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))
+ (text-group (realgud-loc-pat-text-group loc-pat))
+ (ignore-file-re (realgud-loc-pat-ignore-file-re loc-pat))
+ (callback-loc-fn (realgud-sget 'cmdbuf-info 'callback-loc-fn))
)
- (if loc-regexp
- (if (string-match loc-regexp text)
- (let* ((bp-num (match-string bp-num-group text))
- (filename (match-string file-group text))
- (line-str (match-string line-group text))
- (source-str (and text-group (match-string
text-group text)))
- (lineno (string-to-number (or line-str "1")))
- )
- (cond (callback-loc-fn
- (funcall callback-loc-fn text
- filename lineno source-str
- ignore-file-re cmd-mark))
-
- ('t
- (unless line-str
- (message "line number not found -- using 1"))
- (if (and filename lineno)
- (let* ((directory
- (cond ((boundp
'starting-directory) starting-directory)
- (t nil)))
- (loc-or-error
- (realgud:file-loc-from-line
- filename lineno
- cmd-mark
- source-str
- (string-to-number bp-num)
- ignore-file-re nil directory
- )))
- (if (stringp loc-or-error)
- (progn
- (message loc-or-error)
- ;; set to return nil
- nil)
- ;; else
- (let ((loc loc-or-error))
- ;; Add breakpoint to list of
breakpoints
- (with-current-buffer-safe
(marker-buffer (realgud-loc-marker loc))
- (realgud-bp-add-info loc))
-
- (realgud-cmdbuf-info-bp-list=
- (cons loc (realgud-sget
'cmdbuf-info 'bp-list)))
- ;; Set to return location
- loc-or-error))))
- nil))))
- nil))
- nil))
+ (if loc-regexp
+ (if (string-match loc-regexp text)
+ (let* ((bp-num (match-string bp-num-group text))
+ (filename (match-string file-group text))
+ (line-str (match-string line-group text))
+ (source-str (and text-group (match-string
text-group text)))
+ (lineno (string-to-number (or line-str "1")))
+ )
+ (cond (callback-loc-fn
+ (funcall callback-loc-fn text
+ filename lineno source-str
+ ignore-file-re cmd-mark))
+
+ ('t
+ (unless line-str
+ (message "line number not found -- using 1"))
+ (if (and filename lineno)
+ (let* ((directory
+ (cond ((boundp 'starting-directory)
starting-directory)
+ (t nil)))
+ (srcbuf)
+ (loc-or-error
+ (realgud:file-loc-from-line
+ filename lineno
+ cmd-mark
+ source-str
+ (string-to-number bp-num)
+ ignore-file-re nil directory
+ )))
+ (if (stringp loc-or-error)
+ (progn
+ (message loc-or-error)
+ ;; set to return nil
+ nil)
+ ;; else
+ (let ((loc loc-or-error)
+ (bp-list (realgud-sget
'cmdbuf-info 'bp-list)))
+
+ ;; Add src buffer mentioned and set it
possibly to go into shortkey mode
+ (setq srcbuf (realgud-loc-goto loc))
+ (realgud-cmdbuf-add-srcbuf srcbuf
cmdbuf)
+ (realgud-srcbuf-init-or-update srcbuf
cmdbuf)
+ (with-current-buffer srcbuf
+ (realgud-short-key-mode-setup
+ (or realgud-short-key-on-tracing?
shortkey-mode?)
+ ))
+
+ ;; Add breakpoint to list of
breakpoints
+ (with-current-buffer-safe
(marker-buffer (realgud-loc-marker loc))
+
(realgud-bp-add-info loc))
+
+ (unless (member loc bp-list)
+ (realgud-cmdbuf-info-bp-list= (cons
loc bp-list)))
+
+ ;; Set to return location
+ loc-or-error))))
+ nil))))
+ nil))
+ nil))
)
)
-)
+ )
(defun realgud-track-bp-delete(text &optional cmd-mark cmdbuf ignore-file-re)
"Do regular-expression matching to see if a breakpoint has been
@@ -724,7 +776,18 @@ find a location. non-nil if we can find a location.
(if loc (or (realgud-track-loc-action loc cmdbuf) 't)
nil))
))
- )
+ )
+
+(defun realgud:populate-command-hash(key value)
+ "Adds a KEY and VALUE to the realgud-command-name-hash the command name to a
debugger specific command."
+ (puthash key
+ (replace-regexp-in-string "%.*" "" (car (split-string value " ")))
+ realgud-command-name-hash))
+
+(defun realgud-set-command-name-hash-to-buffer-local (command-hash)
+ "Sets the eval string as a buffer local variable from the COMMAND-HASH."
+ (set (make-local-variable 'realgud-command-name-hash) (make-hash-table :test
'equal))
+ (maphash 'realgud:populate-command-hash command-hash))
(defun realgud:track-set-debugger (debugger-name)
"Set debugger name and information associated with that
@@ -746,6 +809,9 @@ we can't find a debugger with that information.`.
(setq regexp-hash (gethash base-variable-name realgud-pat-hash))
(setq command-hash (gethash base-variable-name realgud-command-hash))
)
+
+ (realgud-set-command-name-hash-to-buffer-local command-hash)
+
(if regexp-hash
(let* (
(mode-name (concat " " (capitalize base-variable-name) "-Track"))
diff --git a/packages/realgud/realgud/common/utils.el
b/packages/realgud/realgud/common/utils.el
index bc2eee0..9a6d8d3 100644
--- a/packages/realgud/realgud/common/utils.el
+++ b/packages/realgud/realgud/common/utils.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2016 Free Software Foundation, Inc
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -30,6 +30,16 @@
(t
(append (realgud:flatten (car mylist)) (realgud:flatten (cdr mylist))))))
+(if (or (< emacs-major-version 24)
+ (and (= emacs-major-version 24) (<= emacs-minor-version 3)))
+ ;; From
+ ;;
https://stackoverflow.com/questions/12999530/is-there-a-function-that-joins-a-string-into-a-delimited-string
+ (defun realgud:join-string (list joiner)
+ (mapconcat 'identity list joiner))
+ (progn
+ (require 'subr-x)
+ (defalias 'realgud:join-string 'string-join)))
+
(defun realgud:canonic-major-mode()
"Return
- 'eshell if we are in eshell-mode,
diff --git a/packages/realgud/realgud/debugger/bashdb/bashdb.el
b/packages/realgud/realgud/debugger/bashdb/bashdb.el
index 8ca9d38..ffffbe2 100644
--- a/packages/realgud/realgud/debugger/bashdb/bashdb.el
+++ b/packages/realgud/realgud/debugger/bashdb/bashdb.el
@@ -77,6 +77,7 @@ fringe and marginal icons.
opt-cmd-line no-reset)
)
+;;;###autoload
(defalias 'bashdb 'realgud:bashdb)
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/bashdb/init.el
b/packages/realgud/realgud/debugger/bashdb/init.el
index 7eead68..e527b2d 100644
--- a/packages/realgud/realgud/debugger/bashdb/init.el
+++ b/packages/realgud/realgud/debugger/bashdb/init.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -100,6 +100,7 @@ realgud-loc-pat struct")
(setf (gethash "bashdb" realgud-command-hash) realgud:bashdb-command-hash)
(setf (gethash "clear" realgud:bashdb-command-hash) "clear %l")
+(setf (gethash "eval" realgud:bashdb-command-hash) "eval %s")
(setf (gethash "quit" realgud:bashdb-command-hash) "quit")
(setf (gethash "until" realgud:bashdb-command-hash) "continue %l")
diff --git a/packages/realgud/realgud/debugger/gdb/core.el
b/packages/realgud/realgud/debugger/gdb/core.el
index 0c49a3c..50b8ce3 100644
--- a/packages/realgud/realgud/debugger/gdb/core.el
+++ b/packages/realgud/realgud/debugger/gdb/core.el
@@ -124,7 +124,7 @@ Note that path elements have been expanded via
`expand-file-name'.
((equal "-i" arg)
(warn "realgud doesn't support the -i option; option ignored")
(setq args (cddr args)))
- ;; path-argument ooptions
+ ;; path-argument options
((member arg '("-cd" ))
(setq arg (pop args))
(nconc debugger-args
@@ -137,8 +137,8 @@ Note that path elements have been expanded via
`expand-file-name'.
(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))
+ (t (setq script-name (realgud:expand-file-name-if-exists arg))
+ (setq script-args (cons script-name (cdr args))))
)))
(list debugger-args nil script-args annotate-p)))))
diff --git a/packages/realgud/realgud/debugger/gdb/init.el
b/packages/realgud/realgud/debugger/gdb/init.el
index 92bb5d6..e2c4a80 100644
--- a/packages/realgud/realgud/debugger/gdb/init.el
+++ b/packages/realgud/realgud/debugger/gdb/init.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -132,10 +132,12 @@ realgud-loc-pat struct")
(setf (gethash "break" realgud:gdb-command-hash) "break %X:%l")
(setf (gethash "clear" realgud:gdb-command-hash) "clear %X:%l")
(setf (gethash "continue" realgud:gdb-command-hash) "continue")
+(setf (gethash "delete" realgud:gdb-command-hash) "delete %p")
(setf (gethash "eval" realgud:gdb-command-hash) "print %s")
(setf (gethash "quit" realgud:gdb-command-hash) "quit")
(setf (gethash "run" realgud:gdb-command-hash) "run")
(setf (gethash "step" realgud:gdb-command-hash) "step %p")
+
(setf (gethash "gdb" realgud-command-hash) realgud:gdb-command-hash)
(setf (gethash "gdb" realgud-pat-hash) realgud:gdb-pat-hash)
diff --git a/packages/realgud/realgud/debugger/gub/gub.el
b/packages/realgud/realgud/debugger/gub/gub.el
index 6a7ad15..5338501 100644
--- a/packages/realgud/realgud/debugger/gub/gub.el
+++ b/packages/realgud/realgud/debugger/gub/gub.el
@@ -80,6 +80,7 @@ marginal icons is reset."
(realgud-gub-fn opt-command-line no-reset)
)
+;;;###autoload
(defalias 'gub 'realgud-gub)
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/ipdb/ipdb.el
b/packages/realgud/realgud/debugger/ipdb/ipdb.el
index 022acbd..23ba2ad 100644
--- a/packages/realgud/realgud/debugger/ipdb/ipdb.el
+++ b/packages/realgud/realgud/debugger/ipdb/ipdb.el
@@ -117,6 +117,7 @@ fringe and marginal icons.
)
+;;;###autoload
(defalias 'ipdb 'realgud:ipdb)
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/jdb/jdb.el
b/packages/realgud/realgud/debugger/jdb/jdb.el
index 575e091..047dd51 100644
--- a/packages/realgud/realgud/debugger/jdb/jdb.el
+++ b/packages/realgud/realgud/debugger/jdb/jdb.el
@@ -102,6 +102,7 @@ fringe and marginal icons.
)
)
+;;;###autoload
(defalias 'jdb 'realgud:jdb)
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/kshdb/init.el
b/packages/realgud/realgud/debugger/kshdb/init.el
index e6f6f74..ed4281c 100644
--- a/packages/realgud/realgud/debugger/kshdb/init.el
+++ b/packages/realgud/realgud/debugger/kshdb/init.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2010-2011, 2016 Free Software Foundation, Inc
+;; Copyright (C) 2010-2011, 2016-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -121,5 +121,6 @@ realgud-loc-pat struct")
(setf (gethash "kshdb" realgud-pat-hash) realgud:kshdb-pat-hash)
(setf (gethash "clear" realgud:kshdb-command-hash) "clear %l")
+(setf (gethash "eval" realgud:kshdb-command-hash) "eval %s")
(provide-me "realgud:kshdb-")
diff --git a/packages/realgud/realgud/debugger/kshdb/kshdb.el
b/packages/realgud/realgud/debugger/kshdb/kshdb.el
index 9355ee3..397d832 100644
--- a/packages/realgud/realgud/debugger/kshdb/kshdb.el
+++ b/packages/realgud/realgud/debugger/kshdb/kshdb.el
@@ -64,6 +64,7 @@ marginal icons is reset."
no-reset)
))
+;;;###autoload
(defalias 'kshdb 'realgud:kshdb)
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/pdb/core.el
b/packages/realgud/realgud/debugger/pdb/core.el
index 16c5dbd..3d80fb9 100644
--- a/packages/realgud/realgud/debugger/pdb/core.el
+++ b/packages/realgud/realgud/debugger/pdb/core.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2014-2016 Free Software Foundation, Inc
+;; Copyright (C) 2014-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -15,6 +15,7 @@
(require-relative-list '("init") "realgud:pdb-")
+(declare-function realgud:expand-file-name-if-exists 'realgud-core)
(declare-function realgud-lang-mode? 'realgud-lang)
(declare-function realgud-parse-command-arg 'realgud-core)
(declare-function realgud-query-cmdline 'realgud-core)
@@ -138,7 +139,7 @@ Note that the script name path has been expanded via
`expand-file-name'.
(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))
+ (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))))
diff --git a/packages/realgud/realgud/debugger/pdb/pdb.el
b/packages/realgud/realgud/debugger/pdb/pdb.el
index 8ddd380..8f1b74d 100644
--- a/packages/realgud/realgud/debugger/pdb/pdb.el
+++ b/packages/realgud/realgud/debugger/pdb/pdb.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2015-2016 Free Software Foundation, Inc
+;; Copyright (C) 2015-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -16,6 +16,8 @@
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
;; `pdb' Main interface to pdb via Emacs
+
+(require 'python) ; for python-shell-interpreter
(require 'load-relative)
(require-relative-list '("core" "track-mode") "realgud:pdb-")
(require-relative-list '("../../common/run") "realgud:")
@@ -46,6 +48,8 @@ This should be an executable on your path, or an absolute
file name."
(declare-function pdb-query-cmdline 'realgud:pdb-core)
(declare-function pdb-parse-cmd-args 'realgud:pdb-core)
(declare-function realgud:run-debugger 'realgud:run)
+(declare-function realgud:run-process 'realgud:core)
+(declare-function realgud:flatten 'realgud-utils)
;;;###autoload
(defun realgud:pdb (&optional opt-cmd-line no-reset)
@@ -103,6 +107,32 @@ fringe and marginal icons.
)
+;;;###autoload
(defalias 'pdb 'realgud:pdb)
+;;;###autoload
+(defun realgud:pdb-delayed ()
+ "This is like `pdb', but assumes inside the program to be debugged, you
+have a call to the debugger somewhere, e.g. 'from trepan.api import debug;
debug()'.
+Therefore we invoke python rather than the debugger initially.
+
+"
+ (interactive)
+ (let* ((initial-debugger python-shell-interpreter)
+ (actual-debugger "pdb")
+ (cmd-str (pdb-query-cmdline initial-debugger))
+ (cmd-args (split-string-and-unquote cmd-str))
+ ;; XXX: python gets registered as the interpreter rather than
+ ;; a debugger, and the debugger position (nth 1) is missing:
+ ;; the script-args takes its place.
+ (parsed-args (pdb-parse-cmd-args cmd-args))
+ (script-args (nth 1 parsed-args))
+ (script-name (car script-args))
+ (parsed-cmd-args
+ (cl-remove-if 'nil (realgud:flatten parsed-args))))
+ (realgud:run-process actual-debugger script-name parsed-cmd-args
+ 'realgud:pdb-minibuffer-history)))
+
+(realgud-deferred-invoke-setup "pdb")
+
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/perldb/perldb.el
b/packages/realgud/realgud/debugger/perldb/perldb.el
index 7c4b447..c74ad9f 100644
--- a/packages/realgud/realgud/debugger/perldb/perldb.el
+++ b/packages/realgud/realgud/debugger/perldb/perldb.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2011, 2014-2016 Free Software Foundation, Inc
+;; Copyright (C) 2011, 2014-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -36,7 +36,6 @@
;; The end.
;;
-(declare-function perldb-track-mode (bool))
(declare-function realgud:perldb-query-cmdline 'realgud:perldb-core)
(declare-function realgud:perldb-parse-cmd-args 'realgud:perldb-core)
diff --git a/packages/realgud/realgud/debugger/rdebug/core.el
b/packages/realgud/realgud/debugger/rdebug/core.el
index bd66518..18d13f3 100644
--- a/packages/realgud/realgud/debugger/rdebug/core.el
+++ b/packages/realgud/realgud/debugger/rdebug/core.el
@@ -14,6 +14,7 @@
"realgud-")
(require-relative-list '("init") "realgud-rdebug-")
+(declare-function realgud:expand-file-name-if-exists 'realgud-core)
(declare-function realgud-lang-mode? 'realgud-lang)
(declare-function realgud-parse-command-arg 'realgud-core)
(declare-function realgud-query-cmdline 'realgud-core)
@@ -131,8 +132,8 @@ NOTE: the above should have each item listed in quotes.
(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))
+ (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))))
diff --git a/packages/realgud/realgud/debugger/rdebug/rdebug.el
b/packages/realgud/realgud/debugger/rdebug/rdebug.el
index 253f015..3abd307 100644
--- a/packages/realgud/realgud/debugger/rdebug/rdebug.el
+++ b/packages/realgud/realgud/debugger/rdebug/rdebug.el
@@ -119,5 +119,6 @@ fringe and marginal icons.
)
+;;;###autoload
(defalias 'rdebug 'realgud:rdebug)
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/remake/core.el
b/packages/realgud/realgud/debugger/remake/core.el
index 7f2772c..632363c 100644
--- a/packages/realgud/realgud/debugger/remake/core.el
+++ b/packages/realgud/realgud/debugger/remake/core.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2011, 2014-2016 Free Software Foundation, Inc
+;; Copyright (C) 2011, 2014-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -89,16 +89,6 @@ we might return:
(while args
(let ((arg (pop 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))
-
((member arg '("--file" "--makefile" "-f"))
(setq remake-args (nconc remake-args (list arg)))
(setq makefile-name (realgud:expand-file-name-if-exists
diff --git a/packages/realgud/realgud/debugger/remake/remake.el
b/packages/realgud/realgud/debugger/remake/remake.el
index 2b75f72..e07cb1b 100644
--- a/packages/realgud/realgud/debugger/remake/remake.el
+++ b/packages/realgud/realgud/debugger/remake/remake.el
@@ -83,6 +83,7 @@ This should be an executable on your path, or an absolute
file name."
(realgud:remake-run-debugger opt-cmd-line no-reset)
)
+;;;###autoload
(defalias 'remake 'realgud:remake)
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/trepan.pl/init.el
b/packages/realgud/realgud/debugger/trepan.pl/init.el
index 2865180..f3bf383 100644
--- a/packages/realgud/realgud/debugger/trepan.pl/init.el
+++ b/packages/realgud/realgud/debugger/trepan.pl/init.el
@@ -269,6 +269,7 @@ backtrace listing.")
the trepanpl command to use, like 'quit!'")
(setf (gethash "break" realgud:trepanpl-command-hash) "break %x %l")
+(setf (gethash "eval" realgud:trepanpl-command-hash) "eval %s")
(setf (gethash "quit" realgud:trepanpl-command-hash) "quit!")
(setf (gethash "until" realgud:trepanpl-command-hash) "continue %l")
(setf (gethash realgud:trepanpl-debugger-name
diff --git a/packages/realgud/realgud/debugger/trepan.pl/trepanpl.el
b/packages/realgud/realgud/debugger/trepan.pl/trepanpl.el
index 0b4ac32..689c03d 100644
--- a/packages/realgud/realgud/debugger/trepan.pl/trepanpl.el
+++ b/packages/realgud/realgud/debugger/trepan.pl/trepanpl.el
@@ -68,6 +68,7 @@ fringe and marginal icons.
'realgud:trepanpl-minibuffer-history
opt-cmd-line no-reset))
+;;;###autoload
(defalias 'trepan.pl 'realgud:trepan.pl)
(provide-me "realgud-")
;;; trepanpl.el ends here
diff --git a/packages/realgud/realgud/debugger/trepan/trepan.el
b/packages/realgud/realgud/debugger/trepan/trepan.el
index 41c51b1..d98c129 100644
--- a/packages/realgud/realgud/debugger/trepan/trepan.el
+++ b/packages/realgud/realgud/debugger/trepan/trepan.el
@@ -66,6 +66,7 @@ fringe and marginal icons.
opt-cmd-line no-reset)
)
+;;;###autoload
(defalias 'trepan 'realgud:trepan)
(provide-me "realgud-")
;;; trepan.el ends here
diff --git a/packages/realgud/realgud/debugger/trepan2/init.el
b/packages/realgud/realgud/debugger/trepan2/init.el
index 7d05ed3..62221e1 100644
--- a/packages/realgud/realgud/debugger/trepan2/init.el
+++ b/packages/realgud/realgud/debugger/trepan2/init.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2010-2012, 2014-2016 Free Software Foundation, Inc
+;; Copyright (C) 2010-2012, 2014-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -41,9 +41,14 @@ realgud-loc-pat struct")
(setf (gethash "loc" realgud:trepan2-pat-hash)
realgud:python-trepan-loc-pat)
+;; Regular expression that describes a trepan2 prompt.
+;; Note: the prompt in nested debugging
+;; For example:
+;; (trepan2)
+;; ((trepan2))
(setf (gethash "prompt" realgud:trepan2-pat-hash)
(make-realgud-loc-pat
- :regexp "^(trepan2) "
+ :regexp "^(+trepan2)+ "
))
;; Regular expression that describes a trepan2 backtrace line.
@@ -102,6 +107,7 @@ realgud-loc-pat struct")
"Hash key is command name like 'shell' and the value is
the trepan2 command to use, like 'python'")
+(setf (gethash "eval" realgud:trepan2-command-hash) "eval %s")
(setf (gethash "shell" realgud:trepan2-command-hash) "python")
(setf (gethash "until" realgud:trepan2-command-hash) "continue %l")
diff --git a/packages/realgud/realgud/debugger/trepan2/trepan2.el
b/packages/realgud/realgud/debugger/trepan2/trepan2.el
index 73415cd..3b12bb3 100644
--- a/packages/realgud/realgud/debugger/trepan2/trepan2.el
+++ b/packages/realgud/realgud/debugger/trepan2/trepan2.el
@@ -9,6 +9,7 @@
;; Main interface to trepan2 via Emacs
+(require 'python) ; for python-shell-interpreter
(require 'load-relative)
(require-relative-list '("../../common/helper") "realgud-")
(require-relative-list '("../../common/run") "realgud:")
@@ -26,6 +27,8 @@
(declare-function trepan2-parse-cmd-args 'realgud:trepan2-core)
(declare-function trepan2-track-mode 'realgud:pydbgr-track-mode)
(declare-function realgud:run-debugger 'realgud:run)
+(declare-function realgud:run-process 'realgud:core)
+(declare-function realgud:flatten 'realgud-utils)
;; -------------------------------------------------------------------
;; User-definable variables
@@ -45,6 +48,9 @@ This should be an executable on your path, or an absolute
file name."
;;
;;;###autoload
+(defalias 'trepan2 'realgud:trepan2)
+
+;;;###autoload
(defun realgud:trepan2 (&optional opt-cmd-line no-reset)
"Invoke the trepan2 Python debugger and start the Emacs user interface.
@@ -69,16 +75,15 @@ fringe and marginal icons.
opt-cmd-line no-reset)
)
-(defalias 'trepan2 'realgud:trepan2)
-
;;;###autoload
(defun realgud:trepan2-delayed ()
"This is like `trepan2', but assumes inside the program to be debugged, you
have a call to the debugger somewhere, e.g. 'from trepan.api import debug;
debug()'.
Therefore we invoke python rather than the debugger initially.
+
"
(interactive)
- (let* ((initial-debugger "python")
+ (let* ((initial-debugger python-shell-interpreter)
(actual-debugger "trepan2")
(cmd-str (trepan2-query-cmdline initial-debugger))
(cmd-args (split-string-and-unquote cmd-str))
@@ -93,6 +98,6 @@ Therefore we invoke python rather than the debugger initially.
(realgud:run-process actual-debugger script-name parsed-cmd-args
'realgud:trepan2-minibuffer-history)))
-(defalias 'trepan2-delayed 'realgud:trepan2-delayed)
+(realgud-deferred-invoke-setup "trepan2")
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/trepan3k/core.el
b/packages/realgud/realgud/debugger/trepan3k/core.el
index 215949f..d7f14f8 100644
--- a/packages/realgud/realgud/debugger/trepan3k/core.el
+++ b/packages/realgud/realgud/debugger/trepan3k/core.el
@@ -155,7 +155,7 @@ NOTE: the above should have each item listed in quotes.
(defun trepan3k-suggest-invocation (debugger-name)
"Suggest a trepan3k command invocation via `realgud-suggest-invocaton'"
- (realgud-suggest-invocation (or debugger-name realgud:trepan2-command-name)
+ (realgud-suggest-invocation (or debugger-name realgud:trepan3k-command-name)
realgud:trepan3k-minibuffer-history
"python" "\\.py"
realgud:trepan3k-command-name))
diff --git a/packages/realgud/realgud/debugger/trepan3k/init.el
b/packages/realgud/realgud/debugger/trepan3k/init.el
index 6749ed3..ed4740d 100644
--- a/packages/realgud/realgud/debugger/trepan3k/init.el
+++ b/packages/realgud/realgud/debugger/trepan3k/init.el
@@ -1,4 +1,4 @@
-;; Copyright (C) 2010-2016 Free Software Foundation, Inc
+;; Copyright (C) 2010-2017 Free Software Foundation, Inc
;; Author: Rocky Bernstein <address@hidden>
@@ -47,9 +47,14 @@ realgud-loc-pat struct")
(setf (gethash "loc" realgud:trepan3k-pat-hash)
realgud:python-trepan-loc-pat)
+;; Regular expression that describes a trepan3k prompt.
+;; Note: the prompt in nested debugging
+;; For example:
+;; (trepan3)
+;; ((trepan3k))
(setf (gethash "prompt" realgud:trepan3k-pat-hash)
(make-realgud-loc-pat
- :regexp "^(trepan3k) "
+ :regexp "^(+trepan3k+) "
))
;; realgud-loc-pat that describes a trepan3k backtrace line.
@@ -108,6 +113,7 @@ realgud-loc-pat struct")
"Hash key is command name like 'shell' and the value is
the trepan3k command to use, like 'python'")
+(setf (gethash "eval" realgud:trepan3k-command-hash) "eval %s")
(setf (gethash "shell" realgud:trepan3k-command-hash) "python")
(setf (gethash "until" realgud-command-hash) "continue %l")
diff --git a/packages/realgud/realgud/debugger/trepan3k/trepan3k.el
b/packages/realgud/realgud/debugger/trepan3k/trepan3k.el
index 6d861f3..2b473e4 100644
--- a/packages/realgud/realgud/debugger/trepan3k/trepan3k.el
+++ b/packages/realgud/realgud/debugger/trepan3k/trepan3k.el
@@ -7,6 +7,7 @@
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
+(require 'python) ; for python-shell-interpreter
(require 'load-relative)
(require-relative-list '("../../common/helper") "realgud-")
(require-relative-list '("../../common/run") "realgud:")
@@ -23,6 +24,8 @@
(declare-function trepan3k-query-cmdline 'realgud:trepan3k-core)
(declare-function trepan3k-parse-cmd-args 'realgud:trepan3k-core)
(declare-function realgud:run-debugger 'realgud:run)
+(declare-function realgud:run-process 'realgud:core)
+(declare-function realgud:flatten 'realgud-utils)
;; -------------------------------------------------------------------
;; User-definable variables
@@ -48,7 +51,7 @@ This should be an executable on your path, or an absolute
file name."
String OPT-CMD-LINE is treated like a shell string; arguments are
tokenized by `split-string-and-unquote'. The tokenized string is
-parsed by `trepan2-parse-cmd-args' and path elements found by that
+parsed by `trepan3k-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
@@ -67,6 +70,7 @@ fringe and marginal icons.
opt-cmd-line no-reset)
)
+;;;###autoload
(defalias 'trepan3k 'realgud:trepan3k)
;;;###autoload
@@ -76,9 +80,9 @@ have a call to the debugger somewhere, e.g. 'from trepan.api
import debug; debug
Therefore we invoke python rather than the debugger initially.
"
(interactive)
- (let* ((initial-debugger "python")
+ (let* ((initial-debugger python-shell-interpreter)
(actual-debugger "trepan3k")
- (cmd-str (trepan2-query-cmdline initial-debugger))
+ (cmd-str (trepan3k-query-cmdline initial-debugger))
(cmd-args (split-string-and-unquote cmd-str))
;; XXX: python gets registered as the interpreter rather than
;; a debugger, and the debugger position (nth 1) is missing:
@@ -89,8 +93,8 @@ Therefore we invoke python rather than the debugger initially.
(parsed-cmd-args
(cl-remove-if 'nil (realgud:flatten parsed-args))))
(realgud:run-process actual-debugger script-name parsed-cmd-args
- 'realgud:trepan3k-minibuffer-history)))
+ 'realgud:trepan3k-deferred-minibuffer-history)))
-(defalias 'trepan3k-delayed 'realgud:trepan3k-delayed)
+(realgud-deferred-invoke-setup "trepan3k")
(provide-me "realgud-")
diff --git a/packages/realgud/realgud/debugger/zshdb/init.el
b/packages/realgud/realgud/debugger/zshdb/init.el
index 90af96b..3fac621 100644
--- a/packages/realgud/realgud/debugger/zshdb/init.el
+++ b/packages/realgud/realgud/debugger/zshdb/init.el
@@ -96,6 +96,7 @@ realgud-loc-pat struct")
(setf (gethash "zshdb" realgud-command-hash) realgud:zshdb-command-hash)
(setf (gethash "clear" realgud:zshdb-command-hash) "clear %l")
+(setf (gethash "eval" realgud:zshdb-command-hash) "eval %s")
(setf (gethash "quit" realgud:zshdb-command-hash) "quit")
(setf (gethash "until" realgud:zshdb-command-hash) "continue %l")
diff --git a/packages/realgud/realgud/debugger/zshdb/zshdb.el
b/packages/realgud/realgud/debugger/zshdb/zshdb.el
index 9f3a6b6..362ed39 100644
--- a/packages/realgud/realgud/debugger/zshdb/zshdb.el
+++ b/packages/realgud/realgud/debugger/zshdb/zshdb.el
@@ -83,6 +83,7 @@ fringe and marginal icons.
;; )
))
+;;;###autoload
(defalias 'zshdb 'realgud:zshdb)
(provide-me "realgud-")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] master a3c4726: Update realgud to MELPA stable 1.4.4,
Rocky Bernstein <=