[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole a4c41006cf 066/143: *ert* buffer - make {.} j
From: |
ELPA Syncer |
Subject: |
[elpa] externals/hyperbole a4c41006cf 066/143: *ert* buffer - make {.} jump to interactively defined test def |
Date: |
Mon, 19 Feb 2024 15:59:01 -0500 (EST) |
branch: externals/hyperbole
commit a4c41006cf18515cc15b289a9057c6543bd65e80
Author: bw <rsw@gnu.org>
Commit: bw <rsw@gnu.org>
*ert* buffer - make {.} jump to interactively defined test def
Previously, had to have loaded the test def from a file; now can use
TAGS files to find its location. Use this incantation to set this up.
(setq find-function-regexp-alist
(assq-delete-all 'ert--test find-function-regexp-alist))
;; Could also set this to `smart-lisp-find-tag' instead of
`xref-find-definitions'.
(add-to-list 'find-function-regexp-alist '(ert--test .
xref-find-definitions))
---
ChangeLog | 11 +++++++++++
hmouse-tag.el | 23 +++++++++++++++++------
hypb-ert.el | 30 +++++++++++++++++-------------
3 files changed, 45 insertions(+), 19 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 1a63095476..73b6e5f1d7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2024-01-05 Bob Weiner <rsw@gnu.org>
+* hypb-ert.el (hypb-ert-run-test-at-definition): Accept a symbol as
+ a 'test-name' argument.
+
+* hmouse-tag.el (smart-emacs-lisp-mode-p): Include 'ert-results-mode'.
+ (smart-lisp-find-tag): Allow 'tag' arg to be a symbol,
+ not just a string. This allows it to be used as a target function
+ in 'find-function-regexp-alist' which is used in the ert results buffer
+ with the {.} command to jump to the ert test definition at point.
+ (xref-definitions, xref-definition): Rewrite to handle
+ ert-deftests.
+
* Makefile (test-all): Change 'ert-run-tests-interactively' to
'ert-run-tests-batch' because this shows tracebacks of any tests that
fail in the *Messages* buffer, speeding debugging. Although it does
diff --git a/hmouse-tag.el b/hmouse-tag.el
index e67c427f40..00c54cc6bf 100644
--- a/hmouse-tag.el
+++ b/hmouse-tag.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 24-Aug-91
-;; Last-Mod: 29-Dec-23 at 00:52:05 by Bob Weiner
+;; Last-Mod: 5-Jan-24 at 14:02:46 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -36,12 +36,20 @@
(max (point-min) (if (eolp) (1- (point)) (point)))
'xref-item))
(when (not (fboundp 'xref-definition))
- (defun xref-definition (identifier)
- "Return the first definition of string IDENTIFIER."
- (car (xref-backend-definitions (xref-find-backend) identifier)))
(defun xref-definitions (identifier)
"Return a list of all definitions of string IDENTIFIER."
- (xref-backend-definitions (xref-find-backend) identifier))
+ (let* ((elisp-flag (smart-emacs-lisp-mode-p))
+ (xref-backend (or (and elisp-flag
+ (fboundp 'ert-test-boundp)
+ (ert-test-boundp identifier)
+ (boundp 'xref-etags-mode)
+ 'etags)
+ (xref-find-backend)))
+ (xref-items (xref-backend-definitions xref-backend identifier)))
+ xref-items))
+ (defun xref-definition (identifier)
+ "Return the first definition of string IDENTIFIER."
+ (car (xref-definitions identifier)))
(defun xref-item-buffer (item)
"Return the buffer in which xref ITEM is defined."
(marker-buffer (save-excursion (xref-location-marker (xref-item-location
item)))))
@@ -422,7 +430,8 @@ If:
;; Beyond Lisp files, Emacs Lisp symbols appear frequently in Byte-Compiled
;; buffers, debugger buffers, program ChangeLog buffers, Help buffers,
;; *Warnings*, *Flymake log* and *Flymake diagnostics... buffers.
- (or (memq major-mode #'(emacs-lisp-mode lisp-interaction-mode debugger-mode))
+ (or (memq major-mode #'(emacs-lisp-mode lisp-interaction-mode
+ debugger-mode ert-results-mode))
(string-match-p (concat "\\`\\*\\(Warnings\\|Flymake
log\\|Compile-Log\\(-Show\\)?\\)\\*"
"\\|\\`\\*Flymake diagnostics")
(buffer-name))
@@ -698,6 +707,8 @@ Use `hpath:display-buffer' to show definition or
documentation."
(if current-prefix-arg
"Show doc for" "Find")))
current-prefix-arg))
+ (when (and tag (symbolp tag))
+ (setq tag (symbol-name tag)))
(unless (stringp tag)
(setq tag (if (stringp hkey-value) hkey-value (smart-lisp-at-tag-p t))))
(let* ((elisp-flag (smart-emacs-lisp-mode-p))
diff --git a/hypb-ert.el b/hypb-ert.el
index 389461633c..ce5745718a 100644
--- a/hypb-ert.el
+++ b/hypb-ert.el
@@ -3,7 +3,7 @@
;; Author: Mats Lidell <matsl@gnu.org> and Bob Weiner <rsw@gnu.org>
;;
;; Orig-Date: 31-Mar-21 at 21:11:00
-;; Last-Mod: 4-Jan-24 at 14:10:39 by Mats Lidell
+;; Last-Mod: 5-Jan-24 at 15:11:42 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -32,17 +32,19 @@
(eval-and-compile (mapc #'require '(lisp-mode hload-path ert hact hbut hargs)))
(defun hypb-ert-message-function (_msg-pat &rest _args)
- "Ignore messages ert outputs so can display messages from tests run."
+ "Ignore the messages ert outputs so can display its test messages."
;; (identity (apply #'format msg-pat args)))))))
nil)
-(defun hypb-ert (selector)
+(defun hypb-ert (test-selector)
+ "Run all ert TEST-SELECTOR tests.
+See documentation for `ert-select-tests' for TEST-SELECTOR types."
(if (memq 'message-fn (actype:params #'ert-run-tests-interactively))
;; Suppress ert messages so last test case message stays in the
minibuffer;
;; 3rd arg message-fn available only in Emacs 27 and earlier
(with-suppressed-warnings ((callargs ert))
- (ert selector nil #'hypb-ert-message-function))
- (ert selector))
+ (ert test-selector nil #'hypb-ert-message-function))
+ (ert test-selector))
;; ERT can display a long internal data structure as a result, so
;; replace it in the minibuffer with a blank message.
(message ""))
@@ -68,6 +70,7 @@ See documentation for `ert-select-tests' for TEST-SELECTOR
types."
(directory-files (expand-file-name "test" hyperb:dir) nil
"^[a-zA-Z].*\\.el$")))
(defun hypb-ert-require-libraries ()
+ "Load all Hyperbole ert test symbols."
(mapc #'require (hypb-ert-get-require-symbols)))
(defal hyperbole-run-test "hypb-ert-run-test"
@@ -78,7 +81,7 @@ See documentation for `ert-select-tests' for TEST-SELECTOR
types."
See documentation for `ert-select-tests' for TEST-SELECTOR types.")
(defun hypb-ert-run-all-tests ()
- "Run every ert test."
+ "Run every Hyperbole ert test."
(interactive)
(hypb-ert-require-libraries)
(hypb-ert t))
@@ -102,19 +105,20 @@ With optional START-END-FLAG, return a list of (test-name
start-pos end-pos)."
(list (match-string-no-properties 2) (match-beginning 2) (match-end
2))
(match-string-no-properties 2))))))
-(defun hypb-ert-run-test-at-definition (test-name &optional debug-it)
- "Assume on the name in the first line of an ert test def, eval and run the
test.
-With optional DEBUG-IT non-nil (when the assist-key is pressed), edebug the
-test when it is run."
- (let ((test-sym (intern-soft test-name)))
+(defun hypb-ert-run-test-at-definition (test-name &optional edebug-it)
+ "Eval and run the ert TEST-NAME defined at point.
+Assume point is on the text of the first line of an ert test def,
+With optional EDEBUG-IT non-nil (when the assist-key is pressed),
+edebug the test when it is run."
+ (let ((test-sym (if (symbolp test-name) test-name (intern-soft test-name))))
;; Ensure run the latest version of the test, either with the
;; edebugger if already instrumented for it; otherwise, with the
;; normal evaluator.
- (if (and test-sym debug-it)
+ (if (and test-sym edebug-it)
(edebug-defun)
(eval-defun nil)
(setq test-sym (intern-soft test-name))
- (when (and test-sym debug-it)
+ (when (and test-sym edebug-it)
(edebug-defun)))
(setq test-sym (intern-soft test-name))
(when (and test-sym (ert-test-boundp test-sym))
- [elpa] externals/hyperbole bd5f59b2e0 016/143: hyrolo-mode-map - add [ and ] keys to move to prev and next @loc>, (continued)
- [elpa] externals/hyperbole bd5f59b2e0 016/143: hyrolo-mode-map - add [ and ] keys to move to prev and next @loc>, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 71aa8f2587 018/143: Add test for hui:link-possible-types, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole d59f27c469 026/143: Fix most remaining outstanding issues in HyRolo, ibut-link-directly, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 46d8da0039 019/143: Fix test as ebut is being identified correctly, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 0798e16ab0 030/143: Fix doc on switch of cross-window drags create ibuts with Action Key., ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole ee453d177f 033/143: hpath--expand-list-match-regexp - Fix test with regexp char quoting, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 140798a28f 037/143: Merge pull request #426 from rswgnu/matsl-rsw-add-missing-fast-demo-tests, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole f2c6081a9c 034/143: Add fast-demo test for outline section with line and column, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole c51017f96b 040/143: Fix HyRolo search bug in Org mode when no * delim in file, just text, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 7e6d2e9659 062/143: Remove flymake/flycheck/byte-compile warnings (#431), ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole a4c41006cf 066/143: *ert* buffer - make {.} jump to interactively defined test def,
ELPA Syncer <=
- [elpa] externals/hyperbole 3e88bb0b17 067/143: Reuse ert test result items when Smart Keys run tests from defs, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole c36535463c 071/143: Merge pull request #435 from rswgnu/matsl-rsw-run-tests-specified-by-selector, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole ffd2dcbb85 077/143: Add tests for non file ebut creation and deletion, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 3940e00d12 080/143: Fix mult-version/mixed Org installations and hyrolo improvements, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole cec4659839 082/143: ebut-delete-removes-ebut-in-non-file-buffer - Enable this test, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 1b8fb059c6 089/143: Fix HyRolo {f} and {b} commands and tests, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 3206c44448 086/143: Remove tar-ball dependency on elc files (#442), ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 433eba17ca 092/143: Print build environment info when using eln target (#445), ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole a85f06a9e4 090/143: Merge branch 'rsw' of hyperbole into rsw, ELPA Syncer, 2024/02/19
- [elpa] externals/hyperbole 19aced9b01 078/143: Fix hyrolo-org-mode hide/show commands;, ELPA Syncer, 2024/02/19