[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole 485ecfd13b 7/7: Merge pull request #332 from
From: |
ELPA Syncer |
Subject: |
[elpa] externals/hyperbole 485ecfd13b 7/7: Merge pull request #332 from rswgnu/rsw |
Date: |
Sun, 21 May 2023 13:58:31 -0400 (EDT) |
branch: externals/hyperbole
commit 485ecfd13b32e2bb8caeae1c726f72e2534345a3
Merge: 10a8f7a0d9 a9a9f792dd
Author: Robert Weiner <rsw@gnu.org>
Commit: GitHub <noreply@github.com>
Merge pull request #332 from rswgnu/rsw
Make Assist Mouse Key drags between windows create implicit link but
---
ChangeLog | 18 ++++
DEMO | 22 ++++-
FAST-DEMO | 13 ++-
hmouse-drv.el | 14 ++-
hmouse-key.el | 5 +-
hui-mouse.el | 259 +++++++++++++++++++++++++++---------------------------
hui-window.el | 34 ++++---
man/hkey-help.txt | 34 +++----
8 files changed, 231 insertions(+), 168 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index d3e108f36e..c041e26855 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
2023-05-21 Bob Weiner <rsw@gnu.org>
+* hui-mouse.el (hkey-alist): Move . operator to beginning of line for font lock
+ support and add missing . in gnus modes.
+
+* hmouse-drv.el (hkey-mouse-help): Ensure call to hkey-help clears both Action
+ and Assist Key variables, so mouse key help always works.
+
+* man/hkey-help.txt:
+ FAST-DEMO (Implicit Buttons):
+ DEMO (Implicit Buttons, Creation via Dragging, Creation via Ace Window):
Update
+ to describe implicit button creation via drags.
+ hui-window.el (hmouse-alist): Make change to long-time Assist Mouse Key drag
+ between windows behavior. Assist Mouse Key drag from an item to another
+ window now displays the item in the release window, just as the Action Key
+ does. Prior to Hyperbole V9, this would swap window buffers.
+
+* hmouse-key.el (hmouse-update-smart-keys): Ensure reload "hui-window" library
+ so 'hmouse-alist' is redefined.
+
* hsys-org.el (hsys-org-search-internal-link-p)
hsys-org-search-radio-target-link-p): Replace 'org-show-context'
with newer 'org-fold-show-context' and alias this when necessary.
diff --git a/DEMO b/DEMO
index 4d28c70917..3454933741 100644
--- a/DEMO
+++ b/DEMO
@@ -475,6 +475,14 @@ because an implicit button type of 'pathname' is
recognized and it has
an associated action type of 'hpath:find' which displays the path in a
window specified by the setting of 'hpath:display-where').
+You can simply type implicit buttons into a buffer or you can use {C-h h i
+c} to create them and give them names. To create an implicit link button
+from a buffer in one window to another, simply depress the Assist Mouse Key
+where you want the new button (but not within a draggable item), drag to a
+point in another Emacs window and release. An implicit link button of an
+appropriate type for the release context will be inserted at the original
+depress point.
+
Hyperbole has many built-in implicit button types, a number of which you
will see here. You may also create your own types through the use of
regular expressions or via Emacs Lisp, see "(hyperbole)Creating Implicit
@@ -1120,7 +1128,8 @@ or to a section within a document; they can calculate
things or query
databases or show different views of bodies of information. Unlike HTML
hyperbuttons, there is no markup language to learn nor specific document
format required. You can create explicit buttons with simple keyboard
-presses or mouse drags from one window to another.
+presses or mouse drags from one window to another (when not depressed on
+a draggable item).
This button prints the <(factorial)> of 5 in the minibuffer when activated
with the Action Key. If you instead press the Assist Key, you get help for
@@ -1167,7 +1176,8 @@ with the Action Mouse Key or by using the Hyperbole menus.
An efficient way to create an explicit button interactively is to use
the Action Mouse Key to drag from a window where you want the button
created (button source window) to a window showing its link referent.
-The drag must start outside of an existing Hyperbole button.
+The drag must start outside of a draggable item which includes Hyperbole
+button, dired items and buffer menu items.
More specifically, you should split your current Emacs frame into two
windows: one which contains the point at which you want a button to be
@@ -1194,13 +1204,19 @@ the variable with a matching value when the link is
later resolved. This
allows the sharing of links over wide areas, where links contain variables
whose values differ between link creator and link activator.
+If you do the same think with the Assist Mouse Key instead of the Action
+Mouse Key, Hyperbole will create an implicit link button instead of an
+explicit one. Such buttons are created without names but you can add
+a name preceding such buttons with {C-h h i l} to label them.
+
*** Creation via Ace Window
For the fastest link button creation, use the Emacs package
'ace-window' (see "(hyperbole)Keyboard Drags" for setup). Once this
is configured, then {M-o w <window id>} 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.
+window chosen via the Ace Window. Use a prefix argument to create an
+implicit link button instead.
*** Creation via Menu
diff --git a/FAST-DEMO b/FAST-DEMO
index f5eaf06cf8..e8ff13a966 100644
--- a/FAST-DEMO
+++ b/FAST-DEMO
@@ -78,6 +78,13 @@
{C-h A} (the A must be capitalized) on any Hyperbole button to see exactly
what it does prior to activating it.
+ You can simply type implicit buttons into a buffer or you can use {C-h h i
+ c} to create them and give them names. To create an implicit link button
+ from a buffer in one window to another, simply depress the Assist Mouse
+ Key where you want the new button (but not within a draggable item), drag
+ to a point in another Emacs window and release. An implicit link button
+ of an appropriate type for the release context will be inserted at the
+ original depress point.
* Pathname Implicit Buttons
@@ -322,9 +329,9 @@ learn how to create new kinds of implicit button and action
types, see:
or show different views of bodies of information. Unlike HTML
hyperbuttons, there is no markup language to learn nor specific document
format required. You can create explicit buttons with simple keyboard
- presses or mouse drags from one window to another; See the {C-h h e} menu
- for explicit button commands. See "DEMO#Explicit Buttons" or
- "(hyperbole)Explicit Buttons" for more detail.
+ presses or mouse drags from one window to another (when not on a draggable
+ item). See the {C-h h e} menu for explicit button commands. See
+ "DEMO#Explicit Buttons" or "(hyperbole)Explicit Buttons" for more detail.
`Global buttons' are labeled Hyperbole buttons in your personal button
file, {C-h h b p}. All global buttons are activated by name with
diff --git a/hmouse-drv.el b/hmouse-drv.el
index 37d7074ef8..bbddd8657b 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 04-Feb-90
-;; Last-Mod: 19-May-23 at 08:03:36 by Bob Weiner
+;; Last-Mod: 21-May-23 at 11:48:16 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -1193,11 +1193,23 @@ to the Assist Key. ARGS is a list of arguments passed
to
(cond ((and action-key-help-flag other-key-released)
(setq action-key-help-flag nil)
(hmouse-release assisting)
+ ;; Ensure next call to hkey-help clears both Action
+ ;; and Assist Key variables.
+ (setq action-key-depressed-flag nil
+ action-key-help-flag nil
+ assist-key-depressed-flag nil
+ assist-key-help-flag nil)
(hmouse-function #'hkey-help assisting args)
t)
((and assist-key-help-flag other-key-released)
(setq assist-key-help-flag nil)
(hmouse-release assisting)
+ ;; Ensure next call to hkey-help clears both Action
+ ;; and Assist Key variables.
+ (setq action-key-depressed-flag nil
+ action-key-help-flag nil
+ assist-key-depressed-flag nil
+ assist-key-help-flag nil)
(hmouse-function #'hkey-assist-help assisting args)
t)))
(when help-shown
diff --git a/hmouse-key.el b/hmouse-key.el
index 11d0103571..470afbb78d 100644
--- a/hmouse-key.el
+++ b/hmouse-key.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 30-May-94 at 00:11:57
-;; Last-Mod: 25-Jul-22 at 23:47:01 by Mats Lidell
+;; Last-Mod: 21-May-23 at 10:17:38 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -131,8 +131,7 @@ Use after any programmatic change is made."
(makunbound 'hkey-alist)
(makunbound 'hmouse-alist)
(let ((load-prefer-newer t))
- ;; This also reloads "hui-window" where mouse-only actions are defined.
- (mapc #'load '("hui-mouse" "hibtypes" "hactypes")))
+ (mapc #'load '("hui-mouse" "hui-window" "hibtypes" "hactypes")))
(message "Hyperbole Smart Key and Smart Mouse Key actions have been
updated."))
diff --git a/hui-mouse.el b/hui-mouse.el
index 2932888746..d371bb321e 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 04-Feb-89
-;; Last-Mod: 20-May-23 at 10:52:22 by Bob Weiner
+;; Last-Mod: 21-May-23 at 12:06:23 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -198,46 +198,46 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
'(
;; Company completion mode
((and (boundp 'company-active-map)
- (memq company-active-map (current-minor-mode-maps))) .
- ((smart-company-to-definition) . (smart-company-help)))
+ (memq company-active-map (current-minor-mode-maps)))
+ . ((smart-company-to-definition) . (smart-company-help)))
;;
;; Handle any Org mode-specific contexts but give priority to Hyperbole
;; buttons prior to cycling Org headlines
((and (not (hyperb:stack-frame '(smart-org)))
(let ((hrule:action #'actype:identity))
- (smart-org))) .
- ((smart-org) . (smart-org)))
+ (smart-org)))
+ . ((smart-org) . (smart-org)))
;;
;; Ivy minibuffer completion mode
- ((and (boundp 'ivy-mode) ivy-mode (minibuffer-window-active-p
(selected-window))) .
- ((ivy-done) . (ivy-dispatching-done)))
+ ((and (boundp 'ivy-mode) ivy-mode (minibuffer-window-active-p
(selected-window)))
+ . ((ivy-done) . (ivy-dispatching-done)))
;;
;; Treemacs hierarchical file manager
- ((eq major-mode 'treemacs-mode) .
- ((smart-treemacs) . (smart-treemacs)))
+ ((eq major-mode 'treemacs-mode)
+ . ((smart-treemacs) . (smart-treemacs)))
;;
;; dired-sidebar-mode
- ((eq major-mode 'dired-sidebar-mode) .
- ((smart-dired-sidebar) . (smart-dired-sidebar)))
+ ((eq major-mode 'dired-sidebar-mode)
+ . ((smart-dired-sidebar) . (smart-dired-sidebar)))
;;
;; Handle Emacs push buttons in buffers
- ((and (fboundp 'button-at) (button-at (point))) .
- ((smart-push-button nil (mouse-event-p last-command-event))
- . (smart-push-button-help nil (mouse-event-p last-command-event))))
+ ((and (fboundp 'button-at) (button-at (point)))
+ . ((smart-push-button nil (mouse-event-p last-command-event))
+ . (smart-push-button-help nil (mouse-event-p last-command-event))))
;;
;; If click in the minibuffer and reading an argument,
;; accept argument or give completion help.
((and (> (minibuffer-depth) 0)
(eq (selected-window) (minibuffer-window))
(not (eq hargs:reading-type 'hmenu))
- (not (smart-helm-alive-p))) .
- ((funcall (key-binding (kbd "RET"))) . (smart-completion-help)))
+ (not (smart-helm-alive-p)))
+ . ((funcall (key-binding (kbd "RET"))) . (smart-completion-help)))
;;
;; If reading a Hyperbole menu item or a Hyperbole completion-based
;; argument, allow selection of an item at point.
- ((and (> (minibuffer-depth) 0) (setq hkey-value (hargs:at-p))) .
- ((hargs:select-p hkey-value) .
- (hargs:select-p hkey-value 'assist)))
+ ((and (> (minibuffer-depth) 0) (setq hkey-value (hargs:at-p)))
+ . ((hargs:select-p hkey-value)
+ . (hargs:select-p hkey-value 'assist)))
;;
;; If reading a Hyperbole menu item and nothing is selected, just return.
;; Or if in a helm session with point in the minibuffer, quit the
@@ -245,27 +245,27 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
((and (> (minibuffer-depth) 0)
(eq (selected-window) (minibuffer-window))
(or (eq hargs:reading-type 'hmenu)
- (smart-helm-alive-p))) .
- ((funcall (key-binding (kbd "RET"))) . (funcall (key-binding (kbd
"RET")))))
+ (smart-helm-alive-p)))
+ . ((funcall (key-binding (kbd "RET"))) . (funcall (key-binding (kbd
"RET")))))
;;
;; The ID-edit package supports rapid killing, copying, yanking and
;; display management. It is available only as a part of InfoDock.
;; It is not included with Hyperbole.
((and (boundp 'id-edit-mode) id-edit-mode
(not buffer-read-only)
- (not (smart-helm-alive-p))) .
- ((id-edit-yank) . (id-edit-yank)))
+ (not (smart-helm-alive-p)))
+ . ((id-edit-yank) . (id-edit-yank)))
;;
;; If in an xref buffer on a listing of matching identifier lines, go to
;; the source line referenced by the current entry.
- ((and (fboundp 'xref--item-at-point) (xref--item-at-point)) .
- ((xref-goto-xref) . (xref-show-location-at-point)))
+ ((and (fboundp 'xref--item-at-point) (xref--item-at-point))
+ . ((xref-goto-xref) . (xref-show-location-at-point)))
;;
;; If at the end of a line (eol), invoke the associated Smart Key handler
EOL handler.
((if (eq major-mode 'kotl-mode)
(and (not (kotl-mode:eobp)) (kotl-mode:eolp t))
- (smart-eolp)) .
- ((funcall action-key-eol-function) . (funcall assist-key-eol-function)))
+ (smart-eolp))
+ . ((funcall action-key-eol-function) . (funcall assist-key-eol-function)))
;;
;; The Smart Menu system is an attractive in-buffer menu system
;; that works on any display system that supports Emacs. It
@@ -274,44 +274,44 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
;; Smart Keys.
;;
;; This selects or gives help for a menu item.
- ((eq major-mode 'smart-menu-mode) .
- ((smart-menu-select) . (smart-menu-help)))
+ ((eq major-mode 'smart-menu-mode)
+ . ((smart-menu-select) . (smart-menu-help)))
;;
- ((derived-mode-p 'dired-mode) .
- ((smart-dired) . (smart-dired-assist)))
+ ((derived-mode-p 'dired-mode)
+ . ((smart-dired) . (smart-dired-assist)))
;;
- ((string-prefix-p "magit-" (symbol-name major-mode)) .
- ((smart-magit) . (smart-magit-assist)))
+ ((string-prefix-p "magit-" (symbol-name major-mode))
+ . ((smart-magit) . (smart-magit-assist)))
;;
;; If on a Hyperbole button, perform action or give help.
- ((hbut:at-p) .
- ((hui:hbut-act 'hbut:current) . (hui:hbut-help 'hbut:current)))
+ ((hbut:at-p)
+ . ((hui:hbut-act 'hbut:current) . (hui:hbut-help 'hbut:current)))
;;
;; This potentially displays a Smart Menu.
((and (fboundp 'smart-menu-choose-menu)
(setq hkey-value (and hkey-always-display-menu
(smart-menu-choose-menu)))
(not (and (get-buffer-window *smart-menu-buffer*)
- (eq hkey-value *smart-menu-curr*)))) .
- ((smart-menu hkey-value) .
- (smart-menu hkey-value)))
+ (eq hkey-value *smart-menu-curr*))))
+ . ((smart-menu hkey-value)
+ . (smart-menu hkey-value)))
;;
;; View minor mode
- ((if (boundp 'view-minor-mode) view-minor-mode) .
- ((cond ((last-line-p)
- (view-quit))
- ((pos-visible-in-window-p (point-max))
- (goto-char (point-max)))
- (t (scroll-up))) .
- (scroll-down)))
+ ((if (boundp 'view-minor-mode) view-minor-mode)
+ . ((cond ((last-line-p)
+ (view-quit))
+ ((pos-visible-in-window-p (point-max))
+ (goto-char (point-max)))
+ (t (scroll-up)))
+ . (scroll-down)))
;;
;; Direct access selection of helm-major-mode completions
((setq hkey-value (and (or (eq major-mode 'helm-major-mode)
(and (featurep 'helm) (equal helm-action-buffer
(buffer-name))))
(or (eolp)
(smart-helm-at-header)
- (smart-helm-line-has-action)))) .
- ((smart-helm) . (smart-helm-assist)))
+ (smart-helm-line-has-action))))
+ . ((smart-helm) . (smart-helm-assist)))
;;
;; Support the OO-Browser when available. It is a separate Emacs
;; package not included with Hyperbole. Within an OO-Browser
@@ -322,8 +322,8 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
(string-match "-Elements\\'" (buffer-name))
(and (boundp 'br-feature-tags-file)
(stringp br-feature-tags-file)
- (equal br-feature-tags-file buffer-file-name))) .
- ((smart-element) . (hkey-help)))
+ (equal br-feature-tags-file buffer-file-name)))
+ . ((smart-element) . (hkey-help)))
;;
;; View major mode
((eq major-mode 'view-mode) .
@@ -333,53 +333,55 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
;; array/vector, set, function, comment or string that begins or
;; ends at point. For markup pairs, point must be at the first
;; character of the opening or closing tag.
- ((hui-select-at-delimited-thing-p) .
- ((hui-select-delimited-thing) . (progn (hui-select-delimited-thing)
- (hmouse-kill-region))))
+ ((hui-select-at-delimited-thing-p)
+ . ((hui-select-delimited-thing) . (progn (hui-select-delimited-thing)
+ (hmouse-kill-region))))
;;
;; If the prior test failed and point is at the start or end of an
;; sexpression, mark it for editing or kill it (assist key). This
;; only handles the special case where point is just after the
;; closing delimiter and not at an end-of-line, so this may be
;; removed someday.
- ((hui-select-at-delimited-sexp-p) .
- ((hui-select-mark-delimited-sexp) .
- (progn (hui-select-mark-delimited-sexp) (hmouse-kill-region))))
+ ((hui-select-at-delimited-sexp-p)
+ . ((hui-select-mark-delimited-sexp)
+ . (progn (hui-select-mark-delimited-sexp) (hmouse-kill-region))))
;;
- ((eq major-mode 'occur-mode) .
- ((occur-mode-goto-occurrence) . (occur-mode-goto-occurrence)))
+ ((eq major-mode 'occur-mode)
+ . ((occur-mode-goto-occurrence) . (occur-mode-goto-occurrence)))
;;
- ((eq major-mode 'moccur-mode) .
- ((moccur-mode-goto-occurrence) . (moccur-mode-goto-occurrence)))
- ((eq major-mode 'amoccur-mode) .
- ((amoccur-mode-goto-occurrence) . (amoccur-mode-goto-occurrence)))
+ ((eq major-mode 'moccur-mode)
+ . ((moccur-mode-goto-occurrence) . (moccur-mode-goto-occurrence)))
+ ((eq major-mode 'amoccur-mode)
+ . ((amoccur-mode-goto-occurrence) . (amoccur-mode-goto-occurrence)))
;;
- ((eq major-mode 'kotl-mode) .
- ((kotl-mode:action-key) . (kotl-mode:assist-key)))
+ ((eq major-mode 'kotl-mode)
+ . ((kotl-mode:action-key) . (kotl-mode:assist-key)))
;;
;; Rdb-mode supports direct selection and viewing of in-memory relational
;; databases. Rdb-mode is available as a part of InfoDock.
;; It is not included with Hyperbole.
- ((eq major-mode 'rdb-mode) . ((rdb:action-key) . (rdb:assist-key)))
+ ((eq major-mode 'rdb-mode)
+ . ((rdb:action-key) . (rdb:assist-key)))
;;
;; Restore window config and hide help buffer when click at buffer end.
((if (= (point) (point-max))
- (string-match "^\\*Help\\|Help\\*$" (buffer-name))) .
- ((hkey-help-hide) . (hkey-help-hide)))
+ (string-match "^\\*Help\\|Help\\*$" (buffer-name)))
+ . ((hkey-help-hide) . (hkey-help-hide)))
;;
;; Handle widgets in Custom-mode
- ((eq major-mode 'Custom-mode) .
- ((smart-custom) . (smart-custom-assist)))
+ ((eq major-mode 'Custom-mode)
+ . ((smart-custom) . (smart-custom-assist)))
;;
;; Emacs bookmarks menu (bookmark.el)
- ((eq major-mode 'bookmark-bmenu-mode) .
- ((bookmark-jump (bookmark-bmenu-bookmark)
(hpath:display-buffer-function)) .
- ;; Below we want the Assist Key to show what the Action Key does.
- (hkey-help)))
+ ((eq major-mode 'bookmark-bmenu-mode)
+ . ((bookmark-jump (bookmark-bmenu-bookmark)
(hpath:display-buffer-function))
+ .
+ ;; Below we want the Assist Key to show what the Action Key does.
+ (hkey-help)))
;;
;; Pages directory listing mode (page-ext.el)
- ((eq major-mode 'pages-directory-mode) .
- ((pages-directory-goto) . (pages-directory-goto)))
+ ((eq major-mode 'pages-directory-mode)
+ . ((pages-directory-goto) . (pages-directory-goto)))
;;
;; Python files - ensure this comes before Imenu for more advanced
;; definition lookups
@@ -388,8 +390,8 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
(equal (hsys-org-get-value :language) "python"))
(let ((case-fold-search))
(string-match "\\`\\([ *]?Pydoc[: ]\\|\\*?Python\\)"
(buffer-name))))
- (setq hkey-value (smart-python-at-tag-p))) .
- ((smart-python hkey-value) . (smart-python hkey-value 'next-tag)))
+ (setq hkey-value (smart-python-at-tag-p)))
+ . ((smart-python hkey-value) . (smart-python hkey-value 'next-tag)))
;;
;; Imenu listing in GNU Emacs
((smart-imenu-item-at-p)
@@ -397,25 +399,25 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
(imenu-choose-buffer-index)))
;;
((and (eq major-mode 'c-mode)
- buffer-file-name (smart-c-at-tag-p)) .
- ((smart-c) . (smart-c nil 'next-tag)))
+ buffer-file-name (smart-c-at-tag-p))
+ . ((smart-c) . (smart-c nil 'next-tag)))
;;
((and (eq major-mode 'c++-mode) buffer-file-name
;; Don't use smart-c++-at-tag-p here since it will prevent #include
;; lines from matching.
- (smart-c-at-tag-p)) .
- ((smart-c++) . (smart-c++ nil 'next-tag)))
+ (smart-c-at-tag-p))
+ . ((smart-c++) . (smart-c++ nil 'next-tag)))
;;
((and (eq major-mode 'asm-mode)
- buffer-file-name (smart-asm-at-tag-p)) .
- ((smart-asm) . (smart-asm nil 'next-tag)))
+ buffer-file-name (smart-asm-at-tag-p))
+ . ((smart-asm) . (smart-asm nil 'next-tag)))
;;
((or (and (smart-lisp-mode-p)
(or (smart-lisp-at-load-expression-p)
(smart-lisp-at-tag-p)))
;; Tightly limit Lisp matches in change-log-mode.
- (smart-lisp-at-change-log-tag-p)) .
- ((smart-lisp) . (smart-lisp 'show-doc)))
+ (smart-lisp-at-change-log-tag-p))
+ . ((smart-lisp) . (smart-lisp 'show-doc)))
;;
;;
((and (eq major-mode 'java-mode) buffer-file-name
@@ -424,91 +426,92 @@ Its default value is `smart-scroll-down'. To disable it,
set it to
(looking-at "@see[ \t]+")
(save-excursion
(and (re-search-backward "[@\n\r\f]" nil t)
- (looking-at "@see[ \t]+"))))) .
- ((smart-java) . (smart-java nil 'next-tag)))
+ (looking-at "@see[ \t]+")))))
+ . ((smart-java) . (smart-java nil 'next-tag)))
;;
((and (memq major-mode '(js2-mode js-mode js3-mode javascript-mode
html-mode web-mode))
buffer-file-name
- (smart-javascript-at-tag-p)) .
- ((smart-javascript) . (smart-javascript nil 'next-tag)))
+ (smart-javascript-at-tag-p))
+ . ((smart-javascript) . (smart-javascript nil 'next-tag)))
;;
((and (eq major-mode 'objc-mode) buffer-file-name
- (smart-objc-at-tag-p)) .
- ((smart-objc) . (smart-objc nil 'next-tag)))
+ (smart-objc-at-tag-p))
+ . ((smart-objc) . (smart-objc nil 'next-tag)))
;;
((and (memq major-mode '(fortran-mode f90-mode))
- buffer-file-name (smart-fortran-at-tag-p)) .
- ((smart-fortran) . (smart-fortran nil 'next-tag)))
+ buffer-file-name (smart-fortran-at-tag-p))
+ . ((smart-fortran) . (smart-fortran nil 'next-tag)))
;;
- ((eq major-mode 'calendar-mode) .
- ((smart-calendar) . (smart-calendar-assist)))
+ ((eq major-mode 'calendar-mode)
+ . ((smart-calendar) . (smart-calendar-assist)))
;;
;; Part of InfoDock
- ((eq major-mode 'unix-apropos-mode) .
- ((smart-apropos) . (smart-apropos-assist)))
+ ((eq major-mode 'unix-apropos-mode)
+ . ((smart-apropos) . (smart-apropos-assist)))
;;
- ((eq major-mode 'outline-mode) .
- ((smart-outline) . (smart-outline-assist)))
+ ((eq major-mode 'outline-mode)
+ . ((smart-outline) . (smart-outline-assist)))
;;
- ((eq major-mode 'Info-mode) .
- ((smart-info) . (smart-info-assist)))
+ ((eq major-mode 'Info-mode)
+ . ((smart-info) . (smart-info-assist)))
;;
((if (boundp 'hmail:reader)
(or (eq major-mode hmail:reader)
- (eq major-mode hmail:lister))) .
- ((smart-hmail) . (smart-hmail-assist)))
+ (eq major-mode hmail:lister)))
+ . ((smart-hmail) . (smart-hmail-assist)))
;;
((eq major-mode 'gnus-group-mode)
(smart-gnus-group) . (smart-gnus-group-assist))
;;
((eq major-mode 'gnus-summary-mode)
- (smart-gnus-summary) . (smart-gnus-summary-assist))
+ . ((smart-gnus-summary) . (smart-gnus-summary-assist)))
;;
((eq major-mode 'gnus-article-mode)
- (smart-gnus-article) . (smart-gnus-article-assist))
+ . ((smart-gnus-article) . (smart-gnus-article-assist)))
;;
- ((eq major-mode 'Buffer-menu-mode) .
- ((smart-buffer-menu) . (smart-buffer-menu-assist)))
+ ((eq major-mode 'Buffer-menu-mode)
+ . ((smart-buffer-menu) . (smart-buffer-menu-assist)))
;;
- ((eq major-mode 'ibuffer-mode) .
- ((smart-ibuffer-menu) . (smart-ibuffer-menu-assist)))
+ ((eq major-mode 'ibuffer-mode)
+ . ((smart-ibuffer-menu) . (smart-ibuffer-menu-assist)))
;;
- ((eq major-mode 'tar-mode) .
- ((smart-tar) . (smart-tar-assist)))
+ ((eq major-mode 'tar-mode)
+ . ((smart-tar) . (smart-tar-assist)))
;;
;; Follow references in man pages.
- ((setq hkey-value (smart-man-entry-ref)) .
- ((smart-man-display hkey-value) . (smart-man-display hkey-value)))
+ ((setq hkey-value (smart-man-entry-ref))
+ . ((smart-man-display hkey-value) . (smart-man-display hkey-value)))
;;
- ((eq major-mode 'w3-mode) .
- ((w3-follow-link) . (w3-goto-last-buffer)))
+ ((eq major-mode 'w3-mode)
+ . ((w3-follow-link) . (w3-goto-last-buffer)))
;;
- ((eq major-mode 'hynote-mode) .
- ((smart-hynote) . (smart-hynote-assist)))
+ ;; Future Hyperbole mode, not yet released
+ ((eq major-mode 'hynote-mode)
+ . ((smart-hynote) . (smart-hynote-assist)))
;;
- ((eq major-mode 'hyrolo-mode) .
- ((smart-hyrolo) . (smart-hyrolo-assist)))
+ ((eq major-mode 'hyrolo-mode)
+ . ((smart-hyrolo) . (smart-hyrolo-assist)))
;;
- ((eq major-mode 'image-dired-thumbnail-mode) .
- ((smart-image-dired-thumbnail) . (smart-image-dired-thumbnail-assist)))
+ ((eq major-mode 'image-dired-thumbnail-mode)
+ . ((smart-image-dired-thumbnail) . (smart-image-dired-thumbnail-assist)))
;;
;; Gomoku game
- ((eq major-mode 'gomoku-mode) .
- ((gomoku-human-plays) . (gomoku-human-takes-back)))
+ ((eq major-mode 'gomoku-mode)
+ . ((gomoku-human-plays) . (gomoku-human-takes-back)))
;;
;; Support the OO-Browser when available. It is a separate Emacs
;; package not included with Hyperbole. Hyperbole supplies a stub
;; `br-in-browser' test for use here.
- ((or (br-in-browser) (eq major-mode 'br-mode)) .
- ((smart-br-dispatch) . (smart-br-assist-dispatch)))
+ ((or (br-in-browser) (eq major-mode 'br-mode))
+ . ((smart-br-dispatch) . (smart-br-assist-dispatch)))
;;
;; Outline minor mode is on and usable.
- ((and (boundp 'outline-minor-mode) outline-minor-mode) .
- ((smart-outline) . (smart-outline-assist)))
+ ((and (boundp 'outline-minor-mode) outline-minor-mode)
+ . ((smart-outline) . (smart-outline-assist)))
;;
;; Todotxt
- ((eq major-mode 'todotxt-mode) .
- ((smart-todotxt) . (smart-todotxt-assist))))
+ ((eq major-mode 'todotxt-mode)
+ . ((smart-todotxt) . (smart-todotxt-assist))))
"Alist of predicates and form-conses for the Action and Assist Keyboard Keys.
Each element is: (PREDICATE-FORM . (ACTION-KEY-FORM . ASSIST-KEY-FORM)).
When the Action or Assist Key is pressed, the first or second form,
diff --git a/hui-window.el b/hui-window.el
index ffcac28be9..96c7edd7ef 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 21-Sep-92
-;; Last-Mod: 20-May-23 at 10:37:04 by Bob Weiner
+;; Last-Mod: 21-May-23 at 12:09:22 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
@@ -100,8 +100,8 @@ drag release window.")
(defcustom hmouse-pulse-flag t
"Non-nil means pulse visually if supported.
When display supports visual pulsing, then pulse lines and
-buffers when an Action Key drag is used to place a buffer or file
-in a window."
+buffers when an Action Key drag is used to place a buffer, file
+ofr button referent in a window."
:type 'boolean
:group 'hyperbole-keys)
@@ -178,11 +178,16 @@ and release to register a diagonal drag.")
;; Other Modeline click or drag
((hmouse-modeline-depress)
. ((action-key-modeline) . (assist-key-modeline)))
+ ;; Drag between windows and on an item (buffer-name, file-name or
Hyperbole button)
+ ((and (hmouse-drag-between-windows)
+ (hmouse-at-item-p (if assist-flag assist-key-depress-window
+ action-key-depress-window)))
+ . ((hmouse-drag-item-to-display) . (hmouse-drag-item-to-display)))
+ ;; Drag between windows not on an item
((hmouse-drag-between-windows)
;; Note that `hui:ebut-link-directly' uses any active
;; region as the label of the button to create.
- . ((or (hmouse-drag-item-to-display) (hui:ebut-link-directly))
- . (hui:ibut-link-directly)))
+ . ((hui:ebut-link-directly) . (hui:ibut-link-directly)))
((hmouse-drag-region-active)
. ((hmouse-drag-not-allowed) . (hmouse-drag-not-allowed)))
((setq hkey-value (hmouse-drag-horizontally))
@@ -196,9 +201,10 @@ and release to register a diagonal drag.")
((hmouse-drag-outside-all-windows)
. ((or (hmouse-drag-item-to-display)
(hycontrol-clone-window-to-new-frame))
- . (hycontrol-window-to-new-frame)))
+ . (hycontrol-window-to-new-frame)))
;; If click in the minibuffer when it is not active (blank),
- ;; display the Hyperbole minibuffer menu or popup the jump menu.
+ ;; Action Key displays the Hyperbole minibuffer menu and
+ ;; the Assist Key popups the jump menu.
((hmouse-inactive-minibuffer-p)
. ((funcall action-key-minibuffer-function)
. (funcall assist-key-minibuffer-function)))
@@ -226,7 +232,9 @@ and release to register a diagonal drag.")
;;; ************************************************************************
(defun hmouse-at-item-p (start-window)
- "Return t if point is on an item draggable by Hyperbole, otherwise nil."
+ "Return t if point is on an item draggable by Hyperbole, otherwise nil.
+Draggable items include Hyperbole buttons, dired items, buffer/ibuffer
+menu items."
(let* ((buf (when (window-live-p start-window)
(window-buffer start-window)))
(mode (when buf
@@ -470,8 +478,7 @@ If free variable `assist-flag' is non-nil, uses Assist Key."
(if assist-flag
(and (window-live-p assist-key-depress-window)
(window-live-p assist-key-release-window)
- (not (eq assist-key-depress-window
- assist-key-release-window)))
+ (not (eq assist-key-depress-window assist-key-release-window)))
(and (window-live-p action-key-depress-window)
(window-live-p action-key-release-window)
(not (eq action-key-depress-window action-key-release-window)))))
@@ -496,9 +503,10 @@ If free variable `assist-flag' is non-nil, uses Assist
Key."
(defun hmouse-drag-item-to-display (&optional new-window-flag)
"Drag an item and release where it is to be displayed.
-Depress on a buffer name in Buffer-menu/ibuffer mode or on a
-file/directory in dired mode and release where the item is to be
-displayed.
+Draggable items include Hyperbole buttons, dired items, buffer/ibuffer
+menu items.
+
+Depress on the item and release where the item is to be displayed.
If depress is on an item and release is outside of Emacs, the
item is displayed in a new frame with a single window. If the
diff --git a/man/hkey-help.txt b/man/hkey-help.txt
index aeca94bdc3..ab5cbe3b36 100644
--- a/man/hkey-help.txt
+++ b/man/hkey-help.txt
@@ -6,8 +6,8 @@ Hyperbole
On a minibuffer menu item Activates item Item help
On an explicit button Activates button Button help
Reading argument
- 1st press at an arg value Value copied to minibuffer <- same
- 2nd press at an arg value Value used as argument <- same
+ 1st press at an arg value Copies value to minibuffer <- same
+ 2nd press at an arg value Uses value as argument <- same
In minibuffer Accepts minibuffer arg Completion help
On an implicit button/path Activates button Button help
Within a koutline cell Collapses and expands Shows tree props
@@ -29,7 +29,7 @@ Mouse-only Control
string, list or markup
language tag pair
- Drag from bottom Modeline Reposition frame as <- same
+ Drag from bottom Modeline Repositions frame as <- same
in frame with non-nil drag happens
drag-with-mode-line param
@@ -49,10 +49,10 @@ Mouse-only Control
new window by release
Drag between windows from:
- but/buffer/file menu item Displays ref/buffer/file Swaps window buffers
+ but/buffer/file menu item Displays ref/buffer/file <- same
in window of button release
- buffer/file menu 1st line Moves buffer/file menu Swaps window buffers
- anywhere else Creates/modifies a link Swaps window buffers
+ buffer/file menu 1st line Moves buffer/file menu <- same
+ anywhere else Creates an ebut link Creates an ibut link
Drag outside of Emacs from:
but/buffer/file menu item Displays ref/buffer/file Moves window to new
frame
@@ -61,11 +61,11 @@ Mouse-only Control
Modeline Click
Left modeline edge Buries current buffer Unburies bottom
buffer
- Right modeline edge Info manual browser Smart Key summary
- Buffer ID Dired on buffer's dir Next buffer
+ Right modeline edge Displays GNU Info manuals Displays Smart Key
summary
+ Buffer ID Dired on buffer's dir Displays next buffer
or on parent when a dir
Other blank area Action Key modeline hook Assist Key modeline
hook
- Shows/Hides Buffer Menu Popup Jump &
Manage Menu
+ Shows/Hides Buffer Menu Popups Jump &
Manage Menu
Drag in window, region active Error, not allowed Error, not allowed
Horizontal drag in a window Splits window below Deletes window
@@ -82,8 +82,8 @@ Hyperbole Key Press/Click in Special Modes
Treemacs Displays item Displays item
Dired Sidebar Displays item Displays item
Emacs Push Button Activates button Button help
- Emacs Regression Test Def Eval and run test Edebug and run test
- Thing Begin or End Mark thing region Mark & kill thing
region
+ Emacs Regression Test Def Evals and runs test Edebugs and runs
test
+ Thing Begin or End Marks thing region Marks & kills thing
region
Page Directory Listing Jumps to page <- same
Imenu Programming Identifier Jumps to in-buffer def Prompts for id to
jump to
C,C++,Objective-C,Java Modes Jumps to id/include def Jumps to next def
@@ -112,14 +112,14 @@ Hyperbole Key Press/Click in Special Modes
Man Apropos Displays man page entry <- same
Man Pages Follows cross refs, file refs and C code refs
I/Buffer Menu Saves, deletes and displays buffers
- Todotxt Mode Toggle item completion Edit and archive
items
+ Todotxt Mode Toggles item completion Edit and archive
items
Emacs Info Reader
- Menu Entry or Cross Ref To referent <- same
- Up, Next or Prev Header To referent To prior node
- File entry of Header To top node To (DIR) node
- End of current node To next node To previous node
- Anywhere else Scrolls up a windowful Scrolls wind down
+ Menu Entry or Cross Ref Jumps to referent <- same
+ Up, Next or Prev Header Jumps to referent Jumps to prior node
+ File entry of Header Jumps to top node Jumps to (DIR) node
+ End of current node Jumps to next node Jumps to previous
node
+ Anywhere else Scrolls up a windowful Scrolls down a
windowful
Subsystems
Calendar Scrolls or shows appts Scrolls/marks date
- [elpa] externals/hyperbole updated (b65a514949 -> 485ecfd13b), ELPA Syncer, 2023/05/21
- [elpa] externals/hyperbole 3d221ff6c8 1/7: Fix a number of hsys-org issues to match latest Org releases, ELPA Syncer, 2023/05/21
- [elpa] externals/hyperbole a2171562ca 2/7: Merge branch 'master' into rsw, ELPA Syncer, 2023/05/21
- [elpa] externals/hyperbole fba1f1a6eb 4/7: Make Assist Mouse Key drags between windows create implicit link but, ELPA Syncer, 2023/05/21
- [elpa] externals/hyperbole f4d6eca8e0 5/7: Merge branch 'rsw' of hyperbole into rsw, ELPA Syncer, 2023/05/21
- [elpa] externals/hyperbole a9a9f792dd 6/7: Merge branch 'master' into rsw, ELPA Syncer, 2023/05/21
- [elpa] externals/hyperbole 10a8f7a0d9 3/7: Merge pull request #331 from rswgnu/rsw, ELPA Syncer, 2023/05/21
- [elpa] externals/hyperbole 485ecfd13b 7/7: Merge pull request #332 from rswgnu/rsw,
ELPA Syncer <=