[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole e705c79329 26/28: Hyperbole Keys defer to any
From: |
ELPA Syncer |
Subject: |
[elpa] externals/hyperbole e705c79329 26/28: Hyperbole Keys defer to any bindings in current modes |
Date: |
Tue, 21 Nov 2023 12:58:20 -0500 (EST) |
branch: externals/hyperbole
commit e705c79329bdd1ee5306b21ffc2f285eb287bc77
Author: bw <rsw@gnu.org>
Commit: bw <rsw@gnu.org>
Hyperbole Keys defer to any bindings in current modes
This applies to Hyperbole bindings of {C-c RET}, {C-c .}, {C-c @}, and
{C-c /}. These defer to any major mode like org-mode, outline-mode or
kotl-mode that binds them to other commands. This also works for
outline-minor-mode.
---
ChangeLog | 18 ++++++++++++
HY-NEWS | 7 ++++-
hui-mini.el | 25 +++++++++++------
hui-select.el | 61 +++++++++++++++++++++++++---------------
hycontrol.el | 35 +++++++++++++----------
man/hyperbole.html | 75 ++++++++++++++++++++++++++++++-------------------
man/hyperbole.info | Bin 615520 -> 615914 bytes
man/hyperbole.pdf | Bin 1370138 -> 1370428 bytes
man/hyperbole.texi | 80 ++++++++++++++++++++++++++++++++---------------------
9 files changed, 196 insertions(+), 105 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 10ec6e0bad..3277232a20 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2023-11-21 Bob Weiner <rsw@gnu.org>
+
+* hui-select.el (hui-select-initialize): Fix to set 'syntax-table-sym'
+ and 'keymap-sym' locally within the function rather than globally
+ which would affect modes beyond those in 'hui-select-markup-modes'.
+ (hui-select-goto-matching-delimiter): If the key that
+ invokes this command in hyperbole-minor-mode is also bound in the
+ current major mode map, then interactively invoke that command
+ instead. Typically prevents clashes over {C-c .}. Previously
+ did this only for 'org-mode' but 'kotl-mode' also has a conflict
+ that this fixes.
+ (hui-select-thing): Apply the same above fix for
+ {C-c RET}, {C-c C-m}.
+ hui-mini.el (hui-search-web): Apply the same above fix for {C-c /}.
+ hycontrol.el (hycontrol-windows-grid): Apply the same above fix for
+ {C-c @} and fix 'outline-minor-mode' handling as a prefix keymap.
+ HY-NEWS (HYPERBOLE SYSTEM): Document the above fix.
+
2023-11-19 Bob Weiner <rsw@gnu.org>
* test/demo-tests.el: Fix a number of these tests to be a bit more
diff --git a/HY-NEWS b/HY-NEWS
index ee3af5d84b..971e6a0539 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -121,6 +121,11 @@
buffer when creating a Hyperbole button. Always use the current
buffer and point. See "(hyperbole)Creation".
+ *** Hyperbole Keys Defer to Current Modes: Hyperbole bindings of {C-c RET},
+ {C-c .}, {C-c @}, and {C-c /} defer to any major mode, like org-mode,
+ outline-mode or kotl-mode that binds them to other commands. This also
+ works for outline-minor-mode.
+
*** Improved Button Help: {C-h A} now says whether a button is explicit or
implicit. For implicit buttons, it displays the doc from both its
implicit button type and its associated action type.
@@ -603,7 +608,7 @@
*** {C-c /}: The Hyperbole {C-c /} web search binding defers to the org-mode
binding, `org-show-todo-tree', when in Org mode, but uses the improved
Hyperbole command version, `hsys-org-todo-occur', which allows filtering
- to spec"ific todo states.
+ to specific todo states.
** SMART (ACTION AND ASSIST) KEYS (See "(hyperbole)Smart Keys").
diff --git a/hui-mini.el b/hui-mini.el
index 4d070e81d3..058a954a9a 100644
--- a/hui-mini.el
+++ b/hui-mini.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 15-Oct-91 at 20:13:17
-;; Last-Mod: 7-Oct-23 at 00:56:25 by Mats Lidell
+;; Last-Mod: 21-Nov-23 at 02:42:53 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -611,16 +611,23 @@ The menu is a menu of commands from MENU-ALIST."
web-mini-menu))
(defun hui-search-web ()
- "Prompt for a web search engine and search term and then perform the search."
+ "Prompt for a web search engine and search term and then perform the search.
+
+If the key that invokes this command in `hyperbole-minor-mode' is also
+bound in the current major mode map, then interactively invoke that
+command instead. Typically prevents clashes over {C-c /}."
(interactive)
(let* ((key (hypb:cmd-key-vector #'hui-search-web hyperbole-mode-map))
- (org-key-cmd (and (derived-mode-p 'org-mode)
- (called-interactively-p 'any)
- (equal (this-single-command-keys) key)
- (lookup-key org-mode-map key))))
- (if org-key-cmd
- ;; Prevent a conflict with {C-c /} binding in Org mode
- (call-interactively org-key-cmd)
+ (major-mode-binding (lookup-key (current-local-map) key))
+ (this-key-flag (and (called-interactively-p 'any)
+ (equal (this-single-command-keys) key))))
+ (if (and major-mode-binding (not (integerp major-mode-binding))
+ this-key-flag)
+ ;; If the key that invokes this command in `hyperbole-minor-mode'
+ ;; is also bound in the current major mode map, then
+ ;; interactively invoke that command instead. Typically
+ ;; prevents clashes over {C-c /}.
+ (call-interactively major-mode-binding)
;;
;; No key conflicts, perform normal Hyperbole operation
(hyperbole 'web))))
diff --git a/hui-select.el b/hui-select.el
index 35d0b218d9..89d1191667 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: 22-Oct-23 at 17:26:49 by Mats Lidell
+;; Last-Mod: 21-Nov-23 at 02:41:17 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -109,8 +109,8 @@
(require 'hvar)
(eval-when-compile
- (require 'mhtml-mode) ;; for MHTML mode
- (require 'sgml-mode) ;; for HTML mode
+ (require 'mhtml-mode) ;; for MHTML and HTML modes
+ (require 'sgml-mode) ;; for SGML mode
(require 'nxml-mode) ;; for XML mode
(require 'web-mode nil t))
@@ -245,9 +245,7 @@ Used to include a final line when marking indented code.")
(defvar hkey-init) ; "hyperbole.el"
(defvar hkey-value) ; "hui-mouse.el"
(defvar hyperbole-mode-map) ; "hyperbole.el"
-(defvar keymap-sym) ; "???"
(defvar org-mode-map) ; "org.el"
-(defvar syntax-table-sym) ; "???"
(declare-function kview:valid-position-p "kotl/kview")
(declare-function hkey-set-key "hyperbole")
@@ -353,19 +351,27 @@ returned is the function to call to select that syntactic
unit."
;;;###autoload
(defun hui-select-goto-matching-delimiter ()
- "Jump back and forth between the start and end delimiters of a thing."
+ "Jump back and forth between the start and end delimiters of a thing.
+
+If the key that invokes this command in `hyperbole-minor-mode' is
+also bound in the current major mode map, then interactively
+invoke that command instead. Typically prevents clashes over
+{C-c .}."
(interactive)
(if (memq major-mode hui-select-markup-modes)
(hui-select-goto-matching-tag)
(let* ((key (hypb:cmd-key-vector #'hui-select-goto-matching-delimiter
hyperbole-mode-map))
- (org-key-cmd (and (derived-mode-p 'org-mode)
- (called-interactively-p 'any)
- (equal (this-single-command-keys) key)
- (lookup-key org-mode-map key))))
- (cond (org-key-cmd
- ;; Prevent a conflict with {C-c .} binding in Org mode
- (call-interactively org-key-cmd))
+ (major-mode-binding (lookup-key (current-local-map) key))
+ (this-key-flag (and (called-interactively-p 'any)
+ (equal (this-single-command-keys) key))))
+ (cond ((and major-mode-binding (not (integerp major-mode-binding))
+ this-key-flag)
+ ;; If the key that invokes this command in `hyperbole-minor-mode'
+ ;; is also bound in the current major mode map, then
+ ;; interactively invoke that command instead. Typically
+ ;; prevents clashes over {C-c .}.
+ (call-interactively major-mode-binding))
((and (preceding-char) (or (= ?\) (char-syntax (preceding-char)))
(= ?\" (preceding-char))))
(backward-sexp))
@@ -411,7 +417,10 @@ Also, add language-specific syntax setups to aid in thing
selection."
;;
;; Make tag begin and end delimiters act like grouping characters,
;; for easy syntactical selection of tags.
- (let (hook-sym mode-str)
+ (let (hook-sym
+ mode-str
+ syntax-table-sym
+ keymap-sym)
(mapc (lambda (mode)
(setq mode-str (symbol-name mode)
hook-sym (intern (concat mode-str "-hook"))
@@ -457,7 +466,12 @@ Also, add language-specific syntax setups to aid in thing
selection."
"Select a region based on the syntax of the thing at point.
If invoked repeatedly, this selects bigger and bigger things.
If `hui-select-display-type' is non-nil and this is called
-interactively, the type of selection is displayed in the minibuffer."
+interactively, the type of selection is displayed in the minibuffer.
+
+If the key that invokes this command in `hyperbole-minor-mode' is
+also bound in the current major mode map, then interactively
+invoke that command instead. Typically prevents clashes over
+{C-c RET}, {C-c C-m}."
(interactive
(cond ((and (fboundp 'use-region-p) (use-region-p))
nil)
@@ -468,13 +482,16 @@ interactively, the type of selection is displayed in the
minibuffer."
(hui-select-reset)
nil)))
(let* ((key (hypb:cmd-key-vector #'hui-select-thing hyperbole-mode-map))
- (org-key-cmd (and (derived-mode-p 'org-mode)
- (called-interactively-p 'any)
- (equal (this-single-command-keys) key)
- (lookup-key org-mode-map key))))
- (cond (org-key-cmd
- ;; Prevent a conflict with {C-c RET} binding in Org mode
- (call-interactively org-key-cmd))
+ (major-mode-binding (lookup-key (current-local-map) key))
+ (this-key-flag (and (called-interactively-p 'any)
+ (equal (this-single-command-keys) key))))
+ (cond ((and major-mode-binding (not (integerp major-mode-binding))
+ this-key-flag)
+ ;; If the key that invokes this command in `hyperbole-minor-mode'
+ ;; is also bound in the current major mode map, then
+ ;; interactively invoke that command instead. Typically
+ ;; prevents clashes over {C-c RET}, {C-c C-m}.
+ (call-interactively major-mode-binding))
;;
;; No key conflicts, perform normal Hyperbole operation
(t (let ((region (hui-select-get-region-boundaries)))
diff --git a/hycontrol.el b/hycontrol.el
index 0066b9d509..12a785e489 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 1-Jun-16 at 15:35:36
-;; Last-Mod: 20-Nov-23 at 02:03:13 by Bob Weiner
+;; Last-Mod: 21-Nov-23 at 03:01:07 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -1644,7 +1644,11 @@ buffers whose names start with a space are ignored.
When done, this resets the persistent HyControl prefix argument to
1 to prevent following commands from using the often large grid size
-argument."
+argument.
+
+If the key that invokes this command in `hyperbole-minor-mode' is also
+bound in the current major mode map, then interactively invoke that
+command instead. Typically prevents clashes over {C-c @}."
(interactive "P")
(let ((numeric-arg (prefix-numeric-value current-prefix-arg)))
(if (or (<= numeric-arg 0) (> numeric-arg 11))
@@ -1652,20 +1656,23 @@ argument."
;; this range, so ignore other key bindings.
(hycontrol--windows-grid-internal arg)
(let* ((key (hypb:cmd-key-vector #'hycontrol-windows-grid
hyperbole-mode-map))
+ (mode-binding (lookup-key (current-local-map) key))
(this-key-flag (and (called-interactively-p 'interactive)
(equal (this-single-command-keys) key))))
- (cond ((and this-key-flag (derived-mode-p 'org-mode)
- (lookup-key org-mode-map key))
- ;; Prevent a conflict with binding in Org mode
- (call-interactively (lookup-key org-mode-map key)))
- ((and (not arg) this-key-flag (derived-mode-p 'outline-mode)
- (lookup-key outline-mode-map key))
- ;; Prevent a conflict with binding in Outline mode
- (call-interactively (lookup-key outline-mode-map key)))
- ((and (not arg) this-key-flag (boundp 'outline-minor-mode)
- outline-minor-mode (lookup-key outline-minor-mode-map key))
- ;; Prevent a conflict with binding in Outline minor mode
- (call-interactively (lookup-key outline-minor-mode-map key)))
+ (cond ((and mode-binding (not (integerp mode-binding))
+ this-key-flag (if (eq major-mode #'outline-mode) (not arg)
t))
+ ;; If the key that invokes this command in `hyperbole-minor-mode'
+ ;; is also bound in the current major mode map, then
+ ;; interactively invoke that command instead. Typically
+ ;; prevents clashes over {C-c @}.
+ (call-interactively mode-binding))
+ ((and (not arg) this-key-flag
+ (boundp 'outline-minor-mode) outline-minor-mode
+ (setq mode-binding (lookup-key outline-minor-mode-map key))
+ (not (integerp mode-binding))
+ (keymapp mode-binding))
+ ;; Prevent a conflict with keymap binding in Outline minor mode
+ (kbd-key:key-series-to-events key))
;;
;; No key conflicts, display window grid
(t (hycontrol--windows-grid-internal arg)))))))
diff --git a/man/hyperbole.html b/man/hyperbole.html
index 52cf5516c6..776dc52c38 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -382,7 +382,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 8.0.1pre
-Printed November 19, 2023.
+Printed November 21, 2023.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -1985,6 +1985,9 @@ the same or lesser indentation). Use <kbd>{C-g}</kbd> to
unmark the region when
done. Use, <code>hui-select-thing-with-mouse</code> if you want to bind this
to
a different mouse key to use single clicks instead of double clicks.
</p>
+<p>This key defers to any currently active <code>major-mode</code> which also
+binds it.
+</p>
<a name="index-C_002dc-_002e"></a>
<a name="index-hui_002dselect_002dgoto_002dmatching_002dtag"></a>
<p>The second convenience key is bound in HTML/XML/SGML/web
@@ -1995,6 +1998,9 @@ precedes. A second press moves point to the matching tag
of the pair,
allowing you to quickly jump back and forth between opening and
closing tags.
</p>
+<p>This key defers to any currently active <code>major-mode</code> which also
+binds it.
+</p>
<hr>
<a name="Smart-Mouse-Key-Modeline-Clicks"></a>
<div class="header">
@@ -10181,9 +10187,12 @@ is made only if the key is not bound prior to
initializing Hyperbole.
<dt><kbd>{C-c /}</kbd></dt>
<dd><p>Search the Web: Display a minibuffer menu of web search engines. Once
an engine is selected, prompt for a search term and perform the
-associated search. This binding is made only if the key is not bound
-prior to initializing Hyperbole; otherwise, the Find/Web minibuffer menu
-item, <kbd>{C-h h f w}</kbd>, will do the same thing.
+associated search.
+</p>
+<p>This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any <code>major-mode</code>
+binding. When needed, the Find/Web minibuffer menu item, <kbd>{C-h
+h f w}</kbd>, will do the same thing.
</p>
<a name="index-C_002dc-_0040"></a>
<a name="index-key-binding_002c-C_002dc-_0040"></a>
@@ -10197,18 +10206,22 @@ item, <kbd>{C-h h f w}</kbd>, will do the same thing.
<a name="index-C_002dc-_0040-1"></a>
</dd>
<dt><kbd>{C-c @}</kbd></dt>
-<dd><p>Display a grid of windows in the selected frame, sized according to the
-prefix argument. The left digit of the argument is the number of grid rows
-and the right digit is the number of grid columns. Use <kbd>{C-h h h}</kbd> to
-restore the prior frame configuration.
+<dd><p>Display a grid of windows in the selected frame, sized according to
+the prefix argument. The left digit of the argument is the number
+of grid rows and the right digit is the number of grid columns. Use
+<kbd>{C-h h h}</kbd> to restore the prior frame configuration.
</p>
-<p>If the argument is 0, prompt for a major mode whose buffers should be
-displayed first in the grid windows, then prompt for the grid size.
+<p>If the argument is 0, prompt for a major mode whose buffers should
+be displayed first in the grid windows, then prompt for the grid
+size.
</p>
-<p>If the argument is < 0, prompt for a shell glob-type file pattern and
display
-files that match the pattern in an auto-sized windows grid.
+<p>If the argument is < 0, prompt for a shell glob-type file pattern
+and display files that match the pattern in an auto-sized windows
+grid.
</p>
-<p>This binding is made only if the key is not bound prior to initializing
Hyperbole.
+<p>This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any <code>major-mode</code>
+binding and when <code>outline-minor-mode</code> is active.
</p>
<p>For further details, see the <kbd>{@}</kbd> key binding description
in <a href="#HyControl">HyControl</a>.
@@ -10219,11 +10232,12 @@ in <a href="#HyControl">HyControl</a>.
<dt><kbd>{M-o}</kbd></dt>
<dd><p>Drag Operation: Keyboard emulation of the start and stop of mouse
drags to invoke Smart Key actions. This binding is made only if the
-key is not bound prior to initializing Hyperbole and if Emacs is run under
-a window system. If the Ace Window package is loaded, then Ace Window
-commands are typically bound to <kbd>{M-o}</kbd> instead. Then <kbd>{M-o
w}</kbd>
-may be used to quickly create an explicit link button in the selected window
-that links to any other window chosen via the Ace Window prompt.
+key is not bound prior to initializing Hyperbole and if Emacs is run
+under a window system. If the Ace Window package is loaded, then
+Ace Window commands are typically bound to <kbd>{M-o}</kbd> instead. Then
+<kbd>{M-o w}</kbd> may be used to quickly create an explicit link button
+in the selected window that links to any other window chosen via the
+Ace Window prompt.
</p>
<a name="index-key-binding_002c-C_002dh-h"></a>
<a name="index-C_002dh-h-2"></a>
@@ -10258,17 +10272,22 @@ minibuffer menu and disable Hyperbole minor mode.
<dd><p>Mark Things: Mark larger and larger syntactical units in a buffer
when invoked repeatedly, showing in the minibuffer the type of unit
marked each time. For example, if on an opening brace at the start of
-a C, Java or Javascript function, this marks the whole function. This
-binding is made only if the key is not bound prior to initializing
-Hyperbole.
+a C, Java or Javascript function, this marks the whole function.
+</p>
+<p>This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any <code>major-mode</code>
+binding.
</p>
<a name="index-key-binding_002c-C_002dc-_002e"></a>
<a name="index-C_002dc-_002e-2"></a>
</dd>
<dt><kbd>{C-c .}</kbd></dt>
<dd><p>Delimited Thing Jump: Jump between the start and end of a delimited
-thing, which may be an HTML tag pair. This binding is made only if
-the key is not bound prior to initializing Hyperbole. See <a
href="#Smart-Key-Thing-Selection">Smart Key Thing Selection</a>, for more
information.
+thing, which may be an HTML tag pair.
+</p>
+<p>This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any <code>major-mode</code>
+binding. See <a href="#Smart-Key-Thing-Selection">Smart Key Thing
Selection</a>, for more information.
</p>
<a name="index-key-binding_002c-M_002dw"></a>
<a name="index-mark_002deven_002dif_002dinactive"></a>
@@ -10311,9 +10330,9 @@ to ‘<samp>t</samp>’ (true) by default in
<samp>hyperbole.el</samp>.
means all Hyperbole key bindings will be initialized when Hyperbole is
loaded. If you want to disable these bindings permanently, simply add
<code>(setq hkey-init nil)</code> to your <samp>~/.emacs</samp> file prior to
the
-point at which you load Hyperbole; then restart Emacs. Henceforth, you will
-have to choose the Hyperbole commands that you want to use and bind those to
-keys.
+point at which you load Hyperbole; then restart Emacs. Henceforth,
+you will have to choose the Hyperbole commands that you want to use
+and bind those to keys.
</p>
<a name="index-file_002c-_002eemacs-4"></a>
<a name="index-hyperbole_002dmode-1"></a>
@@ -10344,8 +10363,8 @@ press the Action Key to see the source of the failure.
Full testing is
supported under POSIX systems only.
</p>
<p>With Hyperbole active, you can also define implicit buttons that run
-individual or sets of Hyperbole tests. The file <samp>hypb-ert.el</samp>
contains
-two action link types:
+individual or sets of Hyperbole tests. The file <samp>hypb-ert.el</samp>
+contains two action link types:
</p>
<div class="example">
<pre class="example"><code>hyperbole-run-test</code> - run a single Hyperbole
test by name
diff --git a/man/hyperbole.info b/man/hyperbole.info
index ad1d404b5f..04893a642a 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index bf2fc1b9c1..b724487ac2 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index ea993612ec..954c73e6fb 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -7,7 +7,7 @@
@c Author: Bob Weiner
@c
@c Orig-Date: 6-Nov-91 at 11:18:03
-@c Last-Mod: 20-Nov-23 at 02:22:04 by Bob Weiner
+@c Last-Mod: 21-Nov-23 at 03:27:45 by Bob Weiner
@c %**start of header (This is for running Texinfo on a region.)
@setfilename hyperbole.info
@@ -156,7 +156,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 8.0.1pre
-Printed November 19, 2023.
+Printed November 21, 2023.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -198,7 +198,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@example
Edition 8.0.1pre
-November 19, 2023
+November 21, 2023
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -1395,6 +1395,9 @@ the same or lesser indentation). Use @bkbd{C-g} to
unmark the region when
done. Use, @code{hui-select-thing-with-mouse} if you want to bind this to
a different mouse key to use single clicks instead of double clicks.
+This key defers to any currently active @code{major-mode} which also
+binds it.
+
@kindex C-c .
@findex hui-select-goto-matching-tag
The second convenience key is bound in HTML/XML/SGML/web
@@ -1405,6 +1408,9 @@ precedes. A second press moves point to the matching tag
of the pair,
allowing you to quickly jump back and forth between opening and
closing tags.
+This key defers to any currently active @code{major-mode} which also
+binds it.
+
@node Smart Mouse Key Modeline Clicks, Smart Mouse Key Drags, Smart Key Thing
Selection, Smart Keys
@section Smart Mouse Key Modeline Clicks
@@ -8589,9 +8595,12 @@ is made only if the key is not bound prior to
initializing Hyperbole.
@kitem C-c /
Search the Web: Display a minibuffer menu of web search engines. Once
an engine is selected, prompt for a search term and perform the
-associated search. This binding is made only if the key is not bound
-prior to initializing Hyperbole; otherwise, the Find/Web minibuffer menu
-item, @bkbd{C-h h f w}, will do the same thing.
+associated search.
+
+This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any @code{major-mode}
+binding. When needed, the Find/Web minibuffer menu item, @bkbd{C-h
+h f w}, will do the same thing.
@kindex C-c @@
@cindex key binding, C-c @@
@@ -8603,18 +8612,22 @@ item, @bkbd{C-h h f w}, will do the same thing.
@cindex restore window configuration
@cindex window configuration, restore
@kitem C-c @@
-Display a grid of windows in the selected frame, sized according to the
-prefix argument. The left digit of the argument is the number of grid rows
-and the right digit is the number of grid columns. Use @bkbd{C-h h h} to
-restore the prior frame configuration.
+Display a grid of windows in the selected frame, sized according to
+the prefix argument. The left digit of the argument is the number
+of grid rows and the right digit is the number of grid columns. Use
+@bkbd{C-h h h} to restore the prior frame configuration.
-If the argument is 0, prompt for a major mode whose buffers should be
-displayed first in the grid windows, then prompt for the grid size.
+If the argument is 0, prompt for a major mode whose buffers should
+be displayed first in the grid windows, then prompt for the grid
+size.
-If the argument is < 0, prompt for a shell glob-type file pattern and display
-files that match the pattern in an auto-sized windows grid.
+If the argument is < 0, prompt for a shell glob-type file pattern
+and display files that match the pattern in an auto-sized windows
+grid.
-This binding is made only if the key is not bound prior to initializing
Hyperbole.
+This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any @code{major-mode}
+binding and when @code{outline-minor-mode} is active.
For further details, see the @bkbd{@@} key binding description
in @ref{HyControl}.
@@ -8623,11 +8636,12 @@ in @ref{HyControl}.
@kitem M-o
Drag Operation: Keyboard emulation of the start and stop of mouse
drags to invoke Smart Key actions. This binding is made only if the
-key is not bound prior to initializing Hyperbole and if Emacs is run under
-a window system. If the Ace Window package is loaded, then Ace Window
-commands are typically bound to @bkbd{M-o} instead. Then @bkbd{M-o w}
-may be used to quickly create an explicit link button in the selected window
-that links to any other window chosen via the Ace Window prompt.
+key is not bound prior to initializing Hyperbole and if Emacs is run
+under a window system. If the Ace Window package is loaded, then
+Ace Window commands are typically bound to @bkbd{M-o} instead. Then
+@bkbd{M-o w} may be used to quickly create an explicit link button
+in the selected window that links to any other window chosen via the
+Ace Window prompt.
@cindex key binding, C-h h
@kitem C-h h
@@ -8652,16 +8666,20 @@ Assist Key Help: Show what the Assist Key will do in
the same context.
Mark Things: Mark larger and larger syntactical units in a buffer
when invoked repeatedly, showing in the minibuffer the type of unit
marked each time. For example, if on an opening brace at the start of
-a C, Java or Javascript function, this marks the whole function. This
-binding is made only if the key is not bound prior to initializing
-Hyperbole.
+a C, Java or Javascript function, this marks the whole function.
+
+This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any @code{major-mode}
+binding.
@cindex key binding, C-c .
@kitem C-c .
Delimited Thing Jump: Jump between the start and end of a delimited
-thing, which may be an HTML tag pair. This binding is made only if
-the key is not bound prior to initializing Hyperbole. @xref{Smart Key
-Thing Selection}, for more information.
+thing, which may be an HTML tag pair.
+
+This binding is made only if the key is not bound prior to
+initializing Hyperbole; it also defers to any @code{major-mode}
+binding. @xref{Smart Key Thing Selection}, for more information.
@cindex key binding, M-w
@vindex mark-even-if-inactive
@@ -8699,9 +8717,9 @@ to @samp{t} (true) by default in @file{hyperbole.el}.
This setting
means all Hyperbole key bindings will be initialized when Hyperbole is
loaded. If you want to disable these bindings permanently, simply add
@code{(setq hkey-init nil)} to your @file{~/.emacs} file prior to the
-point at which you load Hyperbole; then restart Emacs. Henceforth, you will
-have to choose the Hyperbole commands that you want to use and bind those to
-keys.
+point at which you load Hyperbole; then restart Emacs. Henceforth,
+you will have to choose the Hyperbole commands that you want to use
+and bind those to keys.
@vindex file, .emacs
@findex hyperbole-mode
@@ -8726,8 +8744,8 @@ press the Action Key to see the source of the failure.
Full testing is
supported under POSIX systems only.
With Hyperbole active, you can also define implicit buttons that run
-individual or sets of Hyperbole tests. The file @file{hypb-ert.el} contains
-two action link types:
+individual or sets of Hyperbole tests. The file @file{hypb-ert.el}
+contains two action link types:
@example
@code{hyperbole-run-test} - run a single Hyperbole test by name
- [elpa] externals/hyperbole 8aab9aed4a 06/28: Merge branch 'master' into rsw, (continued)
- [elpa] externals/hyperbole 8aab9aed4a 06/28: Merge branch 'master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole eb28facc7a 12/28: Merge branch 'master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 193e1b0e92 14/28: Merge branch 'master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole f00bc2440d 10/28: Merge branch 'master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole b506f049d1 08/28: Merge branch 'master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 1016c3e36a 15/28: Fix ibut link directly for files and directories and when in dired, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole b77d35deeb 18/28: link-directly at eol within dired, link to dired directory, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 40a1f331a1 20/28: hui:link-possible-types - For ilinks, add log msg of hbut's attrs, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 4836fb9ffa 23/28: Merge branch 'master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 3407c8118c 16/28: Merge remote-tracking branch 'github_origin/master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole e705c79329 26/28: Hyperbole Keys defer to any bindings in current modes,
ELPA Syncer <=
- [elpa] externals/hyperbole d1c803d25e 24/28: Fix hyrolo-tests.el sorting tests and hyrolo-outline-level handling, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole c371a2dae9 28/28: Merge pull request #405 from rswgnu/rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole c1d69b06bc 05/28: Remove leading blank lines inserted by viewer function, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole cd451895ae 09/28: Fix smart-tag not finding some vars and markdown link handling, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 082b273f8b 11/28: hui:link-possible-types - fix to not default when on dirs or files, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole ee170207f6 19/28: Merge remote branch 'rsw' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 9418ab1112 17/28: Merge branch 'master' into rsw, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 69fcfc23b7 25/28: Many small fixes and doc updates prior to V9 release, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 2e50a83011 01/28: Fixes for direct link creation, path handling and org-id buttons, ELPA Syncer, 2023/11/21
- [elpa] externals/hyperbole 1d2f6cdf76 13/28: Klinks update to new format <file#cell-ref|viewspec>, ELPA Syncer, 2023/11/21