[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/trie defa7e0 053/111: Replaced advice with cedet-edebug
From: |
Stefan Monnier |
Subject: |
[elpa] externals/trie defa7e0 053/111: Replaced advice with cedet-edebug.el for pretty-printing |
Date: |
Mon, 14 Dec 2020 11:35:19 -0500 (EST) |
branch: externals/trie
commit defa7e0a219f804e7e3b7cf857fc8c9e055c38de
Author: tsc25 <toby-predictive@dr-qubit.org>
Commit: Toby S. Cubitt <toby-predictive@dr-qubit.org>
Replaced advice with cedet-edebug.el for pretty-printing
tries and dictionaries in edebug.
---
trie.el | 82 ++++++++---------------------------------------------------------
1 file changed, 9 insertions(+), 73 deletions(-)
diff --git a/trie.el b/trie.el
index 7dce69d..e43dbc9 100644
--- a/trie.el
+++ b/trie.el
@@ -1883,87 +1883,23 @@ elements that matched the corresponding groups, in
order."
;; ----------------------------------------------------------------
-;; Pretty-print tries during edebug
+;; Pretty-print tries during edebug
-;; Note:
-;; -----
-
-;; We advise the `edebug-prin1' and `edebug-prin1-to-string' functions
-;; (actually, aliases) so that they pring "#<trie>" instead of the full
-;; print form for tries.
+;; We use `cedet-edebug-add-print-override' from cedet-edebug.el to make
+;; edebug print "#<trie>" instead of the full print form for
+;; tries. (This is cleaner than using aliases or advice.)
;;
;; This is because, if left to its own devices, edebug hangs for ages
;; whilst printing large tries, and you either have to wait for a *very*
;; long time for it to finish, or kill Emacs entirely. (Even C-g C-g
-;; fails!)
-;;
-;; Since the print form of a trie is practically incomprehensible
-;; anyway, we don't lose much by doing this. If you *really* want to
-;; print tries in full whilst edebugging, despite this warning, disable
-;; the advice.
-;;
-;; FIXME: Should use `cedet-edebug-prin1-extensions' instead of advice
-;; when `cedet-edebug' is loaded, though I believe this still
-;; works in that case.
-
-
-(eval-when-compile
- (require 'edebug)
- (require 'advice))
-
-
-(defun trie--edebug-pretty-print (object)
- (cond
- ((trie-p object) "#<trie>")
- ((consp object)
- (if (consp (cdr object))
- (let ((pretty "("))
- (while object
- (setq pretty
- (concat pretty
- (trie--edebug-pretty-print
- (if (atom object)
- (prog1
- (trie--edebug-pretty-print object)
- (setq object nil))
- (pop object)))
- (when object " "))))
- (concat pretty ")"))
- (concat "(" (trie--edebug-pretty-print (car object))
- " . " (trie--edebug-pretty-print (cdr object)) ")")))
- ((vectorp object)
- (let ((pretty "[") (len (length object)))
- (dotimes (i (1- len))
- (setq pretty
- (concat pretty
- (trie--edebug-pretty-print (aref object i))
- " ")))
- (concat pretty
- (trie--edebug-pretty-print (aref object (1- len)))
- "]")))
- (t (prin1-to-string object))))
-
-
-(ad-define-subr-args 'edebug-prin1 '(object &optional printcharfun))
-
-(defadvice edebug-prin1
- (around trie activate compile preactivate)
- (let ((pretty (trie--edebug-pretty-print object)))
- (if pretty
- (progn
- (prin1 pretty printcharfun)
- (setq ad-return-value pretty))
- ad-do-it)))
+;; fails!) Since the print form of a trie is practically
+;; incomprehensible anyway, we don't lose much by doing this.
+(require 'cedet-edebug)
-(ad-define-subr-args 'edebug-prin1-to-string '(object &optional noescape))
+(defun trie-pretty-print (trie) "#<trie>")
-(defadvice edebug-prin1-to-string
- (around trie activate compile preactivate)
- (let ((pretty (trie--edebug-pretty-print object)))
- (if pretty
- (setq ad-return-value pretty)
- ad-do-it)))
+(cedet-edebug-add-print-override 'trie-p 'trie-pretty-print)
- [elpa] branch externals/trie created (now 63da3b1), Stefan Monnier, 2020/12/14
- [elpa] externals/trie 1697b5f 001/111: trie.el re-implements tstree.el using AVL trees, Stefan Monnier, 2020/12/14
- [elpa] externals/trie 5a0883f 005/111: Fixed bug in trie-complete when passed list of prefixes., Stefan Monnier, 2020/12/14
- [elpa] externals/trie 4dc003b 006/111: Fixed bug when deleting non-existent entries., Stefan Monnier, 2020/12/14
- [elpa] externals/trie d998322 011/111: Made trie--terminator symbol into a configurable defconst., Stefan Monnier, 2020/12/14
- [elpa] externals/trie 6cdaed0 046/111: Removed left-over debugging code and other minor tidying., Stefan Monnier, 2020/12/14
- [elpa] externals/trie 160f092 054/111: Revert "Replaced advice with cedet-edebug.el for pretty-printing", Stefan Monnier, 2020/12/14
- [elpa] externals/trie defa7e0 053/111: Replaced advice with cedet-edebug.el for pretty-printing,
Stefan Monnier <=
- [elpa] externals/trie af10bd5 043/111: Bug-fix in trie--do-regexp-search, Stefan Monnier, 2020/12/14
- [elpa] externals/trie 58c6685 014/111: Replaced bare avl-trees, Stefan Monnier, 2020/12/14
- [elpa] externals/trie 9f5b6c2 060/111: Simplified persistent-storage code for tries and dict-trees., Stefan Monnier, 2020/12/14
- [elpa] externals/trie 6aa6701 033/111: Added optional RESULTFUN argument to trie query functions,, Stefan Monnier, 2020/12/14
- [elpa] externals/trie 2345832 047/111: Advised edebug-prin1 and edebug-prin1-to-string to prevent edebug hanging, Stefan Monnier, 2020/12/14
- [elpa] externals/trie e1be744 030/111: Bug-fix in trie--do-wildcard-search, Stefan Monnier, 2020/12/14
- [elpa] externals/trie e00ae36 058/111: Trivial docstring and comment fixes., Stefan Monnier, 2020/12/14
- [elpa] externals/trie 153d2d4 048/111: Require advice when compiling, Stefan Monnier, 2020/12/14
- [elpa] externals/trie 6d76748 028/111: Allow "]" to be included in a negated character alternatives, by placing immediately after the "[^"., Stefan Monnier, 2020/12/14
- [elpa] externals/trie 00300c4 074/111: Revert trie--node-data defsetf, since it seems to work now., Stefan Monnier, 2020/12/14