[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/bug-hunter c076d3b 43/95: Improve interactive assertion
From: |
Stefan Monnier |
Subject: |
[elpa] externals/bug-hunter c076d3b 43/95: Improve interactive assertion prompt |
Date: |
Fri, 27 Nov 2020 22:06:54 -0500 (EST) |
branch: externals/bug-hunter
commit c076d3b981655322ae0fe09bc1efcf2502c0aaea
Author: Artur Malabarba <bruce.connor.am@gmail.com>
Commit: Artur Malabarba <bruce.connor.am@gmail.com>
Improve interactive assertion prompt
---
bug-hunter.el | 44 ++++++++++++++++++++++++++++----------------
1 file changed, 28 insertions(+), 16 deletions(-)
diff --git a/bug-hunter.el b/bug-hunter.el
index 01a6d81..7565183 100644
--- a/bug-hunter.el
+++ b/bug-hunter.el
@@ -312,6 +312,32 @@ are evaluated."
(first linecol) (second linecol)
(list 'assertion-triggered ret) expression)))))))))
+(defun bug-hunter--read-from-minibuffer ()
+ "Read a list of expressions from the minibuffer.
+Wraps them in a progn if necessary."
+ (require 'simple)
+ (let ((exprs
+ (with-temp-buffer
+ ;; Copied from `read--expression'.
+ (let ((minibuffer-completing-symbol t))
+ (minibuffer-with-setup-hook
+ (lambda ()
+ ;; FIXME: call emacs-lisp-mode?
+ (add-function :before-until (local
'eldoc-documentation-function)
+ #'elisp-eldoc-documentation-function)
+ (add-hook 'completion-at-point-functions
+ #'elisp-completion-at-point nil t)
+ (run-hooks 'eval-expression-minibuffer-setup-hook))
+ (insert
+ (read-from-minibuffer
+ "Expression that returns nil if all is well (optional): "
+ nil read-expression-map nil 'read-expression-history))))
+ (goto-char (point-min))
+ (mapcar #'car (bug-hunter--read-buffer)))))
+ (if (cdr exprs)
+ (cons #'progn exprs)
+ (car exprs))))
+
;;;###autoload
(defun bug-hunter-file (file &optional assertion)
"Test ASSERTION while bisecting FILE.
@@ -323,13 +349,7 @@ list. See `bug-hunter-hunt' for how to use assertion."
(file-name-directory (or (buffer-file-name) "./"))
nil t
(file-name-nondirectory (or (buffer-file-name) "./")))
- (cons #'progn
- (with-temp-buffer
- (insert
- (read-string "Expression that returns non-nil if there's a
problem: "
- nil 'read-expression-history))
- (goto-char (point-min))
- (bug-hunter--read-buffer)))))
+ (bug-hunter--read-from-minibuffer)))
(let ((bug-hunter--current-file file))
(bug-hunter-hunt (bug-hunter--read-contents file) assertion)))
@@ -339,15 +359,7 @@ list. See `bug-hunter-hunt' for how to use assertion."
All sexps inside `user-init-file' are read and passed to
`bug-hunter-hunt' as a list. See `bug-hunter-hunt' for how to use
assertion."
- (interactive
- (list
- (cons #'progn
- (with-temp-buffer
- (insert
- (read-string "Expression that returns non-nil if there's a
problem: "
- nil 'read-expression-history))
- (goto-char (point-min))
- (bug-hunter--read-buffer)))))
+ (interactive (list (bug-hunter--read-from-minibuffer)))
(bug-hunter-file user-init-file assertion))
(provide 'bug-hunter)
- [elpa] externals/bug-hunter 813d20b 07/95: Fix commands, (continued)
- [elpa] externals/bug-hunter 813d20b 07/95: Fix commands, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 802b04d 10/95: Fix cask, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter b9eb93f 13/95: Fix travis, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter b6b0fae 26/95: Readme, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter fc2e59f 35/95: More testing, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 8d70f15 16/95: Readme, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 98e0362 32/95: Recognize errors at reader level., Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 86a1664 31/95: Merge branch 'master' of github.com:Bruce-Connor/elisp-bug-hunter, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 16922e1 34/95: Fix test, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 2afa228 39/95: Letbind server-name to avoid conflicts, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter c076d3b 43/95: Improve interactive assertion prompt,
Stefan Monnier <=
- [elpa] externals/bug-hunter 2524718 55/95: Don't quote file name argument to `call-process`, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 0f9bd03 17/95: Copyright and deps, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 0fbf2a4 24/95: Run after-init-hooks, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 4da93d7 36/95: Provide full information on where the bug occurs., Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 80af9de 38/95: Ignore cask, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 95d6857 44/95: DOC, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter a0ed5ea 40/95: Move around variables, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 1d2f393 41/95: Report which expression caused an error., Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter 1a050a0 57/95: Merge pull request #2 from lunaryorn/patch-1, Stefan Monnier, 2020/11/27
- [elpa] externals/bug-hunter c2f2d29 60/95: Note about init file idempotence, Stefan Monnier, 2020/11/27