branch: externals/hyperbole
commit cc1c0529cff22a25c11d3a2609583350f7f70d97
Merge: d3203181fc a366cc9ffd
Author: bw <[email protected]>
Commit: bw <[email protected]>
Merge branch 'master' into rsw
---
ChangeLog | 14 ++++
hbut.el | 12 +--
hsys-org.el | 3 +-
hsys-xref.el | 5 +-
hui-mouse.el | 4 +-
hui-select.el | 3 +-
hywiki.el | 4 +-
test/hui-mouse-tests.el | 18 ++---
test/hywiki-tests.el | 200 ++++++++++++------------------------------------
9 files changed, 86 insertions(+), 177 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 663d10fc92..46c8426615 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,20 @@
* hypb.el (hypb:in-string-p): Add optional 'max-lines' arg to limit the
search to that many full buffer lines starting with the line beginning
+2025-04-15 Mats Lidell <[email protected]>
+
+* test/hywiki-tests.el (hywiki-tests--command)
+ (hywiki-tests--save-referent-command)
+ (hywiki-tests--save-referent-command-use-menu)
+ (hywiki-tests--save-referent-find-use-menu)
+ (hywiki-tests--save-referent-info-index-use-menu): Clean up
+ hywiki-tests.el from FIXME comments and add the related tests.
+
+* hui-mouse.el (hkey-alist): Cleanup. Remove whitespace.
+
+* test/hui-mouse-tests.el (hui-mouse-tests--hkey-alist): Defvar
+ vertico-mode for bound-and-true-p to see the let value.
+
2025-04-14 Bob Weiner <[email protected]>
* test/hui-mouse-tests.el (hui-mouse-tests--hkey-alist): Update with new
diff --git a/hbut.el b/hbut.el
index b17c051acd..bc250da9f0 100644
--- a/hbut.el
+++ b/hbut.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 18-Sep-91 at 02:57:09
-;; Last-Mod: 14-Apr-25 at 23:07:21 by Bob Weiner
+;; Last-Mod: 16-Apr-25 at 10:42:06 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -892,8 +892,8 @@ Return the symbol for the button when found, else nil."
;;; ========================================================================
(defun hattr:actype-is-p (actype-symbol &optional hbut-symbol)
- "Return t if ACTYPE-SYMBOL matches an hbut's 'actype attr value.
-The hbut used defaults to 'hbut:current or the optional HBUT-SYMBOL."
+ "Return t if ACTYPE-SYMBOL matches an hbut's \='actype attr value.
+The hbut used defaults to \='hbut:current or the optional HBUT-SYMBOL."
(hattr:is-p 'actype
(or (actype:def-symbol actype-symbol) actype-symbol)
hbut-symbol))
@@ -955,14 +955,14 @@ Return TO-HBUT."
(get obj-symbol attr-symbol))
(defun hattr:ibtype-is-p (ibtype-symbol &optional ibut-symbol)
- "Return t if IBTYPE-SYMBOL matches an ibut's 'categ attr value.
-The ibut used defaults to 'hbut:current or the optional IBUT-SYMBOL."
+ "Return t if IBTYPE-SYMBOL matches an ibut's \='categ attr value.
+The ibut used defaults to \='hbut:current or the optional IBUT-SYMBOL."
(hattr:is-p 'categ
(or (ibtype:elisp-symbol ibtype-symbol) ibtype-symbol)
ibut-symbol))
(defun hattr:is-p (attr value &optional hbut-symbol)
- "Return t if ATTR has VALUE for 'hbut:current or optional HBUT-SYMBOL."
+ "Return t if ATTR has VALUE for \='hbut:current or optional HBUT-SYMBOL."
(and (symbolp attr) attr
(eq (hattr:get (or (and (symbolp hbut-symbol) hbut-symbol)
'hbut:current)
attr)
diff --git a/hsys-org.el b/hsys-org.el
index d4a74c6477..f4f173f9c3 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 2-Jul-16 at 14:54:14
-;; Last-Mod: 13-Apr-25 at 04:30:30 by Bob Weiner
+;; Last-Mod: 14-Apr-25 at 15:47:21 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -509,7 +509,6 @@ a non-Org buffer type."
(if (derived-mode-p 'org-mode)
(let* ((org-plist (hsys-org-thing-at-p))
(type (plist-get org-plist :type))
- (path (plist-get org-plist :path))
label-start-end)
(when (eq type 'link)
(save-match-data
diff --git a/hsys-xref.el b/hsys-xref.el
index 798f598119..d0973bebd2 100644
--- a/hsys-xref.el
+++ b/hsys-xref.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 24-Aug-91
-;; Last-Mod: 2-Mar-25 at 18:11:45 by Bob Weiner
+;; Last-Mod: 14-Apr-25 at 15:51:27 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -27,6 +27,7 @@
;;; ************************************************************************
(declare-function smart-emacs-lisp-mode-p "hmouse-tag")
+(declare-function hpath:at-p "hpath")
;;; ************************************************************************
;;; Public functions
@@ -49,7 +50,7 @@
(car (hsys-xref-definitions identifier)))
(defun hsys-xref-identifier-at-point ()
- ;; Return nil if xref returns a pathname as an identifier
+ "Return nil if xref returns a pathname as an identifier."
(unless (hpath:at-p nil t)
(xref-backend-identifier-at-point (xref-find-backend))))
diff --git a/hui-mouse.el b/hui-mouse.el
index 49f95df4db..79b9584993 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 04-Feb-89
-;; Last-Mod: 13-Apr-25 at 14:49:05 by Bob Weiner
+;; Last-Mod: 15-Apr-25 at 12:51:50 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -260,7 +260,7 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
((and (bound-and-true-p vertico-mode)
;; Is vertico prompting for an argument?
(vertico--command-p nil (current-buffer)))
- . ((funcall (lookup-key vertico-map (kbd "M-RET")))
+ . ((funcall (lookup-key vertico-map (kbd "M-RET")))
. (funcall (lookup-key vertico-map (kbd "M-RET")))))
;;
;; If in the minibuffer and reading a non-menu Hyperbole argument
diff --git a/hui-select.el b/hui-select.el
index 44e734f071..523d871a0c 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 19-Oct-96 at 02:25:27
-;; Last-Mod: 27-Feb-25 at 21:24:19 by Bob Weiner
+;; Last-Mod: 14-Apr-25 at 15:53:22 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -327,6 +327,7 @@ Used to include a final line when marking indented code.")
;;; Public declarations
;;; ************************************************************************
+(defvar hbut:syntax-table) ; "hbut.el"
(defvar help-mode-syntax-table) ; "help-mode.el"
(defvar hkey-init) ; "hyperbole.el"
(defvar hkey-value) ; "hui-mouse.el"
diff --git a/hywiki.el b/hywiki.el
index ca4a901272..19236728ee 100644
--- a/hywiki.el
+++ b/hywiki.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 21-Acpr-24 at 22:41:13
-;; Last-Mod: 18-Apr-25 at 21:53:17 by Bob Weiner
+;; Last-Mod: 18-Apr-25 at 21:59:30 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -2833,7 +2833,7 @@ Word may be of form:
2. If WORD is the symbol, :range, and there is a HyWikiWord at point
with an existing referent, return the tuple of values: (word
word-start word-end) instead of the word; otherwise, return the tuple
- '(nil nil nil).
+ \='(nil nil nil).
When using the word at point, a call to `hywiki-active-in-current-buffer-p'
at point must return non-nil or this function will return nil."
diff --git a/test/hui-mouse-tests.el b/test/hui-mouse-tests.el
index 358804656a..76334cec8d 100644
--- a/test/hui-mouse-tests.el
+++ b/test/hui-mouse-tests.el
@@ -3,7 +3,7 @@
;; Author: Mats Lidell
;;
;; Orig-Date: 15-Mar-25 at 22:39:37
-;; Last-Mod: 15-Apr-25 at 01:03:12 by Bob Weiner
+;; Last-Mod: 15-Apr-25 at 13:13:21 by Mats Lidell
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -34,16 +34,14 @@
(should (equal (hkey-actions)
(cons '(smart-dired-sidebar) '(smart-dired-sidebar)))))
- ;; !! FIXME: In CI/CD tests, the hkey-alist smart-prog-at-tag-p is
- ;; triggering instead of the vertico clause. Works interactively
- ;; but maybe needs more context specification. Disable for now.
;; Vertico
- ;; (let ((ivy-mode nil)
- ;; (vertico-mode t))
- ;; (mocklet ((vertico--command-p => t))
- ;; (should (equal (hkey-actions)
- ;; (cons '(funcall (lookup-key vertico-map (kbd "M-RET")))
- ;; '(funcall (lookup-key vertico-map (kbd
"M-RET"))))))))
+ (defvar vertico-mode)
+ (let ((ivy-mode nil)
+ (vertico-mode t))
+ (mocklet ((vertico--command-p => t))
+ (should (equal (hkey-actions)
+ (cons '(funcall (lookup-key vertico-map (kbd "M-RET")))
+ '(funcall (lookup-key vertico-map (kbd
"M-RET"))))))))
)
(provide 'hui-mouse-tests)
diff --git a/test/hywiki-tests.el b/test/hywiki-tests.el
index efc1071d6a..3dd41745aa 100644
--- a/test/hywiki-tests.el
+++ b/test/hywiki-tests.el
@@ -722,7 +722,7 @@ Both mod-time and checksum must be changed for a test to
return true."
("WikiWord#Bsection-subsection" . "** Bsection subsection")
("WikiWord#Bsection-subsection:L2" . "body B")
("WikiWord#Bsection-subsection:L2:C2" . "dy B")
- ;; FIXME: Uncomment when implemented.
+ ;; !! FIXME: Uncomment when implemented.
;; ("(WikiWord#Bsection subsection)" . "** Bsection
subsection")
;; ("(WikiWord#Asection)" . "* Asection")
)))
@@ -1004,24 +1004,6 @@ Note special meaning of `hywiki-allow-plurals-flag'."
(hywiki-get-referent wikiword))))
(hy-delete-dir-and-buffer hywiki-directory))))
-;;; FIXME
-;; Without creating an initial page the test case above oddly fails on
-;; first run when executed interactively in a fresh Emacs. Such as
-;; running "make all-tests" in a shell. Why?
-;;
-;; (ert-deftest hywiki-tests--add-org-roam-node ()
-;; "Verify `hywiki-add-org-roam-node'."
-;; (let* ((hywiki-directory (make-temp-file "hywiki" t))
-;; (wikiword (hy-make-random-wikiword)))
-;; (unwind-protect
-;; (mocklet (((hypb:require-package 'org-roam) => t)
-;; ((org-roam-node-read) => "node")
-;; ((org-roam-node-title "node") => "node-title"))
-;; (hywiki-add-org-roam-node wikiword)
-;; (should (equal '(org-roam-node . "node-title")
-;; (hywiki-get-referent wikiword))))
-;; (hy-delete-dir-and-buffer hywiki-directory))))
-
(defmacro hywiki-tests--referent-test (expected &rest prepare)
"Referent test boilerplate code.
EXPECTED is the result expected from hywiki-get-referent. PREPARE sets
@@ -1070,50 +1052,9 @@ up the test."
; The failure is intermittent. See expanded test case below.
(skip-unless (not noninteractive))
(hywiki-tests--referent-test
- (cons 'key-series "{ABC}")
- (should (hact 'kbd-key "C-u C-h hhck{ABC} RET"))
- (hy-test-helpers:consume-input-events)))
-
-;; !! TODO: Have to make this work or remove it.
-;; Expanded for easier debugging
-;; (ert-deftest hywiki-tests--save-referent-keyseries-use--menu-expanded ()
-;; "Verify saving and loading a referent works when using Hyperbole's menu."
-;; :expected-result :failed
-;; ;; The entered key series is inserted into the WikiWord file. See
-;; ;; comment below. The failure is intermittent.
-;; (skip-unless (not noninteractive))
-;; (let* ((hywiki-directory (make-temp-file "hywiki" t))
-;; (wiki-page (cdr (hywiki-add-page "WikiPage" )))
-;; (wiki-referent "WikiReferent")
-;; (mode-require-final-newline nil))
-;; (unwind-protect
-;; (progn
-;; (find-file wiki-page)
-;; (insert wiki-referent)
-;; (save-buffer)
-;; (goto-char 4)
-
-;; (should (hact 'kbd-key "C-u C-h hhck{ABC} RET"))
-;; (hy-test-helpers:consume-input-events)
-
-;; ;; The buffer contents is changed and now reads
-;; ;; "Wik{ABC}iReferent" as the next should verifies. The
-;; ;; second should is the expected behavior. No change in the
-;; ;; WikiPage buffer.
-;; (should (string= "Wik{ABC}iReferent"
(buffer-substring-no-properties (point-min) (point-max))))
-;; (should (string= wiki-referent (buffer-substring-no-properties
(point-min) (point-max))))
-
-;; (should (file-exists-p (hywiki-cache-default-file)))
-;; (should (equal '(key-series . "{ABC}") (hywiki-get-referent
wiki-referent)))
-
-;; ;; Simulate reload from cache
-;; (hywiki-cache-save)
-;; (setq hywiki--referent-hasht nil)
-;; (hywiki-make-referent-hasht)
-
-;; (should (equal '(key-series . "{ABC}") (hywiki-get-referent
wiki-referent))))
-;; (hy-delete-files-and-buffers (list wiki-page
(hywiki-cache-default-file)))
-;; (hy-delete-dir-and-buffer hywiki-directory))))
+ (cons 'key-series "{ABC}")
+ (should (hact 'kbd-key "C-u C-h hhck{ABC} RET"))
+ (hy-test-helpers:consume-input-events)))
;; Bookmark
(ert-deftest hywiki-tests--save-referent-bookmark ()
@@ -1135,81 +1076,43 @@ up the test."
;; Command
-;; (defun hywiki-tests--command (_wikiword)
-;; "Test command."
-;; (interactive)
-;; t)
-
-;; ;; FIXME: Command get the referent as argument which is not useful.
-;; (ert-deftest hywiki-tests--save-referent-command ()
-;; "Verify saving and loading a referent command works."
-;; (hywiki-tests--referent-test
-;; (cons 'command #'hywiki-tests--command)
-;; (with-simulated-input "hywiki-tests--command RET"
-;; (hywiki-add-command wiki-referent))))
-
-;; (ert-deftest hywiki-tests--save-referent-command-use-menu ()
-;; "Verify saving and loading a referent command works using Hyperbole's
menu.."
-;; (skip-unless (not noninteractive))
-;; (hywiki-tests--referent-test
-;; (cons 'command #'hpath:find)
-;; (should (hact 'kbd-key "C-u C-h hhcc hpath:find RET"))
-;; (hy-test-helpers:consume-input-events)))
-
-;; Expanded for debugging
-;; FIXME: There is a race here. It mostly fails but on rerun it can be
-;; made to work.
-;; (ert-deftest hywiki-tests--save-referent-command-use-menu-expanded ()
-;; "Verify saving and loading a referent bookmark works using Hyperbole's
menu.."
-;; (skip-unless (not noninteractive))
-;; (let* ((hywiki-directory (make-temp-file "hywiki" t))
-;; (wiki-page (cdr (hywiki-add-page "WikiPage" )))
-;; (wiki-referent "WikiReferent")
-;; (mode-require-final-newline nil))
-;; (unwind-protect
-;; (progn
-;; (find-file wiki-page)
-;; (insert wiki-referent)
-;; (save-buffer)
-;; (goto-char 4)
-
-;; (should (hact 'kbd-key "C-u C-h hhcc hpath:find RET"))
-;; (hy-test-helpers:consume-input-events)
-
-;; (should (string= wiki-referent (buffer-substring-no-properties
(point-min) (point-max))))
-;; (should (file-exists-p (hywiki-cache-default-file)))
-;; (should (equal (cons 'command #'hpath:find) (hywiki-get-referent
wiki-referent)))
-
-;; ;; Simulate reload from cache
-;; (hywiki-cache-save)
-;; (setq hywiki--referent-hasht nil)
-;; (hywiki-make-referent-hasht)
-
-;; (should (equal (cons 'command #'hpath:find) (hywiki-get-referent
wiki-referent))))
-;; (hy-delete-files-and-buffers (list wiki-page
(hywiki-cache-default-file)))
-;; (hy-delete-dir-and-buffer hywiki-directory))))
+(defun hywiki-tests--command (wikiword)
+ "Test command."
+ (interactive)
+ (should (string= "WikiReferent" wikiword)))
+
+(ert-deftest hywiki-tests--save-referent-command ()
+ "Verify saving and loading a referent command works."
+ (hywiki-tests--referent-test
+ (cons 'command #'hywiki-tests--command)
+ (with-simulated-input "hywiki-tests--command RET"
+ (hywiki-add-command wiki-referent))))
+
+(ert-deftest hywiki-tests--save-referent-command-use-menu ()
+ "Verify saving and loading a referent command works using Hyperbole's menu.."
+ (skip-unless (not noninteractive))
+ (hywiki-tests--referent-test
+ (cons 'command #'hywiki-tests--command)
+ (should (hact 'kbd-key "C-u C-h hhcc hywiki-tests--command RET"))
+ (hy-test-helpers:consume-input-events)))
;; Find
(ert-deftest hywiki-tests--save-referent-find ()
"Verify saving and loading a referent find works."
(hywiki-tests--referent-test
- (cons 'find #'hywiki-word-grep)
- (hywiki-add-find wiki-referent)))
-
-;; FIXME - Find defaults to search the referent which is not a likely
-;; use case. Should it not prompt user for the search string and
-;; not assume the referent is what you want to search for?
-
-;; FIXME - fails on 28.2 if executed with other test case!?
-;; (ert-deftest hywiki-tests--save-referent-find-use-menu ()
-;; "Verify saving and loading a referent find works using Hyperbole's menu.."
-;; (skip-unless (not noninteractive))
-;; (hywiki-tests--referent-test
-;; (cons 'find #'hywiki-word-grep)
-;; (with-mock
-;; (mock (hywiki-word-grep "WikiReferent") => t)
-;; (should (hact 'kbd-key "C-u C-h hhcf"))
-;; (hy-test-helpers:consume-input-events))))
+ (cons 'find #'hywiki-word-grep)
+ (hywiki-add-find wiki-referent)))
+
+(ert-deftest hywiki-tests--save-referent-find-use-menu ()
+ "Verify saving and loading a referent find works using Hyperbole's menu.."
+ (skip-unless (not noninteractive))
+ (skip-unless (not (version< emacs-version "29"))) ;; Fails on 28!?
+ (hywiki-tests--referent-test
+ (cons 'find #'hywiki-word-grep)
+ (with-mock
+ (mock (hywiki-word-grep "WikiReferent") => t)
+ (should (hact 'kbd-key "C-u C-h hhcf"))
+ (hy-test-helpers:consume-input-events))))
;; Global-button
(ert-deftest hywiki-tests--save-referent-global-button ()
@@ -1239,8 +1142,6 @@ up the test."
(hy-delete-file-and-buffer test-file)))))
;; HyRolo
-;; FIXME: The search is over the name of the WikiWord which is likely
-;; not what was intended. Test below is for completeness.
(ert-deftest hywiki-tests--save-referent-hyrolo ()
"Verify saving and loading a referent hyrolo works."
(hywiki-tests--referent-test
@@ -1257,21 +1158,17 @@ up the test."
(info "emacs")
(hywiki-add-info-index wiki-referent)))))
-;; FIXME: Does not work properly. Ends prematurely on reading in index
-;; item, at least if starting from scratch, i.e., no *info* buffer
-;; already created.
-;; --
-;; (ert-deftest hywiki-tests--save-referent-info-index-use-menu ()
-;; "Verify saving and loading a referent info index works using Hyperbole's
menu."
-;; (skip-unless (not noninteractive))
-;; (hywiki-tests--referent-test
-;; (cons 'info-index "(emacs)files")
-;; (save-excursion
-;; (unwind-protect
-;; (progn
-;; (should (hact 'kbd-key "C-u C-h hhcim emacs RET i files RET"))
-;; (hy-test-helpers:consume-input-events))
-;; (kill-buffer "*info*")))))
+(ert-deftest hywiki-tests--save-referent-info-index-use-menu ()
+ "Verify saving and loading a referent info index works using Hyperbole's
menu."
+ (skip-unless (not noninteractive))
+ (hywiki-tests--referent-test
+ (cons 'info-index "(emacs)files")
+ (save-excursion
+ (unwind-protect
+ (progn
+ (should (hact 'kbd-key "C-u C-h hhci (emacs)files RET"))
+ (hy-test-helpers:consume-input-events))
+ (kill-buffer "*info*")))))
;; Info node
(ert-deftest hywiki-tests--save-referent-info-node ()
@@ -1320,8 +1217,7 @@ up the test."
(hywiki-add-org-id wiki-referent)))
(hy-delete-file-and-buffer filea))))))
-;; FIXME: Org-id links does not seem to work.
-;; FIXME: Add test using Hyperbole's menu.
+;; FIXME: Add Org-id links tests.
;; Org roam
(ert-deftest hywiki-tests--save-referent-org-roam-node ()