emacs-elpa-diffs
[Top][All Lists]
Advanced

[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 &lt; 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 &lt; 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 &lsquo;<samp>t</samp>&rsquo; (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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]