[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole 34a3fe5 6/6: 7.0.1 Merge branch 'master' of h
From: |
Robert Weiner |
Subject: |
[elpa] externals/hyperbole 34a3fe5 6/6: 7.0.1 Merge branch 'master' of http://git.savannah.gnu.org/r/hyperbole into externals/hyperbole |
Date: |
Wed, 22 Nov 2017 17:56:15 -0500 (EST) |
branch: externals/hyperbole
commit 34a3fe5dc152a1ea4f201a086335592889e2a3ea
Merge: 9b2d75a 5cc7ac8
Author: Bob Weiner <address@hidden>
Commit: Bob Weiner <address@hidden>
7.0.1 Merge branch 'master' of http://git.savannah.gnu.org/r/hyperbole into
externals/hyperbole
---
Changes | 95 +++++++++++-
DEMO | 40 ++++--
HY-ABOUT | 2 +-
HY-ANNOUNCE | 104 +++++++-------
HY-NEWS | 25 ++++
HY-WHY.kotl | 31 ++--
MANIFEST | 1 +
Makefile | 6 +-
README.md | 2 +-
README.md.html | 20 +--
hactypes.el | 12 +-
hib-social.el | 8 +-
hmouse-drv.el | 132 +++++++++++++----
hmouse-sh.el | 7 +
hui-mouse.el | 27 ++--
hui-select.el | 35 +++--
hui-treemacs.el | 221 ++++++++++++++++++++++++++++
hui-window.el | 95 ++++++------
hui.el | 6 +-
hversion.el | 2 +-
hypb.el | 2 +-
hyperbole-pkg.el | 2 +-
hyperbole.el | 2 +-
hyrolo.el | 31 ++--
man/hyperbole.html | 413 +++++++++++++++++++++++++++++++++--------------------
man/hyperbole.info | Bin 483045 -> 487474 bytes
man/hyperbole.pdf | Bin 1255114 -> 1259831 bytes
man/hyperbole.texi | 189 +++++++++++++++++-------
man/im/C-hh.png | Bin 0 -> 898836 bytes
man/version.texi | 6 +-
30 files changed, 1098 insertions(+), 418 deletions(-)
diff --git a/Changes b/Changes
index 317f854..2b8e73e 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,94 @@
+2017-11-22 Bob Weiner <address@hidden>
+
+* hversion.el: Released 7.0.1.
+
+* hui.el (hui:buf-writable-err): Added previously unused func-name parameter
to error msg.
+
+* hypb.el (hypb:error): Fixed issue when a literal string with % characters in
it was sent to format
+ and triggered an error, e.g. when a buffer or file name contains a %.
+
+* hmouse-drv.el (hkey-help-show): Limited local binding of {q} to
hkey-help-hide only
+ when in a help-mode (or derived) buffer.
+
+2017-11-21 Bob Weiner <address@hidden>
+
+* DEMO (Displaying File and Buffer Items): Added description of ace-window
integration.
+
+* HY-WHY.kotl: Added link to Delimited Thing drags; mention of Treemacs
+
+* man/hyperbole.texi (Smart Key - Treemacs): Added and updated with other
improvements for this release.
+ (Keyboard Drags): Added this section and documented
integration with ace-window package.
+
+* hui-window.el (hmouse-modeline-click): Loosened check to allow a small
movement between press and release
+ as long as it is less than whatever amount of movement registers a drag
(used to require exact pixel match).
+
+* hmouse-drv.el (hkey-ace-window-setup): Setup keyboard-based display of items
in windows specified by
+ short ids. See its doc string for how to use.
+ (hkey-drag, hkey-drag-to): Added for mouse drag emulation via
keyboard from a single
+ function that uses the selected window point for depress location and the
parameter RELEASE-WINDOW
+ for the window and its point for release. hkey-drag-to is useful as a
command in the ace-window
+ package's aw-dispatch-alist, e.g. {i} for insert item, because it leaves
RELEASE-WINDOW selected.
+
+* hui-select.el (hui-select-ignore-quoted-sexp-modes): Added so major modes to
ignore for syntactic pair
+ selection can be customized.
+ (hui-select-at-delimited-thing-p): Changed to not trigger when
on an Emacs button.
+
+* hui-window.el (hmouse-drag-between-frames): Replaced calls to window-valid-p
with window-live-p.
+ (hmouse-drag-window-side, hmouse-drag-between-windows,
hmouse-drag-same-window,
+ hmouse-drag-outside-all-windows, hmouse-drag-item-to-display,
+ hmouse-item-to-window): Added window-live-p checks for cases
where a window has
+ been deleted between depress and release.
+
+* hmouse-drv.el (hmouse-window-at-absolute-pixel-position): Updated to support
keyboard drag emulation.
+ (hkey-help): Changed hkey-forms to use hmouse-alist instead of
hkey-alist so mouse
+ drags are accounted for when emulating drags from the keyboard and then
invoking {C-h A} for help.
+ hui-window.el (hmouse-drag-outside-all-windows): Triggered only if an
action/assist-key press has
+ occurred, e.g. could be called by hkey-help when no press has occurred.
+ (hmouse-x-coord, hmouse-y-coord): Removed error when there is
no valid coordinate and
+ returned nil instead to support keyboard drag emulation help.
+
+2017-11-20 Bob Weiner <address@hidden>
+
+* hmouse-drv.el (hkey-absolute-pixel-position): Added and used in
Action/Assist Key functions.
+ (hmouse-set-point): Fixed hkey-operate bug by wrapping final
(posn-at-point) in
+ a list with an event type symbol so if called from a keyboard event,
returns a proper format
+ event.
+ (hkey-operate): Changed so output messages only when called
interactively.
+
+* hui-treemacs.el: Added for Smart Key support of the Treemacs file manager.
+ (smart-treemacs): Added.
+ (smart-treemacs-modeline): Added to allow toggling of
Treemacs display on
+ Action Key clicks on buffer id of modeline.
+ hui-mouse.el (hkey-alist, action-key-modeline-buffer-id-function): Added
Smart Key treemacs
+ package support.
+ hui-window.el (action-key-modeline): Updated to call
action-key-modeline-buffer-id-function.
+ hactypes.el (link-to-buffer-tmp): Added optional 2nd parameter of POINT to
display.
+
+2017-11-19 Bob Weiner <address@hidden>
+
+* hui-window.el (hmouse-item-to-window): Added support for
hmouse-drag-item-mode-forms sending
+ a sequence of (buffer position) rather than just buffer.
+ (hmouse-drag-item-mode-forms): Added support for dragging
items from the treemacs
+ hierachical file viewer package.
+
+2017-11-17 Bob Weiner <address@hidden>
+
+* hyrolo.el (hyrolo-initialize-file-list): Fixed to set hyrolo-file-list.
+ (hyrolo-retrieve-google-contacts): Updated to cache Google
passphrase whenever Google contacts
+ are used so the user is not prompted for his passphrase on every HyRolo
search.
+ man/hyperbole.texi (HyRolo Settings): Updated Google Contacts settings
handling to document this caching.
+
+* man/im/C-hh.png - Added showing Hyperbole mini-buffer menu prefix key
binding.
+
+2017-11-16 Bob Weiner <address@hidden>
+
+* hywconfig.el (hywconfig-delete-pop): Fixed bug that removed the ring entry
before using it to restore
+ the window configuration.
+
+==============================================================================
+V7.0.1 changes ^^^^:
+==============================================================================
+
2017-11-15 Bob Weiner <address@hidden>
* hversion.el: Updated to 7.0.0 for major release.
@@ -205,7 +296,7 @@
2017-10-30 Bob Weiner <address@hidden>
-* man/hyperbole.texi (Glossary): Removed mention of old remote file access
packages: ange-ftp and EFS. Use Tramp only
+* man/hyperbole.texi (Glossary): Removed mention of old remote file access
packages: ange-ftp and EFS. Use Tamrp only
now.
(Searching and Summarizing): Renamed from Location.
@@ -1300,7 +1391,7 @@ Python (case-sensitive).
hvar.el (var:append): Removed improper function quoting of variable.
==============================================================================
-V6.0.3 changes ^^^^:
+V7.0.0 changes ^^^^:
==============================================================================
2016-08-08 Bob Weiner <address@hidden>
diff --git a/DEMO b/DEMO
index 1775c76..d0937c1 100644
--- a/DEMO
+++ b/DEMO
@@ -1135,29 +1135,41 @@ If you want a new window where you release (so the
original destination window's
buffer stays onscreen), just drag to a window's modeline; that window will be
split before the buffer is displayed.
-*** Cloning Windows
-
-To clone a window with its buffer to a new frame, simply drag the Action Mouse
-Key from the window to outside of Emacs and release the key. A new frame will
-be created, selected and sized according to the original window. Do the same
-thing with the Assist Mouse Key and the original window will be deleted as
well,
-unless it is the only window in that frame. Create a few windows and try these
-actions.
-
*** Displaying File and Buffer Items
-You can do the same thing with items in dired, buffer menu and ibuffer menus
-rather than buffers themselves. Drag with the Action Mouse Key and the
selected
-item will be displayed in any Emacs window in which you release. Drag outside
-Emacs and it will be displayed in a new frame.
+You can do the same thing with items in dired, buffer menu and ibuffer menu
+listing buffers rather than buffers themselves. Drag with the Action Mouse Key
+and the selected item will be displayed in any Emacs window in which you
+release. Drag outside Emacs and it will be displayed in a new frame. To
+display the last item you want, press the Action Key on it and it will display
+within the listing window itself. (If you use the Treemacs file viewer
package,
+item dragging works there as well).
So now you can rapidly put a bunch of buffers and files on your screen wherever
you like. Typically, a brief visual pulse is shown first at the source item
and
-then in the whole destination window, to help you see that the transfer has
been
+then in the destination window, to help you see that the transfer has been
made. An Assist Key Drag will move the the item list buffer to the destination
(swapping buffers), just as it does with other buffers. Practice these drags
as
they will prove very beneficial across time.
+For even faster keyboard-based drag emulation, use the Emacs package
+'ace-window' (see "(hyperbole)Keyboard Drags" for setup). Once this is
+configured, the leftmost character or two of each window's modeline will show
+the ID to type to use that window as the drag destination. Then whenever point
+is on an item you want displayed in another window, use M-o i
+<id-of-window-to-display-item-in> and watch the magic happen. You can also use
+this to create explicit button links to other window buffers when in an
editable
+buffer.
+
+*** Cloning Windows
+
+To clone a window with its buffer to a new frame, simply drag the Action Mouse
+Key from the window to outside of Emacs and release the key. A new frame will
+be created, selected and sized according to the original window. Do the same
+thing with the Assist Mouse Key and the original window will be deleted as
well,
+unless it is the only window in that frame. Create a few windows and try these
+actions.
+
** Window Configuration Drags
A window configuration consists of the set of windows within a single Emacs
diff --git a/HY-ABOUT b/HY-ABOUT
index b8f0a59..cfd0c72 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -3,7 +3,7 @@
Designed and Written by Bob Weiner
Maintained by Mats Lidell and Bob Weiner
https://www.gnu.org/software/hyperbole/
- Version 7.0.0
+ Version 7.0.1
GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
an efficient and programmable hypertextual information management
diff --git a/HY-ANNOUNCE b/HY-ANNOUNCE
index 58e3b03..57dd3cc 100644
--- a/HY-ANNOUNCE
+++ b/HY-ANNOUNCE
@@ -1,40 +1,42 @@
-To: address@hidden, address@hidden, address@hidden
-ANNOUNCE: GNU Hyperbole 7, a.k.a the Git Ready for Action Release
+To: address@hidden, address@hidden, address@hidden, address@hidden,
address@hidden
+ANNOUNCE: GNU Hyperbole 7, a.k.a the Git Ready for Action Release, is now
available
-This is the main public release of GNU Hyperbole for 2017. It offers many
-new productivity-enhancing features including Git and Github object links
-as summarized here:
+This is the main public release of GNU Hyperbole for 2017 and it is
+bursting with new features and further quality improvements. New
+capabilities, including Git and Github object links, are summarized
+here:
https://git.savannah.gnu.org/cgit/hyperbole.git/plain/HY-NEWS
-A short explanation of Hyperbole is included below. For more detail
-or how to obtain and install it, see:
+A short explanation of Hyperbole is included below. For more
+detail or how to obtain and install it, see:
- https://www.gnu.org/software/hyperbole
+ https://www.gnu.org/s/hyperbole
For a list of use cases, see:
- https://www.gnu.org/software/hyperbole/HY-WHY.html
+ https://www.gnu.org/s/hyperbole/HY-WHY.html
For what users think about Hyperbole, see:
- https://www.gnu.org/software/hyperbole/hyperbole.html#user-quotes
+ https://www.gnu.org/s/hyperbole/hyperbole.html#user-quotes
----
-GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is an
-amazing, programmable hypertextual information management system
-implemented as a GNU Emacs package and extensively documented. Hyperbole
-has been greatly expanded and updated for use with the latest Emacs 26
-releases; it supports GNU Emacs 24.4 or above.
+GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole,
+is an amazing, programmable hypertextual information management
+system implemented as a GNU Emacs package and extensively
+documented. Hyperbole has been greatly expanded and updated for
+use with the latest Emacs 26 releases; it supports GNU Emacs 24.4
+or above.
-Hyperbole can boost your day-to-day productivity with Emacs and your
-ability to manage information stored across many different machines on the
-internet. People who get used to Hyperbole often find they prefer never to
-use Emacs without it.
+Hyperbole can boost your day-to-day productivity with Emacs and
+your ability to manage information stored across many different
+machines on the internet. People who get used to Hyperbole often
+find they prefer never to use Emacs without it.
-Hyperbole includes its own easy-to-use hypertextual buttons and links that
-can be created without the need for any markup language.
+Hyperbole includes its own easy-to-use hypertextual buttons and
+links that can be created without the need for any markup language.
It also comes out-of-the-box with:
@@ -44,32 +46,33 @@ It also comes out-of-the-box with:
- a powerful multi-level auto-numbered outliner
- - and two very smart context-dependent mouse and keyboard keys that
- simplify operations in many editing and browsing modes. All features
- are aimed at making textual information management and display fast and
- easy.
+ - and two very smart context-dependent mouse and keyboard keys
+ that simplify operations in many editing and browsing modes.
+ All features are aimed at making textual information management
+ and display fast and easy.
-Bob Weiner designed and programmed GNU Hyperbole. He and Mats Lidell
-maintain it with the Free Software Foundation. It includes an interactive
-demo to introduce you to its features as well as a detailed reference manual,
-as explained here:
+Bob Weiner designed and programmed GNU Hyperbole. He and Mats
+Lidell maintain it with the Free Software Foundation. It includes
+an interactive demo to introduce you to its features as well as a
+detailed reference manual, as explained here:
- https://www.gnu.org/software/hyperbole/hyperbole.html#invocation-and-doc
+ https://www.gnu.org/s/hyperbole/hyperbole.html#invocation-and-doc
----
-Please give Hyperbole a try. It's free, man. It adapts to your needs.
-It connects everything. It rewires your brain. It speeds your web
-searches for `carpal tunnel syndrome'. It makes you feel like the
-sun is out on a gray winter day :-)
+Please give Hyperbole a try. It's free, man. It adapts to your
+needs. It connects everything. It rewires your brain. It speeds
+your web searches for `carpal tunnel syndrome'. It makes you feel
+like the sun is out on a gray winter day :-)
-But wait, there's more and this part is serious. For a limited time,
-to encourage use and feedback, the first 30 people who try out the
-Hyperbole DEMO or read the Hyperbole Manual and send a few thoughtful
-sentences to <rsw at gnu dot org> will receive either of their choice of
-the following as yet unpublished single file Emacs Lisp libraries:
+But wait, there's more and this part is serious. For a limited
+time, to encourage use and feedback, the first 30 people who try
+out the Hyperbole DEMO or read the Hyperbole Manual and send a few
+thoughtful sentences to <rsw at gnu dot org> will receive either of
+their choice of the following as yet unpublished single file Emacs
+Lisp libraries:
-;; rsw-linecol.el: User-editable mode-line column and line number display
formats
+;; rsw-linecol.el: User-editable mode-line col/line number formats
;;
;; GNU Emacs buries the formatting of mode-line line and column
;; numbers in a way that makes it virtually impossible for a user
@@ -79,18 +82,17 @@ the following as yet unpublished single file Emacs Lisp
libraries:
or
-;; rsw-chrome-macos.el: Open a URL or file in Google Chrome and reuse an
existing
-;; tab/window if already displayed.
+;; rsw-chrome-macos.el: Open a URL in Google Chrome and reuse an
+;; existing tab/window if already displayed.
;;
-;; This library resolves the many problems of sending URLs to Google Chrome
-;; on MacOS. It properly sends # hash in-file links (these are
-;; typically stripped when Chrome is called as a MacOS application).
-;; It reuses any tab already displaying any matching URL that is sent
-;; and it does this even if the ultimately displayed URL goes through
-;; several redirects before display.
+;; This library resolves the many problems of sending URLs to
+;; Google Chrome on MacOS. It properly sends # hash in-file links
+;; (these are typically stripped when Chrome is called as a MacOS
+;; application). It reuses any tab already displaying any
+;; matching URL that is sent and it does this even if the
+;; ultimately displayed URL goes through several redirects before
+;; display.
Enjoy,
-Bob and Mats
-
-
+Bob Weiner and Mats Lidell
diff --git a/HY-NEWS b/HY-NEWS
index 44b430b..1e4284c 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -2,6 +2,31 @@
by Bob Weiner
===========================================================================
+* V7.0.1
+===========================================================================
+
+ SMART (ACTION AND ASSIST) KEYS
+
+ - Keyboard Drags: Keyboard emulation of many Smart Mouse Key drag actions.
+ See "(hyperbole)Keyboard Drags".
+
+ - Keyboard Help: When {M-o} is bound to the `hkey-operate' command to
+ emulate drag depress and release events; when in the release window
+ prior to pressing the second {M-o}, the {C-h A} now reports the drag
+ action associated with the current release point. See "(hyperbole)C-h
A".
+
+ - Smart Treemacs: Smart Key and item drag support for the Treemacs package.
+ See "(hyperbole)Smart Key - Treemacs".
+
+ - Ace Window: Integrated Hyperbole item drag and link creation with this
+ package's direct window selection. See "(hyperbole)Keyboard Drags".
+
+ HYROLO
+
+ - Fixed Google Contacts support to prompt only once for authorization.
+
+
+===========================================================================
* V7.0.0
===========================================================================
diff --git a/HY-WHY.kotl b/HY-WHY.kotl
index 4ba7036..5bbfba2 100644
--- a/HY-WHY.kotl
+++ b/HY-WHY.kotl
@@ -60,14 +60,19 @@
and frames with mouse drags and the Hyperbole HyControl system.
See "DEMO#HyControl".
- 11a. Drag Buffer Menu or Dired items to other windows to display
- them wherever you want. Drag-and-drop text regions across
- Emacs frames. See "DEMO#Displaying File and Buffer Items".
+ 11a. Drag Buffer Menu, Dired or Treemacs items to other windows to
+ display them wherever you want. Integrate with the Ace
+ Window package to `throw' items to specific windows with
+ quick key sequences. See "DEMO#Displaying File and Buffer
+ Items".
- 11b. Swap buffers in windows across frames with a mouse drag.
+ 11b. Drag-and-drop text regions across Emacs frames. See
+ "DEMO#Things".
+
+ 11c. Swap buffers in windows across frames with a mouse drag.
See "DEMO#Swapping Buffers".
- 11c. With one command, rapidly create a grid of tiled windows
+ 11d. With one command, rapidly create a grid of tiled windows
displaying either selected buffers, buffers with a specific
major mode or the most recently used buffer list, e.g.
{63 C-c @} creates 6 rows, each with 3 columns of windows (18
@@ -77,22 +82,22 @@
same above command to display them in a grid of windows. See
"DEMO#Windows Grid".
- 11d. Use a quick mouse key press to scroll any window line to the
+ 11e. Use a quick mouse key press to scroll any window line to the
top or bottom of a window, to see exactly what you want on
screen. See "DEMO#Smart Scrolling".
- 11e. Clone or tear off a window into its own frame with a quick
+ 11f. Clone or tear off a window into its own frame with a quick
mouse drag. See "DEMO#Cloning Windows".
- 11f. Each frame can store a series of window configurations
+ 11g. Each frame can store a series of window configurations
(layouts) which support working with sets of buffers and
rapidly moving among them. See "DEMO#Window Configuration
Drags".
- 11g. Easily adjust the height and width of windows and frames as
+ 11h. Easily adjust the height and width of windows and frames as
needed. See "DEMO#Frame Commands".
- 11h. Quick clicks on different areas of a buffer's modeline will
+ 11i. Quick clicks on different areas of a buffer's modeline will
rotate through your working list of buffers, changing what
each window displays. A popup menu gives you quick access to
Hyperbole commands plus frame, window and buffer selection
@@ -102,7 +107,7 @@
"ben" ;; kvspec:current
-36 ;; id-counter
+37 ;; id-counter
alpha ;; label-type
4 ;; label-min-width
". " ;; label-separator
@@ -110,7 +115,7 @@ alpha ;; label-type
;; depth-first kcell attributes
[[0
- (creator "address@hidden" create-time "20171114:17:51:59" id-counter 36 file
"/Users/bk/sw-dev/emacs/hyperbole/HY-WHY.kotl")]
+ (creator "address@hidden" create-time "20171122:02:34:20" id-counter 37 file
"/Users/bk/Dropbox/emacs/hyperbole/HY-WHY.kotl")]
[1
(creator "address@hidden" create-time "20160524:15:04:17" no-fill t)]
[17
@@ -135,6 +140,8 @@ alpha ;; label-type
(creator "address@hidden" create-time "20160524:15:32:11" no-fill t)]
[20
(creator "address@hidden" create-time "20171019:22:07:29" no-fill t)]
+ [37
+ (idstamp 20 creator "address@hidden" create-time "20171019:22:07:29" no-fill
t)]
[23
(creator "address@hidden" create-time "20171108:01:15:39" no-fill t)]
[22
diff --git a/MANIFEST b/MANIFEST
index aed31f7..05c5dd2 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -40,6 +40,7 @@ hui-menu.el - Menubar menu of GNU Hyperbole commands
hui-mini.el - Single line command menus for GNU Hyperbole
hui-mouse.el - Use key or mouse key for many functions, e.g. GNU
Hyperbole menus
hui-select.el - Select delimited or larger and larger syntax-driven
regions in a buffer
+hui-treemacs.el - Hyperbole Smart Key support for the Treemacs file
manager package
hui-window.el - Smart Mouse Key window and modeline depress/release
actions
hui-xe-but.el - XEmacs button highlighting and flashing support
hui.el - GNU Hyperbole button and hyperlink user interface
diff --git a/Makefile b/Makefile
index 799739d..bc4335f 100644
--- a/Makefile
+++ b/Makefile
@@ -54,7 +54,7 @@
# This ver setup won't work under any make except GNU make, so set it manually.
#HYPB_VERSION = "`head -3 hversion.el | tail -1 | sed -e 's/.*|\(.*\)|.*/\1/'`"
-HYPB_VERSION = 7.0.0
+HYPB_VERSION = 7.0.1
# Emacs executable used to byte-compile .el files into .elc's.
# Possibilities include: emacs, infodock, xemacs, etc.
@@ -150,7 +150,7 @@ EL_COMPILE = hact.el hactypes.el hargs.el hbdata.el
hbmap.el hbut.el \
hmouse-drv.el hmouse-key.el hmouse-mod.el hmouse-sh.el
hmouse-tag.el \
hpath.el hrmail.el hsettings.el hsmail.el hsys-org.el hsys-www.el
htz.el \
hycontrol.el hui-jmenu.el hui-menu.el hui-mini.el hui-mouse.el
hui-select.el \
- hui-window.el hui.el hvar.el hversion.el hvm.el hypb.el
hyperbole.el \
+ hui-treemacs.el hui-window.el hui.el hvar.el hversion.el hvm.el
hypb.el hyperbole.el \
hyrolo-demo.el hyrolo-logic.el hyrolo-menu.el hyrolo.el
hywconfig.el set.el
EL_KOTL = kotl/kexport.el kotl/kfile.el kotl/kfill.el kotl/kimport.el
kotl/klabel.el \
@@ -165,7 +165,7 @@ ELC_COMPILE = hactypes.elc hibtypes.elc hib-debbugs.elc
hib-doc-id.elc hib-kbd.
hmouse-drv.elc hmouse-key.elc hmouse-mod.elc hmouse-sh.elc
hmouse-tag.elc \
hpath.elc hrmail.elc hsettings.elc hsmail.elc hsys-org.elc
hsys-www.elc htz.elc \
hycontrol.elc hui-jmenu.elc hui-menu.elc hui-mini.elc
hui-mouse.elc hui-select.elc \
- hui-window.elc hui.elc hvar.elc hversion.elc hvm.elc hypb.elc
hyperbole.elc \
+ hui-treemacs.elc hui-window.elc hui.elc hvar.elc hversion.elc
hvm.elc hypb.elc hyperbole.elc \
hyrolo-demo.elc hyrolo-logic.elc hyrolo-menu.elc hyrolo.elc
hywconfig.elc set.elc
ELC_KOTL = kotl/kexport.elc kotl/kfile.elc kotl/kfill.elc kotl/kimport.elc
kotl/klabel.elc \
diff --git a/README.md b/README.md
index b424475..875c05b 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# GNU Hyperbole 7.0.0 - The Everyday Hypertextual Information Manager
+# GNU Hyperbole 7.0.1 - The Everyday Hypertextual Information Manager
<!-- START doctoc generated TOC -->
**Table of Contents**
diff --git a/README.md.html b/README.md.html
index edec72a..65c84f8 100644
--- a/README.md.html
+++ b/README.md.html
@@ -1,5 +1,5 @@
<h1>
-<a
id="user-content-gnu-hyperbole-700---the-everyday-hypertextual-information-manager"
class="anchor"
href="#gnu-hyperbole-700---the-everyday-hypertextual-information-manager"
aria-hidden="true"><span aria-hidden="true" class="octicon
octicon-link"></span></a>GNU Hyperbole 7.0.0 - The Everyday Hypertextual
Information Manager</h1>
+<a
id="user-content-gnu-hyperbole-701---the-everyday-hypertextual-information-manager"
class="anchor"
href="#gnu-hyperbole-701---the-everyday-hypertextual-information-manager"
aria-hidden="true"><span aria-hidden="true" class="octicon
octicon-link"></span></a>GNU Hyperbole 7.0.1 - The Everyday Hypertextual
Information Manager</h1>
<p><strong>Table of Contents</strong></p>
<ul>
@@ -69,7 +69,7 @@ it is textual information, Hyperbole can work with it. In
contrast to
Org mode, Hyperbole works across all Emacs modes and speeds your work
by turning all kinds of references into clickable hyperlinks and
allowing you to create new hyperlinks by dragging between two windows.
-The <a href="https://www.emacswiki.org/emacs/Hyperbole">Hyperbole wiki page</a>
+The <a href="https://www.emacswiki.org/emacs/Hyperbole"
rel="nofollow">Hyperbole wiki page</a>
explains the many ways it differs from and is complementary to Org
mode.</p>
<p>Hyperbole allows hypertext buttons to be embedded within unstructured
@@ -90,7 +90,7 @@ rather learn fewer packages and get more work done faster,
then
Hyperbole is for you.</p>
<p>Hyperbole works well on GNU Emacs 24.4 or above. It is designed and
written by Bob Weiner. It is maintained by him and Mats Lidell. Its
-main distribution site is: <a
href="https://www.gnu.org/software/hyperbole/">https://www.gnu.org/software/hyperbole/</a>.
+main distribution site is: <a href="https://www.gnu.org/software/hyperbole/"
rel="nofollow">https://www.gnu.org/software/hyperbole/</a>.
If any term in here is new or unfamiliar to you, you can look it up in the
<a href="man/hyperbole.html#Glossary">Hyperbole Glossary</a>.</p>
<p>Hyperbole is available for <a href="#installation">download and
installation</a>
@@ -110,28 +110,28 @@ through the GNU Emacs package manager.</p>
<p>To inspect the Hyperbole source code online rather than installing it for
use (which will also give you the source code), open a web page to:</p>
<ul>
-<li><a
href="https://git.savannah.gnu.org/cgit/hyperbole.git/tree/">https://git.savannah.gnu.org/cgit/hyperbole.git/tree/</a></li>
+<li><a href="https://git.savannah.gnu.org/cgit/hyperbole.git/tree/"
rel="nofollow">https://git.savannah.gnu.org/cgit/hyperbole.git/tree/</a></li>
</ul>
<p>Alternatively, you may download a tar.gz source archive from either:</p>
<ul>
<li>
-<p><a
href="ftp://ftp.gnu.org/gnu/hyperbole/">ftp://ftp.gnu.org/gnu/hyperbole/</a></p>
+<p><a href="ftp://ftp.gnu.org/gnu/hyperbole/"
rel="nofollow">ftp://ftp.gnu.org/gnu/hyperbole/</a></p>
</li>
<li>
-<p><a
href="http://ftpmirror.gnu.org/hyperbole/">http://ftpmirror.gnu.org/hyperbole/</a></p>
+<p><a href="http://ftpmirror.gnu.org/hyperbole/"
rel="nofollow">http://ftpmirror.gnu.org/hyperbole/</a></p>
</li>
</ul>
<p>which will find the closest mirror of the GNU ftp site and show it to
you.</p>
<p>If you want to follow along with Hyperbole development and maintain a
copy/clone of the current version-controlled git tree, use a
-<a href="https://savannah.gnu.org/git/?group=hyperbole">command listed here</a>
+<a href="https://savannah.gnu.org/git/?group=hyperbole" rel="nofollow">command
listed here</a>
to clone the Hyperbole project tree.</p>
<h2>
<a id="user-content-installation" class="anchor" href="#installation"
aria-hidden="true"><span aria-hidden="true" class="octicon
octicon-link"></span></a>Installation</h2>
<p>Once you have Emacs set up at your site, GNU Hyperbole may be
installed by using the Emacs Package Manager. If you are not
familiar with it, see the Packages section of the GNU Emacs Manual,
-<a
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html">Emacs
Packages</a>.</p>
+<a
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Packages.html"
rel="nofollow">Emacs Packages</a>.</p>
<p>If you have Hyperbole 5.10 or higher already installed and simply want to
upgrade it, invoke the Emacs Package Manager with {M-x list-packages RET},
then use the {U} key followed by the {x} key to upgrade all out-of-date
@@ -139,7 +139,7 @@ packages, Hyperbole among them. Then skip the text below
and move on to
the next section, <a href="#invocation">Invocation</a>.</p>
<p>Otherwise, to download and install the Hyperbole package, you should
add several lines to your personal Emacs initialization file,
-typically "~/.emacs". For further details, see <a
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html">Emacs
Init
+typically "~/.emacs". For further details, see <a
href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Init-File.html"
rel="nofollow">Emacs Init
File</a>.</p>
<p>Below are the lines to add:</p>
<pre><code>(require 'package)
@@ -182,7 +182,7 @@ control. {t} switches between window and frame control
once in one of
them. Hyperbole also binds {C-c } for quick access to HyControl's
window control menu if it was not already bound prior to Hyperbole's
initialization. A long video demonstrating many of HyControl's
-features is available at <a
href="https://youtu.be/M3-aMh1ccJk">https://youtu.be/M3-aMh1ccJk</a>.</p>
+features is available at <a href="https://youtu.be/M3-aMh1ccJk"
rel="nofollow">https://youtu.be/M3-aMh1ccJk</a>.</p>
<p>The above are the best interactive ways to learn about Hyperbole.
Hyperbole also includes the Hyperbole Manual, a full reference manual,
not a simple introduction. It is included in the "man/" subdirectory
diff --git a/hactypes.el b/hactypes.el
index 7145949..bfe03fc 100644
--- a/hactypes.el
+++ b/hactypes.el
@@ -229,13 +229,19 @@ For example: To: address@hidden")))
(t (hpath:find buf-str-or-file)))
(hypb:error "(hyp-source): Non-string argument: %s" buf-str-or-file)))
-(defact link-to-buffer-tmp (buffer)
- "Displays a BUFFER.
+(defact link-to-buffer-tmp (buffer &optional point)
+ "Displays a BUFFER scrolled to optional POINT.
+If POINT is given, the buffer is displayed with POINT at the top of
+the window.
+
This type of link generally can only be used within a single editor session.
Use `link-to-file' instead for a permanent link."
(interactive "bBuffer to link to: ")
(if (or (stringp buffer) (bufferp buffer))
- (hpath:display-buffer buffer)
+ (and (hpath:display-buffer buffer)
+ (integerp point)
+ (progn (goto-char (min (point-max) point))
+ (recenter 0)))
(hypb:error "(link-to-buffer-tmp): Not a current buffer: %s" buffer)))
(defact link-to-directory (directory)
diff --git a/hib-social.el b/hib-social.el
index 2a00a75..2f0e550 100644
--- a/hib-social.el
+++ b/hib-social.el
@@ -4,7 +4,7 @@
;;
;; Orig-Date: 20-Jul-16 at 22:41:34
;;
-;; Copyright (C) 2016 Free Software Foundation, Inc.
+;; Copyright (C) 2016-2017 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -66,14 +66,14 @@
;; is set, display current
project's local
;; git commit diff
;; git#master Show latest commit entry and
diff for branch
-;; git#hyperbole-6.0.2 From any buffer, show the
commit diff
-;; for tag `hyperbole-6.0.2'
+;; git#hyperbole-7.0.0 From any buffer, show the
commit diff
+;; for tag `hyperbole-7.0.0'
;;
;; When you want to be more explicit, use:
;;
;; git#commit/55a1f0
;; git#branch/master
-;; git#tag/hyperbole-6.0.2
+;; git#tag/hyperbole-7.0.0
;;
;; To edit and view git managed files (note the =):
;;
diff --git a/hmouse-drv.el b/hmouse-drv.el
index cccc888..27d3fc5 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -4,7 +4,7 @@
;;
;; Orig-Date: 04-Feb-90
;;
-;; Copyright (C) 1989-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1989-2017 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -16,6 +16,7 @@
;;; Other required Elisp libraries
;;; ************************************************************************
+(eval-when-compile (require 'hui-window)) ;; for `hmouse-drag-item-to-display'
(require 'hypb)
;; Quiet byte compiler warnings for these free variables.
@@ -127,6 +128,12 @@ This permits the Smart Keys to behave as paste keys.")
;;; Hyperbole context-sensitive key driver functions
;;; ************************************************************************
+(defun hkey-absolute-pixel-position ()
+ "Return the display terminal absolute pixel position of the mouse (if in a
mouse event) or the selected window's point."
+ (if (mouse-event-p last-input-event)
+ (mouse-absolute-pixel-position)
+ (window-absolute-pixel-position)))
+
;;; Smart Key Depress Functions
(defun action-key-depress (&rest args)
(interactive)
@@ -139,7 +146,7 @@ This permits the Smart Keys to behave as paste keys.")
action-key-depress-args (hmouse-set-point args)
action-key-depress-window (or (hmouse-depress-inactive-minibuffer-p
args)
(selected-window))
- action-key-depress-position (mouse-absolute-pixel-position)
+ action-key-depress-position (hkey-absolute-pixel-position)
action-key-release-args nil
action-key-release-window nil
action-key-release-prev-point nil)
@@ -156,7 +163,7 @@ This permits the Smart Keys to behave as paste keys.")
assist-key-depress-args (hmouse-set-point args)
assist-key-depress-window (or (hmouse-depress-inactive-minibuffer-p
args)
(selected-window))
- assist-key-depress-position (mouse-absolute-pixel-position)
+ assist-key-depress-position (hkey-absolute-pixel-position)
assist-key-release-args nil
assist-key-release-window nil
assist-key-release-prev-point nil)
@@ -190,7 +197,7 @@ Any ARGS will be passed to `hmouse-function'."
;; Make this a no-op if some local mouse key binding overrode the global
;; action-key-depress command invocation.
(when action-key-depressed-flag
- (setq action-key-release-position (mouse-absolute-pixel-position))
+ (setq action-key-release-position (hkey-absolute-pixel-position))
(let ((hkey-alist hmouse-alist))
(setq action-key-depressed-flag nil)
(cond (action-key-cancelled
@@ -214,7 +221,7 @@ Any ARGS will be passed to `hmouse-function'."
;; Make this a no-op if some local mouse key binding overrode the global
;; assist-key-depress command invocation.
(when assist-key-depressed-flag
- (setq assist-key-release-position (mouse-absolute-pixel-position))
+ (setq assist-key-release-position (hkey-absolute-pixel-position))
(let ((hkey-alist hmouse-alist))
(setq assist-key-depressed-flag nil)
(cond (assist-key-cancelled
@@ -321,6 +328,74 @@ bound to a valid function."
(hypb:format-quote (format "%s" hkey-action))
(current-buffer) major-mode (minibuffer-depth))))
+;;;###autoload
+(defun hkey-drag (release-window)
+ "Emulate Smart Mouse Key drag from selected window to RELEASE-WINDOW.
+The drag action determines the final selected window.
+
+Optional prefix ARG non-nil means emulate Assist Key rather than the
+Action Key.
+
+Only works when running under a window system, not from a dumb terminal."
+ ;; Cancel any partial drag that may have been recorded.
+ (if current-prefix-arg
+ (setq assist-key-depressed-flag nil)
+ (setq action-key-depressed-flag nil))
+ (hkey-operate current-prefix-arg)
+ (when (window-live-p release-window)
+ (select-window release-window))
+ (hkey-operate current-prefix-arg))
+
+;;;###autoload
+(defun hkey-drag-to (release-window)
+ "Emulate Smart Mouse Key drag from selected window to RELEASE-WINDOW.
+If an item is dragged to RELEASE-WINDOW, then RELEASE-WINDOW is selected;
+otherwise, the drag action determines the selected window.
+
+Optional prefix ARG non-nil means emulate Assist Key rather than the
+Action Key.
+
+Only works when running under a window system, not from a dumb terminal."
+ (if (and (hmouse-drag-item-to-display) (window-live-p release-window))
+ (progn (hkey-drag release-window)
+ ;; Leave release window selected
+ (when (window-live-p release-window)
+ (select-window release-window)))
+ ;; Leave hkey-drag to choose selected window
+ (hkey-drag release-window)))
+
+(defun hkey-ace-window-setup (&optional key)
+ "Bind optional keyboard KEY and setup display of items in windows specified
by short ids.
+
+The ace-window package, (see
\"https://elpa.gnu.org/packages/ace-window.html\"),
+assigns short ids to each Emacs window and lets you jump to or
+operate upon a specific window by giving its letter. Hyperbole
+can insert an operation into ace-window that allows you to
+display items such as dired or buffer menu items in a specific
+window.
+
+To enable this feature, in your Emacs initialization file after
+Hyperbole is initialized, if you already have a key bound for
+ace-window, then call:
+
+ (hkey-ace-window-setup)
+
+otherwise, choose a binding like {M-o} and send it to the same
+function to bind it:
+
+ (hkey-ace-window-setup \"\M-o\")
+
+Then whenever point is on an item you want displayed in another
+window, use {M-o i <id-of-window-to-display-item-in>} and watch the
+magic happen."
+ (require 'ace-window)
+ (when key (global-set-key key 'ace-window))
+ (push '(?i hkey-drag-to "Hyperbole Drag To") aw-dispatch-alist)
+ (setq aw-keys '(?a ?s ?d ?f ?g ?h ?j ?k ?l)
+ ;; allows {i} operation to work when only 2 windows exist
+ aw-dispatch-always t)
+ (ace-window-display-mode 1))
+
(defun hkey-execute (assist-flag)
"Evaluate Action Key form (or Assist Key form with ASSIST-FLAG non-nil) for
first non-nil predicate from `hkey-alist'.
Non-nil ASSIST-FLAG means evaluate second form, otherwise evaluate first form.
@@ -344,7 +419,7 @@ Return non-nil iff a non-nil predicate is found."
With optional ASSIST-FLAG non-nil, display help for the Assist Key command.
Return non-nil iff associated help documentation is found."
(interactive "P")
- (let ((hkey-forms hkey-alist)
+ (let ((hkey-forms hmouse-alist)
hkey-form pred-value call calls cmd-sym doc)
(while (and (null pred-value) (setq hkey-form (car hkey-forms)))
(or (setq pred-value (eval (car hkey-form)))
@@ -497,9 +572,10 @@ the current window. By default, it is displayed according
to the setting of
;; selection.
(unless (or (where-is-internal 'quit-window (current-local-map))
(where-is-internal 'hkey-help-hide (current-local-map)))
- (if (string-match "^\\*Help\\|Help\\*$" (buffer-name))
- (help-mode))
- (local-set-key "q" #'hkey-help-hide))))
+ (when (string-match "^\\*Help\\|Help\\*$" (buffer-name))
+ (help-mode))
+ (when (derived-mode-p 'help-mode)
+ (local-set-key "q" #'hkey-help-hide)))))
;; If in a *Completions* buffer, re-select the window that
;; generated the completions.
(if (buffer-live-p completion-reference-buffer)
@@ -543,20 +619,22 @@ Only works when running under a window system, not from a
dumb terminal."
(if arg
(if assist-key-depressed-flag
(progn (assist-mouse-key)
- (message "Assist Key released."))
+ (when (called-interactively-p 'interactive)
+ (message "Assist Key released.")))
(assist-key-depress)
- (message
- "Assist Key depressed; go to release point and hit {%s %s}."
- (substitute-command-keys "\\[universal-argument]")
- (substitute-command-keys "\\[hkey-operate]")
- ))
+ (when (called-interactively-p 'interactive)
+ (message
+ "Assist Key depressed; go to release point and hit {%s %s}."
+ (substitute-command-keys "\\[universal-argument]")
+ (substitute-command-keys "\\[hkey-operate]"))))
(if action-key-depressed-flag
(progn (action-mouse-key)
- (message "Action Key released."))
+ (when (called-interactively-p 'interactive)
+ (message "Action Key released.")))
(action-key-depress)
- (message "Action Key depressed; go to release point and hit {%s}."
- (substitute-command-keys "\\[hkey-operate]"))
- )))
+ (when (called-interactively-p 'interactive)
+ (message "Action Key depressed; go to release point and hit {%s}."
+ (substitute-command-keys "\\[hkey-operate]"))))))
(defun hkey-summarize (&optional current-window)
"Display smart key operation summary in help buffer.
@@ -614,8 +692,11 @@ With optional ARG, override them iff ARG is positive."
spacing))
(defun hmouse-window-at-absolute-pixel-position (&optional position
release-flag)
- "Return the top-most Emacs window at optional POSITION ((x . y) in absolute
pixels) or mouse position.
-If POSITION is not in a window, return nil. Considers all windows on
+ "Return the top-most Emacs window at optional POSITION ((x . y) in absolute
pixels).
+If POSITION is nil, use mouse position if last input event was a mouse
+event, otherwise, use the position of point in the selected window.
+
+If the position used is not in a window, return nil. Considers all windows on
the same display as the selected frame.
If optional RELEASE-FLAG is non-nil, this is part of a Smart Key
@@ -623,11 +704,14 @@ release computation, so optimize window selection based
on the depress
window already computed.
If the selected frame is a graphical macOS window and
-`hmouse-verity-release-window-flag' is non-nil, then return the
+`hmouse-verify-release-window-flag' is non-nil, then return the
top-most Emacs window only if it is the top-most application window at
the position (not below another application's window)."
(interactive)
- (setq position (or position (mouse-absolute-pixel-position)))
+ (setq position (or position
+ (if (mouse-event-p last-input-event)
+ (mouse-absolute-pixel-position)
+ (hkey-absolute-pixel-position))))
;; Proper top-to-bottom listing of frames is available only in Emacs
;; 26 and above. For prior versions, the ordering of the frames
;; returned is not guaranteed, so the frame whose window is returned
@@ -846,7 +930,7 @@ return current point as a marker."
(+ (nth 1 args) (nth 0 (window-edges win)))
(+ (nth 2 args) (nth 1 (window-edges win))))))
(t args)))
- (posn-at-point)))
+ (list 'keyboard-drag (posn-at-point))))
(defun hmouse-set-point-at (set-point-arg-list)
"Set point to cursor position using SET-POINT-ARG-LIST and returns t.
diff --git a/hmouse-sh.el b/hmouse-sh.el
index b93e6a0..64fceee 100644
--- a/hmouse-sh.el
+++ b/hmouse-sh.el
@@ -560,6 +560,13 @@ With optional MIDDLE-KEY-ONLY-FLAG non-nil, binds only the
middle mouse key."
(interactive)
(cond ;; GNU Emacs
(hyperb:emacs-p
+ ;; Unbind Emacs push-button mouse keys since Hyperbole handles them.
+ (define-key button-map [mouse-2] nil)
+ (define-key button-map [mode-line mouse-2] nil)
+ (define-key button-map [header-line mouse-2] nil)
+ ;; Remove push-button help echo string for mouse-2 key.
+ (put 'default-button 'help-echo nil)
+ ;;
;; In Info-mode, Emacs uses key-translation-map to link mouse-1 to
;; do whatever mouse-2 does but because Hyperbole uses both down
;; and up bindings on mouse2, this does work. So we rebind
diff --git a/hui-mouse.el b/hui-mouse.el
index 123ca16..6944b44 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -4,7 +4,7 @@
;;
;; Orig-Date: 04-Feb-89
;;
-;; Copyright (C) 1991-2016 Free Software Foundation, Inc.
+;; Copyright (C) 1991-2017 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -67,6 +67,13 @@ Set it to #'hkey-summarize if you want it to display a
summary of Smart Key beha
:type 'function
:group 'hyperbole-keys)
+(defcustom action-key-modeline-buffer-id-function #'dired-jump
+ "*Function to call when the Action Mouse Key is clicked on the buffer id
portion of a modeline.
+Its default value is #'dired-jump; set it to #'smart-treemacs-modeline
+to use the Treemacs file manager package instead."
+ :type 'function
+ :group 'hyperbole-keys)
+
(defcustom action-key-eol-function #'smart-scroll-up
"*Function run by the Action Key at the end of a line.
Its default value is #'smart-scroll-up."
@@ -88,6 +95,9 @@ Its default value is #'smart-scroll-down."
(defvar hkey-alist
'(
+ ((eq major-mode 'treemacs-mode) .
+ ((smart-treemacs) . (smart-treemacs)))
+ ;;
;; Handle Emacs push buttons in buffers
((and (fboundp 'button-at) (button-at (point))) .
((push-button nil (mouse-event-p last-command-event))
@@ -133,9 +143,12 @@ Its default value is #'smart-scroll-down."
(smart-eolp)) .
((funcall action-key-eol-function) . (funcall assist-key-eol-function)))
;;
- ;; The Smart Menu system provides menus within Emacs on a dumb terminal.
- ;; It is a part of InfoDock, but may also be obtained as a separate
- ;; package. It is not included with Hyperbole.
+ ;; The Smart Menu system is an attractive in-buffer menu system
+ ;; that works on any display system that supports Emacs. It
+ ;; predates Emacs' menu systems; it is a part of InfoDock.
+ ;; It is not included with Hyperbole.
+ ;;
+ ;; This selects or gives help for a menu item.
((eq major-mode 'smart-menu-mode) .
((smart-menu-select) . (smart-menu-help)))
;;
@@ -146,8 +159,7 @@ Its default value is #'smart-scroll-down."
((hbut:at-p) .
((hui:hbut-act 'hbut:current) . (hui:hbut-help 'hbut:current)))
;;
- ;; The Smart Menu system is an attractive in-buffer menu system
- ;; that predates Emacs menu systems; it is included in InfoDock.
+ ;; This potentially displays a Smart Menu.
((and (fboundp 'smart-menu-choose-menu)
(setq hkey-value (and hkey-always-display-menu
(smart-menu-choose-menu)))
@@ -660,8 +672,7 @@ If key is pressed:
(dired-do-deletions))
(t (error "(smart-dired): No Dired expunge function.")))))
(t (hpath:find (smart-dired-pathname-up-to-point)))))
- ((last-line-p)
- (quit-window))
+ ((last-line-p) (quit-window))
(t (hpath:find (dired-get-filename)))))
(defun smart-dired-assist ()
diff --git a/hui-select.el b/hui-select.el
index 6abc237..6474acf 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -136,7 +136,13 @@
(append '(altmath-mode asm-mode csh-mode eiffel-mode ksh-mode
math-mode miranda-mode python-mode pascal-mode sather-mode)
hui-select-text-modes)
- "*List of language major modes which use mostly indentation to define
syntactic structure."
+ "*List of language major modes that use indentation mostly to define
syntactic structure."
+ :type '(repeat (function :tag "Mode"))
+ :group 'hyperbole-commands)
+
+(defcustom hui-select-ignore-quoted-sexp-modes
+ '(debugger-mode emacs-lisp-mode lisp-mode lisp-interaction-mode slime-mode
cider-mode)
+ "*List of language major modes in which to ignore quoted sexpressions for
syntactic matches."
:type '(repeat (function :tag "Mode"))
:group 'hyperbole-commands)
@@ -586,17 +592,20 @@ If an error occurs during syntax scanning, it returns
nil."
(defun hui-select-at-delimited-thing-p ()
"Returns non-nil if point is at a markup pair, list, array/vector, set,
comment or string, else nil.
-The non-nil value returned is the function to call to select that syntactic
unit."
- (setq hkey-value (hui-select-delimited-thing-call #'hui-select-at-p))
- (cond ((eq hkey-value 'hui-select-punctuation)
- (if (hui-select-comment (point))
- (setq hkey-value #'hui-select-comment)
- ;; Else here used to be `hkey-value' but then we are returning a
- ;; value for any punctuation character without knowing if
- ;; it is part of a delimited thing. Nil should be the
- ;; right thing here but need to test this.
- nil))
- (t hkey-value)))
+The non-nil value returned is the function to call to select that syntactic
unit.
+
+Ignores any match if on an Emacs button and instead returns nil."
+ (unless (button-at (point))
+ (setq hkey-value (hui-select-delimited-thing-call #'hui-select-at-p))
+ (cond ((eq hkey-value 'hui-select-punctuation)
+ (if (hui-select-comment (point))
+ (setq hkey-value #'hui-select-comment)
+ ;; Else here used to be `hkey-value' but then we are returning a
+ ;; value for any punctuation character without knowing if
+ ;; it is part of a delimited thing. Nil should be the
+ ;; right thing here.
+ nil))
+ (t hkey-value))))
(defun hui-select-delimited-thing ()
"Selects a markup pair, list, array/vector, set, comment or string at point
and returns t, else nil."
@@ -692,7 +701,7 @@ mail and news reply modes."
(defun hui-select-delimited-thing-call (func)
"Selects a markup pair, list, vector/array, set, comment or string at point
and returns non-nil, else nil.
The non-nil value returned is the function to call to select that syntactic
unit."
- (unless (and (memq major-mode '(emacs-lisp-mode lisp-mode
lisp-interaction-mode slime-mode cider-mode))
+ (unless (and (memq major-mode hui-select-ignore-quoted-sexp-modes)
;; Ignore quoted identifier sexpressions, like #'function
(char-after) (memq (char-after) '(?# ?\')))
(let ((hui-select-char-p)
diff --git a/hui-treemacs.el b/hui-treemacs.el
new file mode 100644
index 0000000..a33b7ce
--- /dev/null
+++ b/hui-treemacs.el
@@ -0,0 +1,221 @@
+;;; hui-treemacs.el --- Hyperbole Smart Key support for the Treemacs file
manager package
+;;
+;; Author: Bob Weiner
+;;
+;; Orig-Date: 19-Nov-17
+;;
+;; Copyright (C) 2017 Free Software Foundation, Inc.
+;; See the "HY-COPY" file for license information.
+;;
+;; This file is part of GNU Hyperbole.
+
+;;; Commentary:
+
+;;; Code:
+;;; ************************************************************************
+;;; Other required Elisp libraries
+;;; ************************************************************************
+
+(eval-and-compile (require 'treemacs nil t))
+
+;;; ************************************************************************
+;;; smart-treemacs functions
+;;; ************************************************************************
+
+;;;###autoload
+(defun smart-treemacs ()
+ "Uses a single key or mouse key to manipulate directory entries.
+
+Invoked via a key press when in treemacs-mode. It assumes that its
+caller has already checked that the key was pressed in an appropriate buffer
+and has moved the cursor there.
+
+If key is pressed:
+ (1) on an entry icon, the treemacs TAB command is run to expand and
+ collapse the entry;
+ (2) elsewhere within an entry line, the item is displayed for editing,
+ normally in another window;
+ (3) on the first line of the buffer (other than the end of line),
+ dired is run on the current directory of this Treemacs;
+ (4) at the end of the first or last line of the buffer,
+ this Treemacs invocation is quit."
+
+ (interactive)
+ (cond ((first-line-p)
+ (if (eolp)
+ (treemacs-toggle)
+ (hact 'link-to-directory default-directory)))
+ ((and (last-line-p) (eolp))
+ (treemacs-toggle))
+ (t (let ((over-icon (and (treemacs--current-button)
+ (= (point) (- (button-start
(treemacs--current-button)) 2))))
+ (result (treemacs-node-buffer-and-position)))
+ (if (and (not over-icon) result (or (bufferp result) (listp
result)))
+ (if (listp result)
+ (hact 'link-to-buffer-tmp (seq-elt result 0) (seq-elt
result 1))
+ ;; (bufferp result)
+ (hact 'link-to-buffer-tmp result))
+ (treemacs-push-button current-prefix-arg))))))
+
+;;;###autoload
+(defun smart-treemacs-modeline ()
+ "Toggle display of Treemacs file viewer based on Smart Action Key click on a
modeline.
+
+When pressed on the Treemacs buffer modeline or Treemacs is displaying
+the default directory of the buffer modeline clicked upon, then
+quit/hide the Treemacs window. Otherwise, display the Treemacs window
+with the default directory of the buffer modeline clicked upon.
+
+Suitable for use as a value of `action-key-modeline-buffer-id-function'."
+ (if (fboundp 'treemacs)
+ (progn
+ (require 'treemacs)
+ (cond
+ ;; Clicked on Treemacs buffer id
+ ((if action-key-depress-window
+ (treemacs--is-treemacs-window? action-key-depress-window)
+ (string-match " Treemacs " (format-mode-line mode-line-format)))
+ ;; Quit/hide treemacs.
+ (treemacs-toggle))
+ ;;
+ ;; Treemacs is visible and displaying the same dir as
+ ;; the default dir of the clicked on modeline.
+ ((and (treemacs--buffer-exists?)
+ (string-equal (expand-file-name default-directory)
+ (with-current-buffer (treemacs--buffer-exists?)
+ default-directory)))
+ ;; Quit/hide treemacs.
+ (treemacs-toggle))
+ ;;
+ ;; Otherwise, invoke treemacs on the default dir of the clicked on
modeline.
+ (t (treemacs))))
+ (error "(smart-treemacs-modeline): Treemacs package is not installed")))
+
+;;; ************************************************************************
+;;; treemacs function updates
+;;; ************************************************************************
+
+;; Add this in treemacs-tags.el
+(defun treemacs--imenu-tag-noselect (file tag-path)
+ "Return a list of the source buffer for FILE and the position of the tag
from TAG-PATH."
+ (let ((tag (car tag-path))
+ (path (cdr tag-path)))
+ (condition-case e
+ (progn
+ (find-file-noselect file)
+ (let ((index (treemacs--get-imenu-index file)))
+ (dolist (path-item path)
+ (setq index (cdr (assoc path-item index))))
+ (-let [(buf pos) (treemacs--pos-from-marker
+ (cdr (--first
+ (equal (car it) tag)
+ index)))]
+ ;; some imenu implementations, like markdown, will only provide
+ ;; a raw buffer position (an int) to move to
+ (list (or buf (get-file-buffer file)) pos))))
+ (error
+ (treemacs--log "Something went wrong when finding tag '%s': %s"
+ (propertize tag 'face 'treemacs-tags-face)
+ e)))))
+
+;; Add this in treemacs-tags.el
+(defun treemacs--tag-noselect (btn)
+ "Return list of tag source buffer and position for BTN for future display."
+ (require 'hmouse-tag) ;; from GNU Hyperbole, adds xref convenience functions
used herein
+ (-let [(tag-buf tag-pos)
+ (treemacs--with-button-buffer btn
+ (-> btn (button-get 'marker)
(treemacs--pos-from-marker)))]
+ (if tag-buf
+ (list tag-buf tag-pos)
+ (-pcase treemacs-goto-tag-strategy
+ [`refetch-index
+ (let (file tag-path)
+ (with-current-buffer (marker-buffer btn)
+ (setq file (treemacs--nearest-path btn)
+ tag-path (treemacs--tags-path-of btn)))
+ (treemacs--imenu-tag-noselect file tag-path))]
+ [`call-xref
+ (let ((xref (xref-definition
+ (treemacs--with-button-buffer btn
+ (treemacs--get-label-of
btn)))))
+ (when xref
+ (list (xref-item-buffer xref) (xref-item-position xref))))]
+ [`issue-warning
+ (treemacs--log "Tag '%s' is located in a buffer that does not exist."
+ (propertize (treemacs--with-button-buffer btn
(treemacs--get-label-of btn)) 'face 'treemacs-tags-face))]
+ [_ (error "[Treemacs] '%s' is an invalid value for
treemacs-goto-tag-strategy" treemacs-goto-tag-strategy)]))))
+
+;; Replace this macro in treemacs-impl.el
+(cl-defmacro treemacs--execute-button-action
+ (&key save-window ensure-window-split split-function window dir-action
file-action tag-action no-match-explanation)
+ "Infrastructure macro for setting up actions on different button states.
+Fetches the currently selected button and verifies it's in the correct state
+based on the given state actions.
+If it isn't it will log NO-MATCH-EXPLANATION, if it is it selects WINDOW (or
+`next-window' if none is given) and splits it with SPLIT-FUNCTION if given.
+DIR-ACTION, FILE-ACTION, and TAG-ACTION are inserted into a `pcase' statement
+matching the buttons state.
+If ENSURE-WINDOW-SPLIT is t treemacs will vertically split the window if
+treemacs is the only window to make sure a buffer is opened next to it, not
+under or below it."
+ (let ((valid-states (list)))
+ (when dir-action
+ (push 'dir-node-open valid-states)
+ (push 'dir-node-closed valid-states))
+ (when file-action
+ (push 'file-node-open valid-states)
+ (push 'file-node-closed valid-states))
+ (when tag-action
+ (push 'tag-node valid-states))
+ `(-when-let (btn (treemacs--current-button))
+ (treemacs--without-following
+ (let* ((state (button-get btn 'state))
+ (current-window (selected-window)))
+ (if (not (memq state ',valid-states))
+ (treemacs--log "%s" ,no-match-explanation)
+ (progn
+ ,@(if ensure-window-split
+ `((when (one-window-p)
+ (save-selected-window
+ (split-window nil nil (if (eq 'left
treemacs-position) 'right 'left))))))
+ (select-window (or ,window (next-window (selected-window) nil
nil)))
+ ,@(if split-function
+ `((funcall ,split-function)
+ (other-window 1)))
+ ;; Return the result of the action
+ (prog1 (pcase state
+ ,@(when dir-action
+ `(((or `dir-node-open `dir-node-closed)
+ ,dir-action)))
+ ,@(when file-action
+ `(((or `file-node-open `file-node-closed)
+ ,file-action)))
+ ,@(when tag-action
+ `((`tag-node
+ ,tag-action)))
+ (_ (error "No match achieved even though button's state
%s was part of the set of valid states %s"
+ state ',valid-states)))
+ (when ,save-window
+ (select-window current-window))))))))))
+
+;; Reload source form of this library so updated version of
+;; `treemacs--execute-button-action' above is used throughout.
+(load "treemacs-interface.el")
+
+;; Add to treemacs-interface.el.
+;;;###autoload
+(defun treemacs-node-buffer-and-position (&optional arg)
+ "Return source buffer or list of buffer and position for the current node
for future display.
+Stay in the selected window and ignore any prefix argument ARG."
+ (interactive "P")
+ (let ((treemacs--no-messages t))
+ (treemacs--execute-button-action
+ :file-action (find-file-noselect (treemacs--safe-button-get btn
'abs-path))
+ :dir-action (find-file-noselect (treemacs--safe-button-get btn 'abs-path))
+ :tag-action (treemacs--tag-noselect btn)
+ :window (selected-window)
+ :save-window t
+ :ensure-window-split nil
+ :no-match-explanation "")))
+
+(provide 'hytreemacs)
diff --git a/hui-window.el b/hui-window.el
index d8dd4ad..63a6fd5 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -127,7 +127,11 @@ of screen control commands."
;; release window.
(prog1 (current-buffer)
(hmouse-pulse-buffer)
- (bury-buffer))))))
+ (bury-buffer))))
+ (treemacs-mode (if (fboundp 'treemacs-node-buffer-and-position)
+ (treemacs-node-buffer-and-position))
+ (error "(hmouse-item-to-window): %s the treemacs package
for item dragging support"
+ (if (fboundp 'treemacs) "Update" "Install")))))
"List of (major-mode lisp-form) lists.
The car of an item must be a major-mode symbol. The cadr of an item
is a Lisp form to evaluate to get the item name at point (typically a
@@ -451,12 +455,12 @@ Signals an error if the buffer is read-only."
"Returns non-nil if last Action Key depress and release were in different
frames.
If free variable `assist-flag' is non-nil, uses Assist Key."
(if assist-flag
- (and (window-valid-p assist-key-depress-window)
- (window-valid-p assist-key-release-window)
+ (and (window-live-p assist-key-depress-window)
+ (window-live-p assist-key-release-window)
(not (eq (window-frame assist-key-depress-window)
(window-frame assist-key-release-window))))
- (and (window-valid-p action-key-depress-window)
- (window-valid-p action-key-release-window)
+ (and (window-live-p action-key-depress-window)
+ (window-live-p action-key-release-window)
(not (eq (window-frame action-key-depress-window)
(window-frame action-key-release-window))))))
@@ -464,27 +468,31 @@ If free variable `assist-flag' is non-nil, uses Assist
Key."
"Returns non-nil if last Action Key depress and release were in different
windows.
If free variable `assist-flag' is non-nil, uses Assist Key."
(if assist-flag
- (and assist-key-depress-window assist-key-release-window
+ (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)))
- (and action-key-depress-window action-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)))))
(defun hmouse-drag-same-window ()
"Returns non-nil if last Action Key depress and release were in the same
window.
If free variable `assist-flag' is non-nil, uses Assist Key."
(if assist-flag
- (and assist-key-depress-window assist-key-release-window
+ (and (window-live-p assist-key-depress-window)
+ (window-live-p assist-key-release-window)
(eq assist-key-depress-window assist-key-release-window))
- (and action-key-depress-window action-key-release-window
+ (and (window-live-p action-key-depress-window)
+ (window-live-p action-key-release-window)
(eq action-key-depress-window action-key-release-window))))
(defun hmouse-drag-outside-all-windows ()
"Returns non-nil if last Action Key release was outside of an Emacs window.
If free variable `assist-flag' is non-nil, uses Assist Key."
- (null (if assist-flag
- assist-key-release-window
- action-key-release-window)))
+ (if assist-flag
+ (and (window-live-p assist-key-depress-window) (not
assist-key-release-window))
+ (and (window-live-p action-key-depress-window) (not
action-key-release-window))))
(defun hmouse-drag-item-to-display (&optional new-window)
"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.
@@ -501,7 +509,7 @@ not on an item, then nil.
See `hmouse-drag-item-mode-forms' for how to allow for draggable
items in other modes."
- (let* ((buf (and action-key-depress-window (window-buffer
action-key-depress-window)))
+ (let* ((buf (and (window-live-p action-key-depress-window) (window-buffer
action-key-depress-window)))
(mode (and buf (cdr (assq 'major-mode (buffer-local-variables buf))))))
(when (and buf (with-current-buffer buf
;; Point must be on an item, not after one
@@ -621,9 +629,9 @@ If free variable `assist-flag' is non-nil, uses Assist Key."
action-key-release-args))
(wd (smart-window-of-coords depress-args))
(wr (smart-window-of-coords release-args))
- (right-side-ln (and wd (1- (nth 2 (window-edges wd)))))
- (last-press-x (and wd depress-args (hmouse-x-coord
depress-args)))
- (last-release-x (and wr release-args (hmouse-x-coord
release-args))))
+ (right-side-ln (and (window-live-p wd) (1- (nth 2 (window-edges
wd)))))
+ (last-press-x (and (window-live-p wd) depress-args
(hmouse-x-coord depress-args)))
+ (last-release-x (and (window-live-p wr) release-args
(hmouse-x-coord release-args))))
(and last-press-x last-release-x right-side-ln
(/= last-press-x last-release-x)
(not (<= (abs (- right-side-ln (frame-width))) 5))
@@ -826,8 +834,9 @@ item, this moves the menu buffer itself to the release
location."
;; create a new frame and window.
(w2 (or action-key-release-window (frame-selected-window
(hycontrol-make-frame))))
(buf-name)
- (w1-ref))
- (when (and w1 w2)
+ (w1-ref)
+ (pos))
+ (when (and (window-live-p w1) (window-live-p w2))
(unwind-protect
(progn (select-window w1)
(if (eq (posn-area (event-start action-key-depress-args))
'header-line)
@@ -844,18 +853,25 @@ item, this moves the menu buffer itself to the release
location."
(when (and new-window action-key-release-window)
(hmouse-split-window))))
(unwind-protect
- (cond ((not w1-ref)
- (if (not (window-live-p w1))
- (error "(hmouse-item-to-window): Action Mouse Key item drag
must start in a live window")
- (error "(hmouse-item-to-window): No item to display at start
of Action Mouse Key drag")))
- ((buffer-live-p w1-ref)
- (set-window-buffer w2 w1-ref)
- (set-buffer w1-ref)
- (hmouse-pulse-buffer))
- ((and (stringp w1-ref) (file-readable-p w1-ref))
- (set-window-buffer w2 (set-buffer (find-file-noselect w1-ref)))
- (hmouse-pulse-buffer))
- (t (error "(hmouse-item-to-window): Cannot find or read `%s'"
w1-ref)))
+ (progn
+ (when (and w1-ref (not (stringp w1-ref)) (sequencep w1-ref))
+ ;; w1-ref is a list or vector of `buffer' and `position' elements.
+ (setq pos (seq-elt w1-ref 1)
+ w1-ref (seq-elt w1-ref 0)))
+ (cond ((not w1-ref)
+ (if (not (window-live-p w1))
+ (error "(hmouse-item-to-window): Action Mouse Key item
drag must start in a live window")
+ (error "(hmouse-item-to-window): No item to display at start
of Action Mouse Key drag")))
+ ((buffer-live-p w1-ref)
+ (set-window-buffer w2 w1-ref)
+ (set-buffer w1-ref))
+ ((and (stringp w1-ref) (file-readable-p w1-ref))
+ (set-window-buffer w2 (set-buffer (find-file-noselect
w1-ref))))
+ (t (error "(hmouse-item-to-window): Cannot find or read `%s'"
w1-ref)))
+ (if pos
+ (progn (goto-char pos)
+ (hmouse-pulse-line))
+ (hmouse-pulse-buffer)))
;; If helm is active, end in the minibuffer window.
(if (smart-helm-alive-p)
(smart-helm-to-minibuffer)))))
@@ -881,7 +897,7 @@ If the Action Key is:
(if w (select-window w))
(cond ((hmouse-modeline-click)
(cond ((hmouse-emacs-at-modeline-buffer-id-p)
- (dired-jump))
+ (funcall action-key-modeline-buffer-id-function))
((hmouse-release-left-edge) (bury-buffer))
((hmouse-release-right-edge)
(if (eq major-mode 'Info-mode)
@@ -925,18 +941,16 @@ If the Assist Key is:
(t (hmouse-modeline-resize-window)))))
(defun hmouse-modeline-click ()
- "Returns non-nil if last Smart Key depress and release were at a single
point in a modeline."
+ "Returns non-nil if last Smart Key depress and release were at a single
point (less than drag tolerance apart) in a modeline."
(and (hmouse-modeline-release) (hmouse-modeline-depress)
- (equal (if assist-flag assist-key-depress-position
action-key-depress-position)
- (if assist-flag assist-key-release-position
action-key-release-position))))
+ (not (or (hmouse-drag-horizontally) (hmouse-drag-vertically)
(hmouse-drag-diagonally)))))
(defun hmouse-emacs-modeline-event-p (event)
"GNU Emacs: Returns non-nil if EVENT happened on a window mode line."
(or (and (eventp event) (eq (posn-area (event-start event)) 'mode-line))
;; If drag release was to an unselected frame mode-line, on
;; click-to-focus systems, the release event will not include
- ;; the mode-line area when release was on the mode-line, so
- ;; manually compute if that was the location.
+ ;; the mode-line area, so manually compute if that was the location.
(let* ((w (smart-window-of-coords event))
;; Do all calculations in pixels if possible.
(line-height (if w (frame-char-height (window-frame w))))
@@ -1210,7 +1224,7 @@ of the Smart Key."
)))
(defun hmouse-x-coord (args)
- "Returns x coordinate in characters from window system dependent ARGS."
+ "Returns x coordinate in characters from window system dependent ARGS or
nil."
(let ((x (if (markerp args)
(save-excursion
(hypb:goto-marker args)
@@ -1231,10 +1245,10 @@ of the Smart Key."
("xterm" . (car args))
("next" . (nth 1 args))
)))))))
- (if (integerp x) x (error "(hmouse-x-coord): invalid X coord: %s" x))))
+ (if (integerp x) x)))
(defun hmouse-y-coord (args)
- "Returns y coordinate in frame lines from window system dependent ARGS."
+ "Returns y coordinate in frame lines from window system dependent ARGS or
nil."
(let ((y (eval (cdr (assoc (hyperb:window-system)
'(("emacs" . (progn (if (eventp args) (setq args
(event-start args)))
(cond ((posnp args)
@@ -1250,8 +1264,7 @@ of the Smart Key."
("xterm" . (nth 1 args))
("next" . (nth 2 args))
))))))
- (if (integerp y) y (error "(hmouse-y-coord): invalid Y coord: %s" y))))
-
+ (if (integerp y) y)))
;;; ************************************************************************
;;; Private variables
diff --git a/hui.el b/hui.el
index d1e9368..d32ea3d 100644
--- a/hui.el
+++ b/hui.el
@@ -591,12 +591,12 @@ DEFAULT-ACTYPE may be a valid symbol or symbol-name."
;; Commented error out since some people want to be able to create
;; buttons within files which they have purposely marked read-only.
;; (setq err
- ;; (format "(ebut-modify): You are not allowed to modify '%s'."
+ ;; (format "(ebut-modify): Hyperbole lacks permission to write to
'%s'."
;; (file-name-nondirectory buffer-file-name))))
(if buffer-read-only
(setq err
- (format "Button buffer '%s' is read-only. Use {%s} to change it."
- (buffer-name but-buf) (hmouse-read-only-toggle-key))))
+ (format "(%s) Hyperbole button buffer '%s' cannot be edited. Use
{%s} to enable edits."
+ func-name (buffer-name but-buf)
(hmouse-read-only-toggle-key))))
(set-buffer obuf)
(if err (progn (pop-to-buffer but-buf) (hypb:error err)))))
diff --git a/hversion.el b/hversion.el
index 2e0b217..0110b88 100644
--- a/hversion.el
+++ b/hversion.el
@@ -23,7 +23,7 @@
;;; Public variables
;;; ************************************************************************
-(defconst hyperb:version "7.0.0" "GNU Hyperbole revision number.")
+(defconst hyperb:version "7.0.1" "GNU Hyperbole revision number.")
;;;###autoload
(defvar hyperb:microcruft-os-p
diff --git a/hypb.el b/hypb.el
index 673bed9..0076de6 100644
--- a/hypb.el
+++ b/hypb.el
@@ -220,7 +220,7 @@ Global keymap is used unless optional KEYMAP is given."
(defun hypb:error (&rest args)
"Signals an error typically to be caught by `hyperbole'."
- (let ((msg (apply 'format args)))
+ (let ((msg (if (< (length args) 2) (car args) (apply 'format args))))
(put 'error 'error-message msg)
(error msg)))
diff --git a/hyperbole-pkg.el b/hyperbole-pkg.el
index 8aa4b58..b9e11e4 100644
--- a/hyperbole-pkg.el
+++ b/hyperbole-pkg.el
@@ -1,5 +1,5 @@
;; -*- no-byte-compile: t -*-
-(define-package "hyperbole" "7.0.0" "GNU Hyperbole: The Everyday Hypertextual
Information Manager"
+(define-package "hyperbole" "7.0.1" "GNU Hyperbole: The Everyday Hypertextual
Information Manager"
'((emacs "24.4"))
:url "http://www.gnu.org/software/hyperbole"
:keywords '("comm" "convenience" "files" "frames" "hypermedia" "languages"
diff --git a/hyperbole.el b/hyperbole.el
index 1a617e2..5834858 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -6,7 +6,7 @@
;; Maintainer: Bob Weiner <address@hidden> and Mats Lidell
<address@hidden>
;; Created: 06-Oct-92 at 11:52:51
;; Released: 24-Oct-17
-;; Version: 7.0.0
+;; Version: 7.0.1
;; Keywords: comm, convenience, files, frames, hypermedia, languages,
mail, matching, mouse, multimedia, outlines, tools, wp
;; Package: hyperbole
;; Package-Requires: ((emacs "24.4"))
diff --git a/hyrolo.el b/hyrolo.el
index f8b6fc3..00e3f39 100644
--- a/hyrolo.el
+++ b/hyrolo.el
@@ -79,7 +79,7 @@ executable must be found as well (for Oauth security)."
;;;###autoload
(defun hyrolo-initialize-file-list ()
- "Initialize the list of files to use for HyRolo searches."
+ "Initialize the list of files used for HyRolo searches."
(interactive)
(let* ((gcontacts (if (hyrolo-google-contacts-p)
google-contacts-buffer-name))
(ms "c:/_rolo.otl")
@@ -89,9 +89,10 @@ executable must be found as well (for Oauth security)."
(list ms bbdb-file gcontacts)
(list "~/.rolo.otl" bbdb-file gcontacts))
(if hyperb:microcruft-os-p (list ms gcontacts) (list
unix gcontacts))))))
- (when (called-interactively-p 'interactive)
- (message "HyRolo Search List: %S" list))
- list))
+ (setq hyrolo-file-list list)
+ (when (called-interactively-p 'interactive)
+ (message "HyRolo Search List: %S" list))
+ list))
(defvar hyrolo-file-list (hyrolo-initialize-file-list)
"*List of files containing rolo entries.
@@ -990,8 +991,8 @@ Returns number of matching entries found."
;; Derived from google-contacts.el.
(defun hyrolo-google-contacts-insert-generic-list (items title &optional
get-value)
"Insert a text for rendering ITEMS with TITLE.
-Use GET-VALUE to get the value from the cdr of the item,
-otherwise just put the cdr of item."
+Use GET-VALUE fuction to retrieve the value from the cdr of the item,
+otherwise just use the cdr of the item."
(when items
(insert "\n" (google-contacts-margin-element) (concat title ":\n"))
(dolist (item items)
@@ -1008,15 +1009,19 @@ otherwise just put the cdr of item."
(list (read-string "Look for: " (car google-contacts-history)
'google-contacts-history)
current-prefix-arg))
- (let ((buffer (google-contacts-make-buffer))
- (token (google-contacts-oauth-token))
- (google-contacts-expire-time (if force-refresh 0
google-contacts-expire-time))
- (inhibit-read-only t))
+ ;; Without this first let binding, the user would be prompted for
+ ;; his passphrase on every hyrolo search. This way it is cached.
+ (let* ((plstore-cache-passphrase-for-symmetric-encryption t)
+ (buffer (google-contacts-make-buffer))
+ (token (google-contacts-oauth-token))
+ (google-contacts-expire-time (if force-refresh 0
google-contacts-expire-time))
+ (inhibit-read-only t))
(with-current-buffer buffer
(setq google-contacts-query-string query-string)
- (hyrolo-google-contacts-insert-data (xml-get-children
(google-contacts-data query-string token)
- 'entry)
- token "* "))))
+ (hyrolo-google-contacts-insert-data
+ (xml-get-children (google-contacts-data query-string token)
+ 'entry)
+ token "* "))))
;;; ************************************************************************
;;; Public functions
diff --git a/man/hyperbole.html b/man/hyperbole.html
index a774f55..fffb0b2 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This manual is for GNU Hyperbole
-(Edition 7.0.0, Published November 15, 2017).
+(Edition 7.0.1, Published November 21, 2017).
Copyright (C) 1989-2017 Free Software Foundation, Inc.
@@ -146,6 +146,7 @@ ul.no-bullet {list-style: none}
<li><a name="toc-Displaying-Buffers-1"
href="#Displaying-Buffers">2.7.4.2 Displaying Buffers</a></li>
<li><a name="toc-Cloning-Windows-1" href="#Cloning-Windows">2.7.4.3
Cloning Windows</a></li>
<li><a name="toc-Displaying-File-and-Buffer-Items-1"
href="#Displaying-File-and-Buffer-Items">2.7.4.4 Displaying File and Buffer
Items</a></li>
+ <li><a name="toc-Keyboard-Drags-1" href="#Keyboard-Drags">2.7.4.5
Keyboard Drags</a></li>
</ul></li>
</ul></li>
</ul></li>
@@ -259,46 +260,47 @@ ul.no-bullet {list-style: none}
</ul></li>
<li><a name="toc-Smart-Keyboard-Keys-1" href="#Smart-Keyboard-Keys">E.2
Smart Keyboard Keys</a>
<ul class="no-bullet">
- <li><a name="toc-Smart-Key-_002d-Emacs-Pushbuttons-1"
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.1 Smart Key - Emacs
Pushbuttons</a></li>
- <li><a name="toc-Smart-Key-_002d-Argument-Completion-1"
href="#Smart-Key-_002d-Argument-Completion">E.2.2 Smart Key - Argument
Completion</a></li>
- <li><a name="toc-Smart-Key-_002d-ID-Edit-Mode-1"
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.3 Smart Key - ID Edit Mode</a></li>
- <li><a
name="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.4 Smart
Key - Emacs Cross-references (Xrefs)</a></li>
- <li><a name="toc-Smart-Key-_002d-Smart-Scrolling-1"
href="#Smart-Key-_002d-Smart-Scrolling">E.2.5 Smart Key - Smart
Scrolling</a></li>
- <li><a name="toc-Smart-Key-_002d-Smart-Menus-1"
href="#Smart-Key-_002d-Smart-Menus">E.2.6 Smart Key - Smart Menus</a></li>
- <li><a name="toc-Smart-Key-_002d-Dired-Mode-1"
href="#Smart-Key-_002d-Dired-Mode">E.2.7 Smart Key - Dired Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Hyperbole-Buttons-1"
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.8 Smart Key - Hyperbole
Buttons</a></li>
- <li><a name="toc-Smart-Key-_002d-View-Mode-1"
href="#Smart-Key-_002d-View-Mode">E.2.9 Smart Key - View Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Delimited-Things-1"
href="#Smart-Key-_002d-Delimited-Things">E.2.10 Smart Key - Delimited
Things</a></li>
- <li><a name="toc-Smart-Key-_002d-The-Koutliner-1"
href="#Smart-Key-_002d-The-Koutliner">E.2.11 Smart Key - The Koutliner</a></li>
- <li><a name="toc-Smart-Key-_002d-RDB-Mode-1"
href="#Smart-Key-_002d-RDB-Mode">E.2.12 Smart Key - RDB Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Help-Buffers-1"
href="#Smart-Key-_002d-Help-Buffers">E.2.13 Smart Key - Help Buffers</a></li>
- <li><a name="toc-Smart-Key-_002d-Pages-Directory-Mode-1"
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.14 Smart Key - Pages Directory
Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1"
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.15 Smart Key - Identifier Menu
Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-C-Source-Code-1"
href="#Smart-Key-_002d-C-Source-Code">E.2.16 Smart Key - C Source Code</a></li>
- <li><a name="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1"
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.17 Smart Key - C++ Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Assembly-Source-Code-1"
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.18 Smart Key - Assembly Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Lisp-Source-Code-1"
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.19 Smart Key - Lisp Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Java-Source-Code-1"
href="#Smart-Key-_002d-Java-Source-Code">E.2.20 Smart Key - Java Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-JavaScript-Source-Code-1"
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.21 Smart Key - JavaScript
Source Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Python-Source-Code-1"
href="#Smart-Key-_002d-Python-Source-Code">E.2.22 Smart Key - Python Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1"
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.23 Smart Key -
Objective-C Source Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Fortran-Source-Code-1"
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.24 Smart Key - Fortran Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Occurrence-Matches-1"
href="#Smart-Key-_002d-Occurrence-Matches">E.2.25 Smart Key - Occurrence
Matches</a></li>
- <li><a name="toc-Smart-Key-_002d-Calendar-Mode-1"
href="#Smart-Key-_002d-Calendar-Mode">E.2.26 Smart Key - Calendar Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Man-Page-Apropos-1"
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.27 Smart Key - Man Page
Apropos</a></li>
- <li><a name="toc-Smart-Key-_002d-Emacs-Outline-Mode-1"
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.28 Smart Key - Emacs Outline
Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Info-Manuals-1"
href="#Smart-Key-_002d-Info-Manuals">E.2.29 Smart Key - Info Manuals</a></li>
- <li><a name="toc-Smart-Key-_002d-Email-Composers-1"
href="#Smart-Key-_002d-Email-Composers">E.2.30 Smart Key - Email
Composers</a></li>
- <li><a name="toc-Smart-Key-_002d-GNUS-Newsreader-1"
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.31 Smart Key - GNUS
Newsreader</a></li>
- <li><a name="toc-Smart-Key-_002d-Buffer-Menus-1"
href="#Smart-Key-_002d-Buffer-Menus">E.2.32 Smart Key - Buffer Menus</a></li>
- <li><a name="toc-Smart-Key-_002d-Tar-File-Mode-1"
href="#Smart-Key-_002d-Tar-File-Mode">E.2.33 Smart Key - Tar File Mode</a></li>
- <li><a name="toc-Smart-Key-_002d-Man-Pages-1"
href="#Smart-Key-_002d-Man-Pages">E.2.34 Smart Key - Man Pages</a></li>
- <li><a name="toc-Smart-Key-_002d-WWW-URLs-1"
href="#Smart-Key-_002d-WWW-URLs">E.2.35 Smart Key - WWW URLs</a></li>
- <li><a name="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1"
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.36 Smart Key - HyRolo Match
Buffers</a></li>
- <li><a name="toc-Smart-Key-_002d-Image-Thumbnails-1"
href="#Smart-Key-_002d-Image-Thumbnails">E.2.37 Smart Key - Image
Thumbnails</a></li>
- <li><a name="toc-Smart-Key-_002d-Gomoku-Game-1"
href="#Smart-Key-_002d-Gomoku-Game">E.2.38 Smart Key - Gomoku Game</a></li>
- <li><a name="toc-Smart-Key-_002d-The-OO_002dBrowser-1"
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.39 Smart Key - The
OO-Browser</a></li>
- <li><a name="toc-Smart-Key-_002d-Default-Context-1"
href="#Smart-Key-_002d-Default-Context">E.2.40 Smart Key - Default
Context</a></li>
+ <li><a name="toc-Smart-Key-_002d-Treemacs-1"
href="#Smart-Key-_002d-Treemacs">E.2.1 Smart Key - Treemacs</a></li>
+ <li><a name="toc-Smart-Key-_002d-Emacs-Pushbuttons-1"
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.2 Smart Key - Emacs
Pushbuttons</a></li>
+ <li><a name="toc-Smart-Key-_002d-Argument-Completion-1"
href="#Smart-Key-_002d-Argument-Completion">E.2.3 Smart Key - Argument
Completion</a></li>
+ <li><a name="toc-Smart-Key-_002d-ID-Edit-Mode-1"
href="#Smart-Key-_002d-ID-Edit-Mode">E.2.4 Smart Key - ID Edit Mode</a></li>
+ <li><a
name="toc-Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029">E.2.5 Smart
Key - Emacs Cross-references (Xrefs)</a></li>
+ <li><a name="toc-Smart-Key-_002d-Smart-Scrolling-1"
href="#Smart-Key-_002d-Smart-Scrolling">E.2.6 Smart Key - Smart
Scrolling</a></li>
+ <li><a name="toc-Smart-Key-_002d-Smart-Menus-1"
href="#Smart-Key-_002d-Smart-Menus">E.2.7 Smart Key - Smart Menus</a></li>
+ <li><a name="toc-Smart-Key-_002d-Dired-Mode-1"
href="#Smart-Key-_002d-Dired-Mode">E.2.8 Smart Key - Dired Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Hyperbole-Buttons-1"
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.9 Smart Key - Hyperbole
Buttons</a></li>
+ <li><a name="toc-Smart-Key-_002d-View-Mode-1"
href="#Smart-Key-_002d-View-Mode">E.2.10 Smart Key - View Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Delimited-Things-1"
href="#Smart-Key-_002d-Delimited-Things">E.2.11 Smart Key - Delimited
Things</a></li>
+ <li><a name="toc-Smart-Key-_002d-The-Koutliner-1"
href="#Smart-Key-_002d-The-Koutliner">E.2.12 Smart Key - The Koutliner</a></li>
+ <li><a name="toc-Smart-Key-_002d-RDB-Mode-1"
href="#Smart-Key-_002d-RDB-Mode">E.2.13 Smart Key - RDB Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Help-Buffers-1"
href="#Smart-Key-_002d-Help-Buffers">E.2.14 Smart Key - Help Buffers</a></li>
+ <li><a name="toc-Smart-Key-_002d-Pages-Directory-Mode-1"
href="#Smart-Key-_002d-Pages-Directory-Mode">E.2.15 Smart Key - Pages Directory
Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1"
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.16 Smart Key - Identifier Menu
Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-C-Source-Code-1"
href="#Smart-Key-_002d-C-Source-Code">E.2.17 Smart Key - C Source Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-C_002b_002b-Source-Code-1"
href="#Smart-Key-_002d-C_002b_002b-Source-Code">E.2.18 Smart Key - C++ Source
Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Assembly-Source-Code-1"
href="#Smart-Key-_002d-Assembly-Source-Code">E.2.19 Smart Key - Assembly Source
Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Lisp-Source-Code-1"
href="#Smart-Key-_002d-Lisp-Source-Code">E.2.20 Smart Key - Lisp Source
Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Java-Source-Code-1"
href="#Smart-Key-_002d-Java-Source-Code">E.2.21 Smart Key - Java Source
Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-JavaScript-Source-Code-1"
href="#Smart-Key-_002d-JavaScript-Source-Code">E.2.22 Smart Key - JavaScript
Source Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Python-Source-Code-1"
href="#Smart-Key-_002d-Python-Source-Code">E.2.23 Smart Key - Python Source
Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Objective_002dC-Source-Code-1"
href="#Smart-Key-_002d-Objective_002dC-Source-Code">E.2.24 Smart Key -
Objective-C Source Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Fortran-Source-Code-1"
href="#Smart-Key-_002d-Fortran-Source-Code">E.2.25 Smart Key - Fortran Source
Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Occurrence-Matches-1"
href="#Smart-Key-_002d-Occurrence-Matches">E.2.26 Smart Key - Occurrence
Matches</a></li>
+ <li><a name="toc-Smart-Key-_002d-Calendar-Mode-1"
href="#Smart-Key-_002d-Calendar-Mode">E.2.27 Smart Key - Calendar Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Man-Page-Apropos-1"
href="#Smart-Key-_002d-Man-Page-Apropos">E.2.28 Smart Key - Man Page
Apropos</a></li>
+ <li><a name="toc-Smart-Key-_002d-Emacs-Outline-Mode-1"
href="#Smart-Key-_002d-Emacs-Outline-Mode">E.2.29 Smart Key - Emacs Outline
Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Info-Manuals-1"
href="#Smart-Key-_002d-Info-Manuals">E.2.30 Smart Key - Info Manuals</a></li>
+ <li><a name="toc-Smart-Key-_002d-Email-Composers-1"
href="#Smart-Key-_002d-Email-Composers">E.2.31 Smart Key - Email
Composers</a></li>
+ <li><a name="toc-Smart-Key-_002d-GNUS-Newsreader-1"
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.32 Smart Key - GNUS
Newsreader</a></li>
+ <li><a name="toc-Smart-Key-_002d-Buffer-Menus-1"
href="#Smart-Key-_002d-Buffer-Menus">E.2.33 Smart Key - Buffer Menus</a></li>
+ <li><a name="toc-Smart-Key-_002d-Tar-File-Mode-1"
href="#Smart-Key-_002d-Tar-File-Mode">E.2.34 Smart Key - Tar File Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Man-Pages-1"
href="#Smart-Key-_002d-Man-Pages">E.2.35 Smart Key - Man Pages</a></li>
+ <li><a name="toc-Smart-Key-_002d-WWW-URLs-1"
href="#Smart-Key-_002d-WWW-URLs">E.2.36 Smart Key - WWW URLs</a></li>
+ <li><a name="toc-Smart-Key-_002d-HyRolo-Match-Buffers-1"
href="#Smart-Key-_002d-HyRolo-Match-Buffers">E.2.37 Smart Key - HyRolo Match
Buffers</a></li>
+ <li><a name="toc-Smart-Key-_002d-Image-Thumbnails-1"
href="#Smart-Key-_002d-Image-Thumbnails">E.2.38 Smart Key - Image
Thumbnails</a></li>
+ <li><a name="toc-Smart-Key-_002d-Gomoku-Game-1"
href="#Smart-Key-_002d-Gomoku-Game">E.2.39 Smart Key - Gomoku Game</a></li>
+ <li><a name="toc-Smart-Key-_002d-The-OO_002dBrowser-1"
href="#Smart-Key-_002d-The-OO_002dBrowser">E.2.40 Smart Key - The
OO-Browser</a></li>
+ <li><a name="toc-Smart-Key-_002d-Default-Context-1"
href="#Smart-Key-_002d-Default-Context">E.2.41 Smart Key - Default
Context</a></li>
</ul></li>
</ul></li>
<li><a name="toc-Suggestion-or-Bug-Reporting-1"
href="#Suggestion-or-Bug-Reporting">Appendix F Suggestion or Bug
Reporting</a></li>
@@ -338,8 +340,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
-Edition 7.0.0
-Printed November 15, 2017.
+Edition 7.0.1
+Printed November 21, 2017.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -488,6 +490,8 @@ Dragging Buffers, Windows and Items
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
+<tr><td align="left" valign="top">• <a href="#Keyboard-Drags">Keyboard
Drags</a>:</td><td> </td><td align="left" valign="top">
+</td></tr>
<tr><th colspan="3" align="left" valign="top"><pre class="menu-comment">
Buttons
@@ -688,7 +692,9 @@ Smart Mouse Keys
Smart Keyboard Keys
-</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons">Smart Key - Emacs
Pushbuttons</a>:</td><td> </td><td align="left" valign="top">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Treemacs">Smart Key -
Treemacs</a>:</td><td> </td><td align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons">Smart Key - Emacs
Pushbuttons</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Argument-Completion">Smart Key - Argument
Completion</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
@@ -782,7 +788,7 @@ Next: <a href="#Smart-Keys" accesskey="n" rel="next">Smart
Keys</a>, Previous: <
<h2 class="chapter">1 Introduction</h2>
<p>This edition of the GNU Hyperbole Manual is for use with any version
-7.0.0 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
+7.0.1 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
or higher. It will trigger an error if your Emacs is older.
</p>
<p>This chapter summarizes the structure of the rest of the manual,
@@ -1565,8 +1571,8 @@ kill (delete) the thing.
<a name="index-cut-region"></a>
<a name="index-copy-region"></a>
<a name="index-paste-region"></a>
-<p>Even better are Smart Mouse Key drags which let you copy or move
-delimited things in one operation without even highlighting them. To
+<p>Even better are Smart Mouse Key thing drags which let you copy or move
+delimited things in one operation without having to select a region. To
copy, simply drag with the Action Key from a thing’s opening delimiter
and release somewhere outside of the thing, either within the same
window or within another window. The thing will be copied to the
@@ -1575,9 +1581,6 @@ same drag but with the Assist Mouse Key. Ensure that you
do not move
any explicit buttons from one buffer to another as that does not
work.
</p>
-<p>Try out some of these operations in HTML or source code files to see
-how they can speed your editing.
-</p>
<p>Hyperbole also binds two convenience keys for working with things.
</p>
<a name="index-C_002dc-RET"></a>
@@ -1644,6 +1647,8 @@ you can click anywhere on the buffer identifier.
</li><li> Buffer ID Element
<a name="index-dired"></a>
+<a name="index-directory-editor"></a>
+<a name="index-dired_002djump"></a>
<a name="index-modeline_002c-dired"></a>
<a name="index-buffer-id"></a>
<a name="index-modeline_002c-buffer-id"></a>
@@ -1655,11 +1660,21 @@ Then Action Key clicks on directory items in the dired
buffer display the
items selected in other windows. An Action Key drag from an item to
another window displays the item in that window.
</p>
-<p>An Action Key click on the first line in a dired buffer which contains the
-current directory path, specifically on any ancestor part of the path (the
-part to the left of the click point), starts another dired session on the
-ancestor directory. Click at the end of this line to end the dired session
-(bury its buffer).
+<p>An Action Key click on the first line in a dired buffer which contains
+the current directory path, specifically on any ancestor part of the
+path (the part to the left of the click point), starts another dired
+session on the ancestor directory. Click at the end of this line or
+on the last line to end the dired session (bury its buffer).
+</p>
+<a name="index-Treemacs"></a>
+<a name="index-file-viewer_002c-Treemacs"></a>
+<p>If you use the Treemacs file viewer Emacs package, you can configure
Hyperbole
+to use this instead of Dired when you click on a modeline buffer id.
+</p>
+<p>Since this is a customization option, it may be change permanently like so.
+Use <kbd>{M-x customize-set-variable <span class="key">RET</span>
action-key-modeline-buffer-id-function <span class="key">RET</span>}</kbd>.
+Change the value to <code>smart-treemacs-modeline</code>. Then press <tt
class="key">RET</tt>. To change it back
+to Hyperbole’s default, use the value, <code>dired-jump</code>.
</p>
</li><li> Large Blank Area
@@ -1724,25 +1739,16 @@ use that with the following in your Emacs
initialization file:
To set it back to the default use:
<code>(setq action-key-modeline-function #'hmouse-context-menu)</code>.
</p>
-<a name="index-dired_002djump"></a>
<a name="index-hui_002dmenu_002dscreen_002dcommands"></a>
-<a name="index-directory-editor"></a>
-<a name="index-dired-1"></a>
<a name="index-modeline_002c-screen-command-menu"></a>
<p>The default <code>assist-key-modeline-function</code> is to pop up a menu of
convenient screen commands that lets you select buffers grouped by
major mode, use HyControl, or jump to specific windows, window
-configurations or frames. If you would prefer it runs the directory
-editor <code>dired</code> on the directory associated with the window of the
-modeline press, use this: <code>(setq assist-key-modeline-function
#'dired-jump)</code>.
-To set it back to the default use:
-<code>(setq assist-key-modeline-function #'hui-menu-screen-commands)</code>.
+configurations or frames.
</p>
-<p>These variables may also be changed permanently with the Emacs
-interactive customization interface. Use <kbd>{M-x customize-variable
-<span class="key">RET</span> assist-key-modeline-function <span
class="key">RET</span>}</kbd>. In the Assist
-Modeline Function text field that appears, change the value
-to <code>dired-jump</code>. Then press the “Apply and Save”
button.
+<p>Since these are customization options, they may be change permanently like
so.
+Use <kbd>{M-x customize-set-variable <span class="key">RET</span>
assist-key-modeline-function <span class="key">RET</span>}</kbd>.
+Change the value to your desired command. Then press <tt class="key">RET</tt>.
</p></li></ul>
<hr>
@@ -1877,6 +1883,8 @@ locations with drags. Below we explore these drag
actions.
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Displaying-File-and-Buffer-Items" accesskey="4">Displaying File and
Buffer Items</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
+<tr><td align="left" valign="top">• <a href="#Keyboard-Drags"
accesskey="5">Keyboard Drags</a>:</td><td> </td><td align="left"
valign="top">
+</td></tr>
</table>
<hr>
@@ -1944,26 +1952,91 @@ unless it is the only window in that frame.
<a name="Displaying-File-and-Buffer-Items"></a>
<div class="header">
<p>
-Previous: <a href="#Cloning-Windows" accesskey="p" rel="prev">Cloning
Windows</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging
Buffers</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
+Next: <a href="#Keyboard-Drags" accesskey="n" rel="next">Keyboard Drags</a>,
Previous: <a href="#Cloning-Windows" accesskey="p" rel="prev">Cloning
Windows</a>, Up: <a href="#Dragging-Buffers" accesskey="u" rel="up">Dragging
Buffers</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Displaying-File-and-Buffer-Items-1"></a>
<h4 class="subsubsection">2.7.4.4 Displaying File and Buffer Items</h4>
<a name="index-dired-item-drag"></a>
<a name="index-buffer-menu-item-drag"></a>
+<a name="index-Treemacs-item-drag"></a>
<a name="index-drag_002c-dired-item"></a>
<a name="index-drag_002c-buffer-menu-item"></a>
-<p>You can do the same thing with items in dired, buffer menu and ibuffer menus
-rather than buffers themselves. Drag with the Action Mouse Key and the
selected
-item will be displayed in any Emacs window in which you release. Drag outside
-Emacs and it will be displayed in a new frame.
+<a name="index-drag_002c-Treemacs-item"></a>
+<p>You can do the same thing with items in dired, buffer menu and ibuffer menu
+listing buffers rather than buffers themselves. Drag with the Action Mouse Key
+and the selected item will be displayed in any Emacs window in which you
+release. Drag outside Emacs and it will be displayed in a new frame. To
+display the last item you want, press the Action Key on it and it will display
+within the listing window itself. (If you use the Treemacs file viewer
package,
+item dragging works there as well). Remember that you can emulate these drags
+from the keyboard when needed, see <a href="#Smart-Mouse-Key-Drags">Smart
Mouse Key Drags</a>.
</p>
<p>So now you can put a bunch of buffers and files on your screen wherever
you like. Typically, a brief visual pulse is shown first at the source item
and
-then in the whole destination window, to help you see that the transfer has
been
+then in the destination window, to help you see that the transfer has been
made. An Assist Key Drag will move the the item list buffer to the
destination (swapping buffers), just as it does with other buffers.
</p>
+<hr>
+<a name="Keyboard-Drags"></a>
+<div class="header">
+<p>
+Previous: <a href="#Displaying-File-and-Buffer-Items" accesskey="p"
rel="prev">Displaying File and Buffer Items</a>, Up: <a
href="#Dragging-Buffers" accesskey="u" rel="up">Dragging Buffers</a> [<a
href="#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a
href="#Key-Index" title="Index" rel="index">Index</a>]</p>
+</div>
+<a name="Keyboard-Drags-1"></a>
+<h4 class="subsubsection">2.7.4.5 Keyboard Drags</h4>
+
+<a name="index-M_002do"></a>
+<a name="index-C_002du-M_002do"></a>
+<a name="index-C_002dx-o"></a>
+<a name="index-hkey_002doperate"></a>
+<a name="index-drag-emulation"></a>
+<a name="index-emulation_002c-drag"></a>
+<a name="index-keyboard-drags"></a>
+<p>If you run Emacs under a window system and there is no prior key binding
+on <kbd>{M-o}</kbd> when you load Hyperbole, then many Action Key drags can be
+emulated from the keyboard. To do so, press <kbd>{M-o}</kbd>, the
+<code>hkey-operate</code> command, at the button source location, move
+to the link destination, e.g. with <kbd>{C-x o}</kbd>, and then press
+<kbd>{M-o}</kbd> again. This simulates a depress and release of the
+Action Key. <kbd>{C-u M-o}</kbd> emulates drags of the Assist Key.
+This will not work when Hyperbole is run from a dumb terminal Emacs
+session since drag actions are not supported without a window system.
+</p>
+<a name="index-ace_002dwindow-1"></a>
+<a name="index-hkey_002dace_002dwindow_002dsetup"></a>
+<a name="index-ace_002dwindow"></a>
+<a name="index-window-by-letter"></a>
+<a name="index-jump-to-window-by-letter"></a>
+<a name="index-keyboard_002c-jump-to-window"></a>
+<p>For even faster keyboard-based drag emulation, use the Emacs
+package <code>ace-window</code> (see <a
href="https://elpa.gnu.org/packages/ace-window.html">https://elpa.gnu.org/packages/ace-window.html</a>).
+</p>
+<p>The ace-window package assigns short letter IDs to each Emacs window and
lets
+you jump to or operate upon a specific window by giving its ID. Hyperbole can
+add an operation to ace-window that replaces the two-step drag emulation key
+described above with a single key sequence that jumps directly to the
+destination window desired. This is most useful when working with dired or
+buffer menu <em>items</em>, so the drag operation uses the {i} key
+within <code>ace-window</code>.
+</p>
+<p>To enable this feature, in your Emacs initialization file after
+Hyperbole is initialized, if you do not have a key bound for
+<code>ace-window</code>, then call: <code>(hkey-ace-window-setup
\"\M-o\")</code>
+to bind it to <kbd>{M-o}</kbd>. Otherwise, call the setup function without
+a key: <code>(hkey-ace-window-setup)</code>.
+</p>
+<a name="index-link-creation-from-keyboard"></a>
+<a name="index-keyboard-link-creation"></a>
+<p>After setup, the leftmost character or two of each window’s modeline
will show
+the ID to type to use that window as the drag destination. Then whenever point
+is on an item you want displayed in another window, use <kbd>{M-o i
+<id-of-window-to-display-item-in>}</kbd> and watch the magic happen.
You can also use
+this to create explicit button links to other window buffers when in an
editable
+buffer.
+</p>
+
@@ -3206,22 +3279,7 @@ Buffer without File link-to-buffer-tmp
</pre></div>
</div>
-<a name="index-M_002do"></a>
-<a name="index-C_002du-M_002do"></a>
-<a name="index-C_002dx-o"></a>
-<a name="index-hkey_002doperate"></a>
-<a name="index-emulation_002c-Action-Key-drag"></a>
-<a name="index-keyboard-drag-emulation"></a>
-<p>If you run Emacs under a window system and there is no prior key
-binding on <kbd>{M-o}</kbd> when you load Hyperbole, then you can emulate
-an Action Key drag from the keyboard by typing <kbd>{M-o}</kbd>, the
-<code>hkey-operate</code> command, at the button source location, moving
-to the link destination, e.g. with <kbd>{C-x o}</kbd>, and then typing
-<kbd>{M-o}</kbd> again. This simulates a depress and then release of the
-Action Key. <kbd>{C-u M-o}</kbd> emulates drags of the Assist Key.
-This will not work when Hyperbole is run from a dumb terminal Emacs
-session since drag actions are not supported without a window system.
-</p>
+
<hr>
<a name="By-Menu"></a>
<div class="header">
@@ -6035,6 +6093,7 @@ BBDB entries, just finding them.
<code>hyrolo-bbdb-fgrep</code> (string finding) and
<code>hyrolo-bbdb-grep</code>
(regular expression finding). They may be bound to keys if desired.
</p>
+<a name="index-contacts_002c-Google"></a>
<a name="index-Google-Contacts"></a>
<a name="index-Gmail-Contacts"></a>
<p>If you use Google/Gmail Contacts, you can configure the HyRolo to
@@ -6049,8 +6108,9 @@ Contacts to your searches.
</p>
<p>When you next do a search, you will be prompted for your Google
Contacts password and may also have to enter an authorization code
-that will be displayed on your screen. After authorization, you may
-at times be re-prompted for your password.
+that will be displayed on your screen. After authorization, your
+your information will be cached so that you are not prompted for
+it again within this Emacs session.
</p>
<a name="index-hyrolo_002dgoogle_002dcontacts_002dfgrep"></a>
<a name="index-hyrolo_002dgoogle_002dcontacts_002dgrep"></a>
@@ -6060,11 +6120,10 @@ at times be re-prompted for your password.
may be bound to keys if desired.
</p>
<a name="index-hyrolo_002dgoogle_002dcontacts_002dflag"></a>
-<p>Because Google can require frequent reauthorization to search your
-contacts, there is a flag, <code>hyrolo-google-contacts-flag</code>, which
-when set to ‘<samp>nil</samp>’ disables searching of your Google
Contacts.
+<p>If you ever need to disable Google Contacts usage, there is a
+flag, <code>hyrolo-google-contacts-flag</code>, which when set to
‘<samp>nil</samp>’
+disables searching of your Google Contacts.
</p>
-
<p>Below are the rest of the settings available with HyRolo:
</p>
<dl compact="compact">
@@ -9247,23 +9306,25 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p"
rel="prev">Smart Mouse Keys<
<h3 class="section">E.2 Smart Keyboard Keys</h3>
<table class="menu" border="0" cellspacing="0">
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="1">Smart Key - Emacs
Pushbuttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Treemacs"
accesskey="1">Smart Key - Treemacs</a>:</td><td> </td><td
align="left" valign="top">
+</td></tr>
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="2">Smart Key - Emacs
Pushbuttons</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Argument-Completion" accesskey="2">Smart Key - Argument
Completion</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Argument-Completion" accesskey="3">Smart Key - Argument
Completion</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="3">Smart Key - ID Edit
Mode</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="4">Smart Key - ID Edit
Mode</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="4">Smart Key - Emacs Cross-references
(Xrefs)</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="5">Smart Key - Emacs Cross-references
(Xrefs)</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="5">Smart Key - Smart
Scrolling</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Scrolling" accesskey="6">Smart Key - Smart
Scrolling</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Menus" accesskey="6">Smart Key - Smart
Menus</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Menus" accesskey="7">Smart Key - Smart
Menus</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Dired-Mode"
accesskey="7">Smart Key - Dired Mode</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Dired-Mode"
accesskey="8">Smart Key - Dired Mode</a>:</td><td> </td><td
align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="8">Smart Key - Hyperbole
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="9">Smart Key - Hyperbole
Buttons</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-View-Mode"
accesskey="9">Smart Key - View Mode</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-View-Mode">Smart Key - View
Mode</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
@@ -9330,13 +9391,45 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p"
rel="prev">Smart Mouse Keys<
</table>
<hr>
+<a name="Smart-Key-_002d-Treemacs"></a>
+<div class="header">
+<p>
+Next: <a href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="n"
rel="next">Smart Key - Emacs Pushbuttons</a>, Previous: <a
href="#Smart-Keyboard-Keys" accesskey="p" rel="prev">Smart Keyboard Keys</a>,
Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard
Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
+</div>
+<a name="Smart-Key-_002d-Treemacs-1"></a>
+<h4 class="subsection">E.2.1 Smart Key - Treemacs</h4>
+
+<a name="index-Treemacs-1"></a>
+<p>Treemacs is an add-on Emacs package that offers a fixed, per-frame,
graphical
+window for hierarchically browsing and operating upon directories, files and
+programming tags within files. Use the Emacs package manager to install it and
+then invoke it with <kbd>{M-x treemacs <span class="key">RET</span>}</kbd> and
quit with <kbd>{q}</kbd>.
+</p>
+<p>Treemacs items may be dragged with the Action Key to other windows for
display.
+See <a href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a>.
+</p>
+<div class="format">
+<pre class="format">When in a Treemacs file browser buffer:
+ ACTION KEY or ASSIST KEY
+ (1) on an entry icon, the treemacs TAB command is run to expand and
+ collapse the entry;
+ (2) elsewhere within an entry line, the item is displayed for editing,
+ normally in another window;
+ (3) on the first line of the buffer (other than the end of line),
+ dired is run on the current directory of this Treemacs;
+ (4) at the end of the first or last line of the buffer,
+ this Treemacs invocation is quit.
+</pre></div>
+
+
+<hr>
<a name="Smart-Key-_002d-Emacs-Pushbuttons"></a>
<div class="header">
<p>
-Next: <a href="#Smart-Key-_002d-Argument-Completion" accesskey="n"
rel="next">Smart Key - Argument Completion</a>, Previous: <a
href="#Smart-Keyboard-Keys" accesskey="p" rel="prev">Smart Keyboard Keys</a>,
Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard
Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
+Next: <a href="#Smart-Key-_002d-Argument-Completion" accesskey="n"
rel="next">Smart Key - Argument Completion</a>, Previous: <a
href="#Smart-Key-_002d-Treemacs" accesskey="p" rel="prev">Smart Key -
Treemacs</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Emacs-Pushbuttons-1"></a>
-<h4 class="subsection">E.2.1 Smart Key - Emacs Pushbuttons</h4>
+<h4 class="subsection">E.2.2 Smart Key - Emacs Pushbuttons</h4>
<div class="format">
<pre class="format">When over an Emacs pushbutton:
@@ -9353,7 +9446,7 @@ Next: <a href="#Smart-Key-_002d-Argument-Completion"
accesskey="n" rel="next">Sm
Next: <a href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="n" rel="next">Smart
Key - ID Edit Mode</a>, Previous: <a href="#Smart-Key-_002d-Emacs-Pushbuttons"
accesskey="p" rel="prev">Smart Key - Emacs Pushbuttons</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Argument-Completion-1"></a>
-<h4 class="subsection">E.2.2 Smart Key - Argument Completion</h4>
+<h4 class="subsection">E.2.3 Smart Key - Argument Completion</h4>
<a name="index-Smart-Keyboard-Keys"></a>
<div class="format">
@@ -9384,7 +9477,7 @@ Next: <a href="#Smart-Key-_002d-ID-Edit-Mode"
accesskey="n" rel="next">Smart Key
Next: <a href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="n" rel="next">Smart Key - Emacs Cross-references (Xrefs)</a>,
Previous: <a href="#Smart-Key-_002d-Argument-Completion" accesskey="p"
rel="prev">Smart Key - Argument Completion</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-ID-Edit-Mode-1"></a>
-<h4 class="subsection">E.2.3 Smart Key - ID Edit Mode</h4>
+<h4 class="subsection">E.2.4 Smart Key - ID Edit Mode</h4>
<div class="format">
<pre class="format">If in ID Edit mode (a package within InfoDock, not
included in
Hyperbole, that supports rapid marking, killing, copying, yanking and
@@ -9400,7 +9493,7 @@ display-management):
Next: <a href="#Smart-Key-_002d-Smart-Scrolling" accesskey="n"
rel="next">Smart Key - Smart Scrolling</a>, Previous: <a
href="#Smart-Key-_002d-ID-Edit-Mode" accesskey="p" rel="prev">Smart Key - ID
Edit Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029-1"></a>
-<h4 class="subsection">E.2.4 Smart Key - Emacs Cross-references (Xrefs)</h4>
+<h4 class="subsection">E.2.5 Smart Key - Emacs Cross-references (Xrefs)</h4>
<div class="format">
<pre class="format">When over an Emacs cross-reference:
@@ -9418,7 +9511,7 @@ Next: <a href="#Smart-Key-_002d-Smart-Scrolling"
accesskey="n" rel="next">Smart
Next: <a href="#Smart-Key-_002d-Smart-Menus" accesskey="n" rel="next">Smart
Key - Smart Menus</a>, Previous: <a
href="#Smart-Key-_002d-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="p" rel="prev">Smart Key - Emacs Cross-references (Xrefs)</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Smart-Scrolling-1"></a>
-<h4 class="subsection">E.2.5 Smart Key - Smart Scrolling</h4>
+<h4 class="subsection">E.2.6 Smart Key - Smart Scrolling</h4>
<a name="index-smart_002dscroll_002dproportional"></a>
<a name="index-proportional-scrolling-1"></a>
@@ -9456,7 +9549,7 @@ Next: <a href="#Smart-Key-_002d-Smart-Menus"
accesskey="n" rel="next">Smart Key
Next: <a href="#Smart-Key-_002d-Dired-Mode" accesskey="n" rel="next">Smart Key
- Dired Mode</a>, Previous: <a href="#Smart-Key-_002d-Smart-Scrolling"
accesskey="p" rel="prev">Smart Key - Smart Scrolling</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Smart-Menus-1"></a>
-<h4 class="subsection">E.2.6 Smart Key - Smart Menus</h4>
+<h4 class="subsection">E.2.7 Smart Key - Smart Menus</h4>
<p>Smart Menus are an older in-buffer menu system that worked on dumb
terminals and pre-dated Emacs’ own dumb terminal menu support. They
@@ -9490,7 +9583,7 @@ necesary for its use.
Next: <a href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="n"
rel="next">Smart Key - Hyperbole Buttons</a>, Previous: <a
href="#Smart-Key-_002d-Smart-Menus" accesskey="p" rel="prev">Smart Key - Smart
Menus</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Dired-Mode-1"></a>
-<h4 class="subsection">E.2.7 Smart Key - Dired Mode</h4>
+<h4 class="subsection">E.2.8 Smart Key - Dired Mode</h4>
<a name="index-click_002c-dired"></a>
<a name="index-drag_002c-dired"></a>
<a name="index-dired-browsing"></a>
@@ -9531,7 +9624,7 @@ Next: <a href="#Smart-Key-_002d-Hyperbole-Buttons"
accesskey="n" rel="next">Smar
Next: <a href="#Smart-Key-_002d-View-Mode" accesskey="n" rel="next">Smart Key
- View Mode</a>, Previous: <a href="#Smart-Key-_002d-Dired-Mode" accesskey="p"
rel="prev">Smart Key - Dired Mode</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Hyperbole-Buttons-1"></a>
-<h4 class="subsection">E.2.8 Smart Key - Hyperbole Buttons</h4>
+<h4 class="subsection">E.2.9 Smart Key - Hyperbole Buttons</h4>
<a name="index-click_002c-button"></a>
<a name="index-button-click"></a>
@@ -9551,7 +9644,7 @@ Next: <a href="#Smart-Key-_002d-View-Mode" accesskey="n"
rel="next">Smart Key -
Next: <a href="#Smart-Key-_002d-Delimited-Things" accesskey="n"
rel="next">Smart Key - Delimited Things</a>, Previous: <a
href="#Smart-Key-_002d-Hyperbole-Buttons" accesskey="p" rel="prev">Smart Key -
Hyperbole Buttons</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-View-Mode-1"></a>
-<h4 class="subsection">E.2.9 Smart Key - View Mode</h4>
+<h4 class="subsection">E.2.10 Smart Key - View Mode</h4>
<a name="index-view-mode"></a>
<div class="format">
@@ -9570,7 +9663,7 @@ Next: <a href="#Smart-Key-_002d-Delimited-Things"
accesskey="n" rel="next">Smart
Next: <a href="#Smart-Key-_002d-The-Koutliner" accesskey="n" rel="next">Smart
Key - The Koutliner</a>, Previous: <a href="#Smart-Key-_002d-View-Mode"
accesskey="p" rel="prev">Smart Key - View Mode</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Delimited-Things-1"></a>
-<h4 class="subsection">E.2.10 Smart Key - Delimited Things</h4>
+<h4 class="subsection">E.2.11 Smart Key - Delimited Things</h4>
<a name="index-thing-1"></a>
<a name="index-list-1"></a>
@@ -9608,7 +9701,7 @@ original location and yanks it at the new location.
Next: <a href="#Smart-Key-_002d-RDB-Mode" accesskey="n" rel="next">Smart Key -
RDB Mode</a>, Previous: <a href="#Smart-Key-_002d-Delimited-Things"
accesskey="p" rel="prev">Smart Key - Delimited Things</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-The-Koutliner-1"></a>
-<h4 class="subsection">E.2.11 Smart Key - The Koutliner</h4>
+<h4 class="subsection">E.2.12 Smart Key - The Koutliner</h4>
<div class="format">
<pre class="format">When pressed within a Hyperbole Koutliner buffer
(kotl-mode):
ACTION KEY
@@ -9643,7 +9736,7 @@ Next: <a href="#Smart-Key-_002d-RDB-Mode" accesskey="n"
rel="next">Smart Key - R
Next: <a href="#Smart-Key-_002d-Help-Buffers" accesskey="n" rel="next">Smart
Key - Help Buffers</a>, Previous: <a href="#Smart-Key-_002d-The-Koutliner"
accesskey="p" rel="prev">Smart Key - The Koutliner</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-RDB-Mode-1"></a>
-<h4 class="subsection">E.2.12 Smart Key - RDB Mode</h4>
+<h4 class="subsection">E.2.13 Smart Key - RDB Mode</h4>
<a name="index-rdb_002dmode"></a>
<a name="index-database"></a>
<div class="format">
@@ -9676,7 +9769,7 @@ relational databases (part of InfoDock):
Next: <a href="#Smart-Key-_002d-Pages-Directory-Mode" accesskey="n"
rel="next">Smart Key - Pages Directory Mode</a>, Previous: <a
href="#Smart-Key-_002d-RDB-Mode" accesskey="p" rel="prev">Smart Key - RDB
Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Help-Buffers-1"></a>
-<h4 class="subsection">E.2.13 Smart Key - Help Buffers</h4>
+<h4 class="subsection">E.2.14 Smart Key - Help Buffers</h4>
<a name="index-help-buffer"></a>
<div class="format">
<pre class="format">
@@ -9693,7 +9786,7 @@ When pressed at the end of a Help buffer:
Next: <a href="#Smart-Key-_002d-Identifier-Menu-Mode" accesskey="n"
rel="next">Smart Key - Identifier Menu Mode</a>, Previous: <a
href="#Smart-Key-_002d-Help-Buffers" accesskey="p" rel="prev">Smart Key - Help
Buffers</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Pages-Directory-Mode-1"></a>
-<h4 class="subsection">E.2.14 Smart Key - Pages Directory Mode</h4>
+<h4 class="subsection">E.2.15 Smart Key - Pages Directory Mode</h4>
<div class="format">
<pre class="format">Pages-directory-mode is used in special buffers that
contain title lines extracted from files consisting of titled, page-delimited
contents, e.g. Info files.
@@ -9712,7 +9805,7 @@ When pressed on a pages-directory-mode entry line:
Next: <a href="#Smart-Key-_002d-C-Source-Code" accesskey="n" rel="next">Smart
Key - C Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Pages-Directory-Mode" accesskey="p" rel="prev">Smart Key
- Pages Directory Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Identifier-Menu-Mode-1"></a>
-<h4 class="subsection">E.2.15 Smart Key - Identifier Menu Mode</h4>
+<h4 class="subsection">E.2.16 Smart Key - Identifier Menu Mode</h4>
<div class="format">
<pre class="format">This works only for identifiers defined within the same
source file in which they are referenced.
@@ -9735,7 +9828,7 @@ When pressed on an identifier name after an identifier
index has been generated:
Next: <a href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="n"
rel="next">Smart Key - C++ Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Identifier-Menu-Mode" accesskey="p" rel="prev">Smart Key
- Identifier Menu Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-C-Source-Code-1"></a>
-<h4 class="subsection">E.2.16 Smart Key - C Source Code</h4>
+<h4 class="subsection">E.2.17 Smart Key - C Source Code</h4>
<a name="index-smart_002dc_002dcpp_002dinclude_002dpath"></a>
<a name="index-smart_002dc_002dinclude_002dpath"></a>
@@ -9767,7 +9860,7 @@ Next: <a href="#Smart-Key-_002d-C_002b_002b-Source-Code"
accesskey="n" rel="next
Next: <a href="#Smart-Key-_002d-Assembly-Source-Code" accesskey="n"
rel="next">Smart Key - Assembly Source Code</a>, Previous: <a
href="#Smart-Key-_002d-C-Source-Code" accesskey="p" rel="prev">Smart Key - C
Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-C_002b_002b-Source-Code-1"></a>
-<h4 class="subsection">E.2.17 Smart Key - C++ Source Code</h4>
+<h4 class="subsection">E.2.18 Smart Key - C++ Source Code</h4>
<a name="index-c_002b_002b_002dcpp_002dinclude_002dpath"></a>
<a name="index-c_002b_002b_002dinclude_002dpath"></a>
@@ -9820,7 +9913,7 @@ buffer:
Next: <a href="#Smart-Key-_002d-Lisp-Source-Code" accesskey="n"
rel="next">Smart Key - Lisp Source Code</a>, Previous: <a
href="#Smart-Key-_002d-C_002b_002b-Source-Code" accesskey="p" rel="prev">Smart
Key - C++ Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Assembly-Source-Code-1"></a>
-<h4 class="subsection">E.2.18 Smart Key - Assembly Source Code</h4>
+<h4 class="subsection">E.2.19 Smart Key - Assembly Source Code</h4>
<a name="index-smart_002dasm_002dinclude_002dpath"></a>
<div class="format">
@@ -9845,7 +9938,7 @@ Next: <a href="#Smart-Key-_002d-Lisp-Source-Code"
accesskey="n" rel="next">Smart
Next: <a href="#Smart-Key-_002d-Java-Source-Code" accesskey="n"
rel="next">Smart Key - Java Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Assembly-Source-Code" accesskey="p" rel="prev">Smart Key
- Assembly Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Lisp-Source-Code-1"></a>
-<h4 class="subsection">E.2.19 Smart Key - Lisp Source Code</h4>
+<h4 class="subsection">E.2.20 Smart Key - Lisp Source Code</h4>
<div class="format">
<pre class="format">When pressed on a Lisp symbol within any of these types of
buffers
@@ -9867,7 +9960,7 @@ Next: <a href="#Smart-Key-_002d-Java-Source-Code"
accesskey="n" rel="next">Smart
Next: <a href="#Smart-Key-_002d-JavaScript-Source-Code" accesskey="n"
rel="next">Smart Key - JavaScript Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Lisp-Source-Code" accesskey="p" rel="prev">Smart Key -
Lisp Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Java-Source-Code-1"></a>
-<h4 class="subsection">E.2.20 Smart Key - Java Source Code</h4>
+<h4 class="subsection">E.2.21 Smart Key - Java Source Code</h4>
<a name="index-smart_002djava_002dpackage_002dpath"></a>
<div class="format">
@@ -9910,7 +10003,7 @@ buffer:
Next: <a href="#Smart-Key-_002d-Python-Source-Code" accesskey="n"
rel="next">Smart Key - Python Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Java-Source-Code" accesskey="p" rel="prev">Smart Key -
Java Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-JavaScript-Source-Code-1"></a>
-<h4 class="subsection">E.2.21 Smart Key - JavaScript Source Code</h4>
+<h4 class="subsection">E.2.22 Smart Key - JavaScript Source Code</h4>
<div class="format">
<pre class="format">When pressed within a JavaScript source code file:
@@ -9931,7 +10024,7 @@ Next: <a href="#Smart-Key-_002d-Python-Source-Code"
accesskey="n" rel="next">Sma
Next: <a href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="n"
rel="next">Smart Key - Objective-C Source Code</a>, Previous: <a
href="#Smart-Key-_002d-JavaScript-Source-Code" accesskey="p" rel="prev">Smart
Key - JavaScript Source Code</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Python-Source-Code-1"></a>
-<h4 class="subsection">E.2.22 Smart Key - Python Source Code</h4>
+<h4 class="subsection">E.2.23 Smart Key - Python Source Code</h4>
<div class="format">
<pre class="format">When the OO-Browser has been loaded and the press is
within a Python
buffer:
@@ -9962,7 +10055,7 @@ buffer:
Next: <a href="#Smart-Key-_002d-Fortran-Source-Code" accesskey="n"
rel="next">Smart Key - Fortran Source Code</a>, Previous: <a
href="#Smart-Key-_002d-Python-Source-Code" accesskey="p" rel="prev">Smart Key -
Python Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Objective_002dC-Source-Code-1"></a>
-<h4 class="subsection">E.2.23 Smart Key - Objective-C Source Code</h4>
+<h4 class="subsection">E.2.24 Smart Key - Objective-C Source Code</h4>
<a name="index-objc_002dcpp_002dinclude_002dpath"></a>
<a name="index-objc_002dinclude_002dpath"></a>
@@ -10013,7 +10106,7 @@ OO-Browser):
Next: <a href="#Smart-Key-_002d-Occurrence-Matches" accesskey="n"
rel="next">Smart Key - Occurrence Matches</a>, Previous: <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code" accesskey="p"
rel="prev">Smart Key - Objective-C Source Code</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Fortran-Source-Code-1"></a>
-<h4 class="subsection">E.2.24 Smart Key - Fortran Source Code</h4>
+<h4 class="subsection">E.2.25 Smart Key - Fortran Source Code</h4>
<div class="format">
<pre class="format">When pressed within a Fortran source code file:
@@ -10031,7 +10124,7 @@ Next: <a href="#Smart-Key-_002d-Occurrence-Matches"
accesskey="n" rel="next">Sma
Next: <a href="#Smart-Key-_002d-Calendar-Mode" accesskey="n" rel="next">Smart
Key - Calendar Mode</a>, Previous: <a
href="#Smart-Key-_002d-Fortran-Source-Code" accesskey="p" rel="prev">Smart Key
- Fortran Source Code</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Occurrence-Matches-1"></a>
-<h4 class="subsection">E.2.25 Smart Key - Occurrence Matches</h4>
+<h4 class="subsection">E.2.26 Smart Key - Occurrence Matches</h4>
<div class="format">
<pre class="format">When pressed within an occur-mode, moccur-mode or
amoccur-mode buffer:
@@ -10046,7 +10139,7 @@ Next: <a href="#Smart-Key-_002d-Calendar-Mode"
accesskey="n" rel="next">Smart Ke
Next: <a href="#Smart-Key-_002d-Man-Page-Apropos" accesskey="n"
rel="next">Smart Key - Man Page Apropos</a>, Previous: <a
href="#Smart-Key-_002d-Occurrence-Matches" accesskey="p" rel="prev">Smart Key -
Occurrence Matches</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Calendar-Mode-1"></a>
-<h4 class="subsection">E.2.26 Smart Key - Calendar Mode</h4>
+<h4 class="subsection">E.2.27 Smart Key - Calendar Mode</h4>
<div class="format">
<pre class="format">When pressed within a calendar-mode buffer:
@@ -10073,7 +10166,7 @@ Next: <a href="#Smart-Key-_002d-Man-Page-Apropos"
accesskey="n" rel="next">Smart
Next: <a href="#Smart-Key-_002d-Emacs-Outline-Mode" accesskey="n"
rel="next">Smart Key - Emacs Outline Mode</a>, Previous: <a
href="#Smart-Key-_002d-Calendar-Mode" accesskey="p" rel="prev">Smart Key -
Calendar Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Man-Page-Apropos-1"></a>
-<h4 class="subsection">E.2.27 Smart Key - Man Page Apropos</h4>
+<h4 class="subsection">E.2.28 Smart Key - Man Page Apropos</h4>
<div class="format">
<pre class="format">When pressed within a man page apropos buffer or listing:
ACTION KEY
@@ -10095,7 +10188,7 @@ Next: <a href="#Smart-Key-_002d-Emacs-Outline-Mode"
accesskey="n" rel="next">Sma
Next: <a href="#Smart-Key-_002d-Info-Manuals" accesskey="n" rel="next">Smart
Key - Info Manuals</a>, Previous: <a href="#Smart-Key-_002d-Man-Page-Apropos"
accesskey="p" rel="prev">Smart Key - Man Page Apropos</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Emacs-Outline-Mode-1"></a>
-<h4 class="subsection">E.2.28 Smart Key - Emacs Outline Mode</h4>
+<h4 class="subsection">E.2.29 Smart Key - Emacs Outline Mode</h4>
<a name="index-selective_002ddisplay"></a>
<div class="format">
<pre class="format">If pressed within an outline-mode buffer or when no other
context is matched
@@ -10132,7 +10225,7 @@ and outline-minor-mode is enabled:
Next: <a href="#Smart-Key-_002d-Email-Composers" accesskey="n"
rel="next">Smart Key - Email Composers</a>, Previous: <a
href="#Smart-Key-_002d-Emacs-Outline-Mode" accesskey="p" rel="prev">Smart Key -
Emacs Outline Mode</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Info-Manuals-1"></a>
-<h4 class="subsection">E.2.29 Smart Key - Info Manuals</h4>
+<h4 class="subsection">E.2.30 Smart Key - Info Manuals</h4>
<div class="format">
<pre class="format"><a name="index-click_002c-Info"></a><a
name="index-Info-browsing"></a><a name="index-Info_002dglobal_002dnext"></a><a
name="index-Info_002dglobal_002dprev"></a>If pressed within an Info manual node:
@@ -10173,7 +10266,7 @@ Use <kbd>{s}</kbd> within an Info manual to search for
any concept that interest
Next: <a href="#Smart-Key-_002d-GNUS-Newsreader" accesskey="n"
rel="next">Smart Key - GNUS Newsreader</a>, Previous: <a
href="#Smart-Key-_002d-Info-Manuals" accesskey="p" rel="prev">Smart Key - Info
Manuals</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Email-Composers-1"></a>
-<h4 class="subsection">E.2.30 Smart Key - Email Composers</h4>
+<h4 class="subsection">E.2.31 Smart Key - Email Composers</h4>
<a name="index-hmail_003areader"></a>
<a name="index-hmail_003alister"></a>
<div class="format">
@@ -10212,7 +10305,7 @@ Next: <a href="#Smart-Key-_002d-GNUS-Newsreader"
accesskey="n" rel="next">Smart
Next: <a href="#Smart-Key-_002d-Buffer-Menus" accesskey="n" rel="next">Smart
Key - Buffer Menus</a>, Previous: <a href="#Smart-Key-_002d-Email-Composers"
accesskey="p" rel="prev">Smart Key - Email Composers</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-GNUS-Newsreader-1"></a>
-<h4 class="subsection">E.2.31 Smart Key - GNUS Newsreader</h4>
+<h4 class="subsection">E.2.32 Smart Key - GNUS Newsreader</h4>
<a name="index-click_002c-Gnus"></a>
<a name="index-Gnus-browsing"></a>
<div class="format">
@@ -10279,7 +10372,7 @@ Next: <a href="#Smart-Key-_002d-Buffer-Menus"
accesskey="n" rel="next">Smart Key
Next: <a href="#Smart-Key-_002d-Tar-File-Mode" accesskey="n" rel="next">Smart
Key - Tar File Mode</a>, Previous: <a href="#Smart-Key-_002d-GNUS-Newsreader"
accesskey="p" rel="prev">Smart Key - GNUS Newsreader</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Buffer-Menus-1"></a>
-<h4 class="subsection">E.2.32 Smart Key - Buffer Menus</h4>
+<h4 class="subsection">E.2.33 Smart Key - Buffer Menus</h4>
<a name="index-click_002c-buffer-menu"></a>
<a name="index-buffer-menu-2"></a>
<div class="format">
@@ -10336,7 +10429,7 @@ Next: <a href="#Smart-Key-_002d-Tar-File-Mode"
accesskey="n" rel="next">Smart Ke
Next: <a href="#Smart-Key-_002d-Man-Pages" accesskey="n" rel="next">Smart Key
- Man Pages</a>, Previous: <a href="#Smart-Key-_002d-Buffer-Menus"
accesskey="p" rel="prev">Smart Key - Buffer Menus</a>, Up: <a
href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart Keyboard Keys</a>
[<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Tar-File-Mode-1"></a>
-<h4 class="subsection">E.2.33 Smart Key - Tar File Mode</h4>
+<h4 class="subsection">E.2.34 Smart Key - Tar File Mode</h4>
<a name="index-click_002c-tar"></a>
<a name="index-tar-archive-browsing"></a>
<a name="index-extracting-from-tar-files"></a>
@@ -10363,7 +10456,7 @@ Next: <a href="#Smart-Key-_002d-Man-Pages"
accesskey="n" rel="next">Smart Key -
Next: <a href="#Smart-Key-_002d-WWW-URLs" accesskey="n" rel="next">Smart Key -
WWW URLs</a>, Previous: <a href="#Smart-Key-_002d-Tar-File-Mode" accesskey="p"
rel="prev">Smart Key - Tar File Mode</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Man-Pages-1"></a>
-<h4 class="subsection">E.2.34 Smart Key - Man Pages</h4>
+<h4 class="subsection">E.2.35 Smart Key - Man Pages</h4>
<a name="index-man-page-references"></a>
<a name="index-smart_002dman_002dc_002droutine_002dref"></a>
<div class="format">
@@ -10383,7 +10476,7 @@ containing its pathname:
Next: <a href="#Smart-Key-_002d-HyRolo-Match-Buffers" accesskey="n"
rel="next">Smart Key - HyRolo Match Buffers</a>, Previous: <a
href="#Smart-Key-_002d-Man-Pages" accesskey="p" rel="prev">Smart Key - Man
Pages</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-WWW-URLs-1"></a>
-<h4 class="subsection">E.2.35 Smart Key - WWW URLs</h4>
+<h4 class="subsection">E.2.36 Smart Key - WWW URLs</h4>
<a name="index-click_002c-world_002dwide-web"></a>
<a name="index-W3"></a>
<a name="index-URL-2"></a>
@@ -10409,7 +10502,7 @@ Next: <a href="#Smart-Key-_002d-HyRolo-Match-Buffers"
accesskey="n" rel="next">S
Next: <a href="#Smart-Key-_002d-Image-Thumbnails" accesskey="n"
rel="next">Smart Key - Image Thumbnails</a>, Previous: <a
href="#Smart-Key-_002d-WWW-URLs" accesskey="p" rel="prev">Smart Key - WWW
URLs</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-HyRolo-Match-Buffers-1"></a>
-<h4 class="subsection">E.2.36 Smart Key - HyRolo Match Buffers</h4>
+<h4 class="subsection">E.2.37 Smart Key - HyRolo Match Buffers</h4>
<a name="index-click_002c-hyrolo-matches"></a>
<a name="index-hyrolo-matches"></a>
<div class="format">
@@ -10425,7 +10518,7 @@ Next: <a href="#Smart-Key-_002d-Image-Thumbnails"
accesskey="n" rel="next">Smart
Next: <a href="#Smart-Key-_002d-Gomoku-Game" accesskey="n" rel="next">Smart
Key - Gomoku Game</a>, Previous: <a
href="#Smart-Key-_002d-HyRolo-Match-Buffers" accesskey="p" rel="prev">Smart Key
- HyRolo Match Buffers</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Image-Thumbnails-1"></a>
-<h4 class="subsection">E.2.37 Smart Key - Image Thumbnails</h4>
+<h4 class="subsection">E.2.38 Smart Key - Image Thumbnails</h4>
<a name="index-images"></a>
<a name="index-thumbnails"></a>
<a name="index-dired_002c-images"></a>
@@ -10446,7 +10539,7 @@ Next: <a href="#Smart-Key-_002d-Gomoku-Game"
accesskey="n" rel="next">Smart Key
Next: <a href="#Smart-Key-_002d-The-OO_002dBrowser" accesskey="n"
rel="next">Smart Key - The OO-Browser</a>, Previous: <a
href="#Smart-Key-_002d-Image-Thumbnails" accesskey="p" rel="prev">Smart Key -
Image Thumbnails</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u"
rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents" title="Table
of contents" rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Gomoku-Game-1"></a>
-<h4 class="subsection">E.2.38 Smart Key - Gomoku Game</h4>
+<h4 class="subsection">E.2.39 Smart Key - Gomoku Game</h4>
<a name="index-game_002c-gomoku"></a>
<a name="index-gomoku"></a>
<div class="format">
@@ -10464,7 +10557,7 @@ Next: <a href="#Smart-Key-_002d-The-OO_002dBrowser"
accesskey="n" rel="next">Sma
Next: <a href="#Smart-Key-_002d-Default-Context" accesskey="n"
rel="next">Smart Key - Default Context</a>, Previous: <a
href="#Smart-Key-_002d-Gomoku-Game" accesskey="p" rel="prev">Smart Key - Gomoku
Game</a>, Up: <a href="#Smart-Keyboard-Keys" accesskey="u" rel="up">Smart
Keyboard Keys</a> [<a href="#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="#Key-Index" title="Index"
rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-The-OO_002dBrowser-1"></a>
-<h4 class="subsection">E.2.39 Smart Key - The OO-Browser</h4>
+<h4 class="subsection">E.2.40 Smart Key - The OO-Browser</h4>
<a name="index-OO_002dBrowser"></a>
<a name="index-object_002doriented-code-browsing"></a>
@@ -10538,7 +10631,7 @@ buffer after an OO-Browser Environment has been loaded:
Previous: <a href="#Smart-Key-_002d-The-OO_002dBrowser" accesskey="p"
rel="prev">Smart Key - The OO-Browser</a>, Up: <a href="#Smart-Keyboard-Keys"
accesskey="u" rel="up">Smart Keyboard Keys</a> [<a href="#SEC_Contents"
title="Table of contents" rel="contents">Contents</a>][<a href="#Key-Index"
title="Index" rel="index">Index</a>]</p>
</div>
<a name="Smart-Key-_002d-Default-Context-1"></a>
-<h4 class="subsection">E.2.40 Smart Key - Default Context</h4>
+<h4 class="subsection">E.2.41 Smart Key - Default Context</h4>
<a name="index-action_002dkey_002ddefault_002dfunction-1"></a>
<a name="index-assist_002dkey_002ddefault_002dfunction-1"></a>
<a name="index-hyperbole-1"></a>
@@ -11231,14 +11324,14 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a href="#index-C_002du-C_002dc-m"><code>C-u C-c
m</code></a>:</td><td> </td><td valign="top"><a
href="#Relocating-and-Copying">Relocating and Copying</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002du-C_002dh-A"><code>C-u C-h
A</code></a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002du-C_002dh-A-1"><code>C-u
C-h A</code></a>:</td><td> </td><td valign="top"><a
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-C_002du-M_002do"><code>C-u
M-o</code></a>:</td><td> </td><td valign="top"><a href="#By-Dragging">By
Dragging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002du-M_002do"><code>C-u
M-o</code></a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002du-M_002dRET"><code>C-u
M-<span class="key">RET</span></code></a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002du-M_002dRET-1"><code>C-u
M-<span class="key">RET</span></code></a>:</td><td> </td><td
valign="top"><a href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dx-_0024"><code>C-x
$</code></a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dx-_002b"><code>C-x
+</code></a>:</td><td> </td><td valign="top"><a
href="#Creating-and-Deleting-Windows">Creating and Deleting
Windows</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dx-C_002de"><code>C-x
C-e</code></a>:</td><td> </td><td valign="top"><a
href="#Creating-Types">Creating Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-C_002dx-m"><code>C-x
m</code></a>:</td><td> </td><td valign="top"><a
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-C_002dx-o"><code>C-x
o</code></a>:</td><td> </td><td valign="top"><a href="#By-Dragging">By
Dragging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-C_002dx-o"><code>C-x
o</code></a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Key-Index_ky_letter-D">D</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a
href="#index-d"><code>d</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
@@ -11316,7 +11409,7 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a
href="#index-m"><code>m</code></a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-M_002db"><code>M-b</code></a>:</td><td> </td><td
valign="top"><a href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-M_002df"><code>M-f</code></a>:</td><td> </td><td
valign="top"><a href="#Menus">Menus</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-M_002do"><code>M-o</code></a>:</td><td> </td><td
valign="top"><a href="#By-Dragging">By Dragging</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-M_002do"><code>M-o</code></a>:</td><td> </td><td
valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-M_002do-1"><code>M-o</code></a>:</td><td> </td><td
valign="top"><a href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-M_002dRET"><code>M-<span
class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-M_002dRET-1"><code>M-<span
class="key">RET</span></code></a>:</td><td> </td><td valign="top"><a
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
@@ -11565,6 +11658,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><th align="left">Index Entry</th><td> </td><th align="left">
Section</th></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Function_fn_letter-A">A</a></th><td></td><td></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-ace_002dwindow-1"><code>ace-window</code></a>:</td><td> </td><td
valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-action_002dact_002dhook">action-act-hook</a>:</td><td> </td><td
valign="top"><a href="#Hook-Variables">Hook Variables</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-action_002dkey"><code>action-key</code></a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-action_002dkey_002ddefault_002dfunction">action-key-default-function</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
@@ -11723,12 +11817,13 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-hibtypes_002dgithub_002ddefault_002duser">hibtypes-github-default-user</a>:</td><td> </td><td
valign="top"><a href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hibtypes_002dgithub_002ddefault_002duser-1">hibtypes-github-default-user</a>:</td><td> </td><td
valign="top"><a href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hibtypes_002dsocial_002ddefault_002dservice">hibtypes-social-default-service</a>:</td><td> </td><td
valign="top"><a href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hkey_002dace_002dwindow_002dsetup"><code>hkey-ace-window-setup</code></a>:</td><td> </td><td
valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hkey_002dalist">hkey-alist</a>:</td><td> </td><td
valign="top"><a href="#Questions-and-Answers">Questions and
Answers</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hkey_002dalways_002ddisplay_002dmenu">hkey-always-display-menu</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Smart-Menus">Smart Key - Smart
Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hkey_002deither"><code>hkey-either</code></a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hkey_002dinit">hkey-init</a>:</td><td> </td><td
valign="top"><a href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hkey_002dinit_002doverride_002dlocal_002dkeys">hkey-init-override-local-keys</a>:</td><td> </td><td
valign="top"><a href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-hkey_002doperate"><code>hkey-operate</code></a>:</td><td> </td><td
valign="top"><a href="#By-Dragging">By Dragging</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hkey_002doperate"><code>hkey-operate</code></a>:</td><td> </td><td
valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hkey_002dsummarize"><code>hkey-summarize</code></a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Default-Context">Smart Key - Default
Context</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hmail_003alister">hmail:lister</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Email-Composers">Smart Key - Email
Composers</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hmail_003areader">hmail:reader</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Email-Composers">Smart Key - Email
Composers</a></td></tr>
@@ -12159,6 +12254,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-Index_cp_letter-A">A</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-abbreviated-URLs">abbreviated
URLs</a>:</td><td> </td><td valign="top"><a
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-ace_002dwindow">ace-window</a>:</td><td> </td><td
valign="top"><a href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-action">action</a>:</td><td> </td><td valign="top"><a
href="#Action-Types">Action Types</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-action-1">action</a>:</td><td> </td><td valign="top"><a
href="#Action-Types">Action Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Action-Key">Action
Key</a>:</td><td> </td><td valign="top"><a href="#Smart-Keys">Smart
Keys</a></td></tr>
@@ -12348,6 +12444,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-completion-1">completion</a>:</td><td> </td><td
valign="top"><a href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-completion-2">completion</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Argument-Completion">Smart Key -
Argument Completion</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-configuration">configuration</a>:</td><td> </td><td
valign="top"><a href="#Customization">Customization</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-contacts_002c-Google">contacts,
Google</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Settings">HyRolo Settings</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-context">context</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-context_002dsensitive-help">context-sensitive
help</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Operations">Smart Key Operations</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-copy-and-yank">copy and
yank</a>:</td><td> </td><td valign="top"><a href="#Thing-Selection">Thing
Selection</a></td></tr>
@@ -12396,7 +12493,6 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-direct-selection">direct
selection</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Argument-Selection">Smart Key Argument Selection</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-directory-editor">directory
editor</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-dired">dired</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-dired-1">dired</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-dired-browsing">dired
browsing</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Dired-Mode">Smart Key - Dired Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-dired-item-drag">dired item
drag</a>:</td><td> </td><td valign="top"><a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-dired_002c-images">dired,
images</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Image-Thumbnails">Smart Key - Image
Thumbnails</a></td></tr>
@@ -12414,6 +12510,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-drag">drag</a>:</td><td> </td><td valign="top"><a
href="#By-Dragging">By Dragging</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-drag-1">drag</a>:</td><td> </td><td valign="top"><a
href="#Thing-Selection">Thing Selection</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-drag-2">drag</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-drag-emulation">drag
emulation</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-drag_002c-buffer-menu-item">drag, buffer menu
item</a>:</td><td> </td><td valign="top"><a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-drag_002c-buffer-swap">drag,
buffer swap</a>:</td><td> </td><td valign="top"><a
href="#Swapping-Buffers">Swapping Buffers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-drag_002c-clone-window">drag,
clone window</a>:</td><td> </td><td valign="top"><a
href="#Cloning-Windows">Cloning Windows</a></td></tr>
@@ -12427,6 +12524,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-drag_002c-resize-window">drag,
resize window</a>:</td><td> </td><td valign="top"><a
href="#Resizing-Windows">Resizing Windows</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-drag_002c-side-edge">drag, side
edge</a>:</td><td> </td><td valign="top"><a
href="#Side_002dby_002dSide-Window-Resizing">Side-by-Side Window
Resizing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-drag_002c-Smart-Mouse-Key">drag,
Smart Mouse Key</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Drags">Smart Mouse Key Drags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-drag_002c-Treemacs-item">drag,
Treemacs item</a>:</td><td> </td><td valign="top"><a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-drag_002c-vertical">drag,
vertical</a>:</td><td> </td><td valign="top"><a
href="#Creating-and-Deleting-Windows">Creating and Deleting
Windows</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-drag_002c-vertical-1">drag,
vertical</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a
Window</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-drag_002c-window-configuration">drag, window
configuration</a>:</td><td> </td><td valign="top"><a
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window
Configurations</a></td></tr>
@@ -12448,7 +12546,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-Emacs-Lisp-variables">Emacs Lisp
variables</a>:</td><td> </td><td valign="top"><a
href="#Link-Variable-Substitution">Link Variable Substitution</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-emacs-outline">emacs
outline</a>:</td><td> </td><td valign="top"><a
href="#Inserting-and-Importing">Inserting and Importing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Emacs-support">Emacs
support</a>:</td><td> </td><td valign="top"><a
href="#Button-Colors">Button Colors</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-emulation_002c-Action-Key-drag">emulation, Action Key
drag</a>:</td><td> </td><td valign="top"><a href="#By-Dragging">By
Dragging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-emulation_002c-drag">emulation,
drag</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-enabling-URLs-in-find_002dfile">enabling URLs in
find-file</a>:</td><td> </td><td valign="top"><a
href="#Using-URLs-with-Find_002dFile">Using URLs with Find-File</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-end-of-line-click">end of line
click</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Smart-Scrolling">Smart Key - Smart
Scrolling</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Engelbart">Engelbart</a>:</td><td> </td><td valign="top"><a
href="#Koutliner-History">Koutliner History</a></td></tr>
@@ -12480,6 +12578,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-Index_cp_letter-F">F</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-file-display-function">file
display function</a>:</td><td> </td><td valign="top"><a
href="#Internal-Viewers">Internal Viewers</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-file-viewer_002c-Treemacs">file
viewer, Treemacs</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-file_002c-DEMO">file,
DEMO</a>:</td><td> </td><td valign="top"><a href="#Manual-Overview">Manual
Overview</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-file_002c-hycontrol_002eel">file,
hycontrol.el</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-file_002c-importing">file,
importing</a>:</td><td> </td><td valign="top"><a
href="#Inserting-and-Importing">Inserting and Importing</a></td></tr>
@@ -12655,6 +12754,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><th><a name="Concept-Index_cp_letter-J">J</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-jump-menu">jump
menu</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-jump-menu-1">jump
menu</a>:</td><td> </td><td valign="top"><a
href="#Minibuffer-Menu-Activation">Minibuffer Menu Activation</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-jump-to-window-by-letter">jump
to window by letter</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-Index_cp_letter-K">K</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-kcell-link">kcell
link</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -12674,7 +12774,9 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-key-bindings_002c-toggle">key
bindings, toggle</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Bindings">Smart Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-key-bindings_002c-toggle-1">key
bindings, toggle</a>:</td><td> </td><td valign="top"><a
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-key-sequence">key
sequence</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-keyboard-drag-emulation">keyboard drag
emulation</a>:</td><td> </td><td valign="top"><a href="#By-Dragging">By
Dragging</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-keyboard-drags">keyboard
drags</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-keyboard-link-creation">keyboard
link creation</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-keyboard_002c-jump-to-window">keyboard, jump to
window</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-keypad">keypad</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-kill-and-yank">kill and
yank</a>:</td><td> </td><td valign="top"><a href="#Thing-Selection">Thing
Selection</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-kill-and-yank-1">kill and
yank</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Drags-between-Windows">Smart Mouse Drags between
Windows</a></td></tr>
@@ -12715,6 +12817,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-link-action-types">link action
types</a>:</td><td> </td><td valign="top"><a href="#Action-Types">Action
Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-link-button">link
button</a>:</td><td> </td><td valign="top"><a
href="#Explicit-Buttons">Explicit Buttons</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-link-creation">link
creation</a>:</td><td> </td><td valign="top"><a href="#By-Dragging">By
Dragging</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-link-creation-from-keyboard">link creation from
keyboard</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-link-display">link
display</a>:</td><td> </td><td valign="top"><a
href="#Referent-Display">Referent Display</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-link_002c-creation">link,
creation</a>:</td><td> </td><td valign="top"><a href="#By-Menu">By
Menu</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-link_002c-display-function">link, display
function</a>:</td><td> </td><td valign="top"><a
href="#Internal-Viewers">Internal Viewers</a></td></tr>
@@ -13108,6 +13211,9 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-tree_002c-show">tree,
show</a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-tree_002c-show-1">tree,
show</a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-tree_002c-show-subtree">tree,
show subtree</a>:</td><td> </td><td valign="top"><a
href="#Hiding-and-Showing">Hiding and Showing</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-Treemacs">Treemacs</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Key-Modeline-Clicks">Smart Mouse Key Modeline
Clicks</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-Treemacs-1">Treemacs</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Treemacs">Smart Key - Treemacs</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-Treemacs-item-drag">Treemacs
item drag</a>:</td><td> </td><td valign="top"><a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer
Items</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-troubleshooting-Smart-Keys">troubleshooting Smart
Keys</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Debugging">Smart Key Debugging</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-tutorial">tutorial</a>:</td><td> </td><td valign="top"><a
href="#Manual-Overview">Manual Overview</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-type-definition">type
definition</a>:</td><td> </td><td valign="top"><a
href="#Creating-Types">Creating Types</a></td></tr>
@@ -13166,6 +13272,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-web-search-menu">web search
menu</a>:</td><td> </td><td valign="top"><a href="#Web-Search-Engines">Web
Search Engines</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-web-search-menu-1">web search
menu</a>:</td><td> </td><td valign="top"><a
href="#Global-Key-Bindings">Global Key Bindings</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-where-to-display">where to
display</a>:</td><td> </td><td valign="top"><a
href="#Referent-Display">Referent Display</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-window-by-letter">window by
letter</a>:</td><td> </td><td valign="top"><a
href="#Keyboard-Drags">Keyboard Drags</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-window-configuration">window
configuration</a>:</td><td> </td><td valign="top"><a
href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-window-configuration-commands">window configuration
commands</a>:</td><td> </td><td valign="top"><a
href="#Window-Configurations">Window Configurations</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-window-configuration-drag">window configuration
drag</a>:</td><td> </td><td valign="top"><a
href="#Saving-and-Restoring-Window-Configurations">Saving and Restoring Window
Configurations</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index 3682d9d..1f4a847 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index d74d0e4..cc07b65 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 5c5e513..cd7028d 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -151,8 +151,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
-Edition 7.0.0
-Printed November 15, 2017.
+Edition 7.0.1
+Printed November 21, 2017.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -176,7 +176,7 @@ Printed November 15, 2017.
@center The Everyday Hypertextual Information Manager
address@hidden Edition 7.0.0, November 15, 2017.
address@hidden Edition 7.0.1, November 21, 2017.
@sp 2
@noindent
@@ -297,6 +297,7 @@ Dragging Buffers, Windows and Items
* Displaying Buffers::
* Cloning Windows::
* Displaying File and Buffer Items::
+* Keyboard Drags::
Buttons
@@ -412,6 +413,7 @@ Smart Mouse Keys
Smart Keyboard Keys
+* Smart Key - Treemacs::
* Smart Key - Emacs Pushbuttons::
* Smart Key - Argument Completion::
* Smart Key - ID Edit Mode::
@@ -460,7 +462,7 @@ Smart Keyboard Keys
@chapter Introduction
This edition of the GNU Hyperbole Manual is for use with any version
-7.0.0 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
+7.0.1 or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
or higher. It will trigger an error if your Emacs is older.
This chapter summarizes the structure of the rest of the manual,
@@ -1082,8 +1084,8 @@ kill (delete) the thing.
@cindex cut region
@cindex copy region
@cindex paste region
-Even better are Smart Mouse Key drags which let you copy or move
-delimited things in one operation without even highlighting them. To
+Even better are Smart Mouse Key thing drags which let you copy or move
+delimited things in one operation without having to select a region. To
copy, simply drag with the Action Key from a thing's opening delimiter
and release somewhere outside of the thing, either within the same
window or within another window. The thing will be copied to the
@@ -1092,9 +1094,6 @@ same drag but with the Assist Mouse Key. Ensure that you
do not move
any explicit buttons from one buffer to another as that does not
work.
-Try out some of these operations in HTML or source code files to see
-how they can speed your editing.
-
@noindent
Hyperbole also binds two convenience keys for working with things.
@@ -1156,6 +1155,8 @@ you can click anywhere on the buffer identifier.
@item Buffer ID Element
@cindex dired
address@hidden directory editor
address@hidden dired-jump
@cindex modeline, dired
@cindex buffer id
@cindex modeline, buffer id
@@ -1167,11 +1168,21 @@ Then Action Key clicks on directory items in the dired
buffer display the
items selected in other windows. An Action Key drag from an item to
another window displays the item in that window.
-An Action Key click on the first line in a dired buffer which contains the
-current directory path, specifically on any ancestor part of the path (the
-part to the left of the click point), starts another dired session on the
-ancestor directory. Click at the end of this line to end the dired session
-(bury its buffer).
+An Action Key click on the first line in a dired buffer which contains
+the current directory path, specifically on any ancestor part of the
+path (the part to the left of the click point), starts another dired
+session on the ancestor directory. Click at the end of this line or
+on the last line to end the dired session (bury its buffer).
+
address@hidden Treemacs
address@hidden file viewer, Treemacs
+If you use the Treemacs file viewer Emacs package, you can configure Hyperbole
+to use this instead of Dired when you click on a modeline buffer id.
+
+Since this is a customization option, it may be change permanently like so.
+Use @bkbd{M-x customize-set-variable @key{RET}
action-key-modeline-buffer-id-function @key{RET}}.
+Change the value to @code{smart-treemacs-modeline}. Then press @key{RET}. To
change it back
+to Hyperbole's default, use the value, @code{dired-jump}.
@item Large Blank Area
@@ -1236,25 +1247,16 @@ use that with the following in your Emacs
initialization file:
To set it back to the default use:
@code{(setq action-key-modeline-function #'hmouse-context-menu)}.
address@hidden dired-jump
@findex hui-menu-screen-commands
address@hidden directory editor
address@hidden dired
@cindex modeline, screen command menu
The default @code{assist-key-modeline-function} is to pop up a menu of
convenient screen commands that lets you select buffers grouped by
major mode, use HyControl, or jump to specific windows, window
-configurations or frames. If you would prefer it runs the directory
-editor @code{dired} on the directory associated with the window of the
-modeline press, use this: @code{(setq assist-key-modeline-function
#'dired-jump)}.
-To set it back to the default use:
address@hidden(setq assist-key-modeline-function #'hui-menu-screen-commands)}.
+configurations or frames.
-These variables may also be changed permanently with the Emacs
-interactive customization interface. Use @bkbd{M-x customize-variable
address@hidden assist-key-modeline-function @key{RET}}. In the Assist
-Modeline Function text field that appears, change the value
-to @code{dired-jump}. Then press the ``Apply and Save'' button.
+Since these are customization options, they may be change permanently like so.
+Use @bkbd{M-x customize-set-variable @key{RET} assist-key-modeline-function
@key{RET}}.
+Change the value to your desired command. Then press @key{RET}.
@end itemize
@node Smart Mouse Key Drags, , Smart Mouse Key Modeline Clicks, Smart Keys
@@ -1352,6 +1354,7 @@ locations with drags. Below we explore these drag
actions.
* Displaying Buffers::
* Cloning Windows::
* Displaying File and Buffer Items::
+* Keyboard Drags::
@end menu
@node Swapping Buffers, Displaying Buffers, Dragging Buffers, Dragging Buffers
@@ -1397,24 +1400,84 @@ be created, selected and sized according to the
original window. Do the same
thing with the Assist Mouse Key and the original window will be deleted as
well,
unless it is the only window in that frame.
address@hidden Displaying File and Buffer Items, , Cloning Windows, Dragging
Buffers
address@hidden Displaying File and Buffer Items, Keyboard Drags, Cloning
Windows, Dragging Buffers
@subsubsection Displaying File and Buffer Items
@cindex dired item drag
@cindex buffer menu item drag
address@hidden Treemacs item drag
@cindex drag, dired item
@cindex drag, buffer menu item
-You can do the same thing with items in dired, buffer menu and ibuffer menus
-rather than buffers themselves. Drag with the Action Mouse Key and the
selected
-item will be displayed in any Emacs window in which you release. Drag outside
-Emacs and it will be displayed in a new frame.
address@hidden drag, Treemacs item
+You can do the same thing with items in dired, buffer menu and ibuffer menu
+listing buffers rather than buffers themselves. Drag with the Action Mouse Key
+and the selected item will be displayed in any Emacs window in which you
+release. Drag outside Emacs and it will be displayed in a new frame. To
+display the last item you want, press the Action Key on it and it will display
+within the listing window itself. (If you use the Treemacs file viewer
package,
+item dragging works there as well). Remember that you can emulate these drags
+from the keyboard when needed, @pxref{Smart Mouse Key Drags}.
So now you can put a bunch of buffers and files on your screen wherever
you like. Typically, a brief visual pulse is shown first at the source item
and
-then in the whole destination window, to help you see that the transfer has
been
+then in the destination window, to help you see that the transfer has been
made. An Assist Key Drag will move the the item list buffer to the
destination (swapping buffers), just as it does with other buffers.
address@hidden Keyboard Drags, , Displaying File and Buffer Items, Dragging
Buffers
address@hidden Keyboard Drags
+
address@hidden M-o
address@hidden C-u M-o
address@hidden C-x o
address@hidden hkey-operate
address@hidden drag emulation
address@hidden emulation, drag
address@hidden keyboard drags
+If you run Emacs under a window system and there is no prior key binding
+on @bkbd{M-o} when you load Hyperbole, then many Action Key drags can be
+emulated from the keyboard. To do so, press @bkbd{M-o}, the
address@hidden command, at the button source location, move
+to the link destination, e.g.@: with @bkbd{C-x o}, and then press
address@hidden again. This simulates a depress and release of the
+Action Key. @bkbd{C-u M-o} emulates drags of the Assist Key.
+This will not work when Hyperbole is run from a dumb terminal Emacs
+session since drag actions are not supported without a window system.
+
address@hidden ace-window
address@hidden hkey-ace-window-setup
address@hidden ace-window
address@hidden window by letter
address@hidden jump to window by letter
address@hidden keyboard, jump to window
+For even faster keyboard-based drag emulation, use the Emacs
+package @code{ace-window} (see
@url{https://elpa.gnu.org/packages/ace-window.html}).
+
+The ace-window package assigns short letter IDs to each Emacs window and lets
+you jump to or operate upon a specific window by giving its ID. Hyperbole can
+add an operation to ace-window that replaces the two-step drag emulation key
+described above with a single key sequence that jumps directly to the
+destination window desired. This is most useful when working with dired or
+buffer menu @emph{items}, so the drag operation uses the @address@hidden key
+within @code{ace-window}.
+
+To enable this feature, in your Emacs initialization file after
+Hyperbole is initialized, if you do not have a key bound for
address@hidden, then call: @code{(hkey-ace-window-setup \"\M-o\")}
+to bind it to @bkbd{M-o}. Otherwise, call the setup function without
+a key: @code{(hkey-ace-window-setup)}.
+
address@hidden link creation from keyboard
address@hidden keyboard link creation
+After setup, the leftmost character or two of each window's modeline will show
+the ID to type to use that window as the drag destination. Then whenever point
+is on an item you want displayed in another window, use @bkbd{M-o i
+<id-of-window-to-display-item-in>} and watch the magic happen. You can also
use
+this to create explicit button links to other window buffers when in an
editable
+buffer.
+
address@hidden -------
+
@c @node Smart Mouse Key Modifiers, , Smart Mouse Key Drags, Smart Keys
@c @section Smart Mouse Key Modifiers
@@ -2546,21 +2609,6 @@ Buffer without File link-to-buffer-tmp
@end example
@end format
address@hidden M-o
address@hidden C-u M-o
address@hidden C-x o
address@hidden hkey-operate
address@hidden emulation, Action Key drag
address@hidden keyboard drag emulation
-If you run Emacs under a window system and there is no prior key
-binding on @bkbd{M-o} when you load Hyperbole, then you can emulate
-an Action Key drag from the keyboard by typing @bkbd{M-o}, the
address@hidden command, at the button source location, moving
-to the link destination, e.g.@: with @bkbd{C-x o}, and then typing
address@hidden again. This simulates a depress and then release of the
-Action Key. @bkbd{C-u M-o} emulates drags of the Assist Key.
-This will not work when Hyperbole is run from a dumb terminal Emacs
-session since drag actions are not supported without a window system.
@node By Menu, , By Dragging, Creation
@subsubsection Creation Via Menus
@@ -4992,6 +5040,7 @@ For finding matches within only BBDB, there are the
commands
@code{hyrolo-bbdb-fgrep} (string finding) and @code{hyrolo-bbdb-grep}
(regular expression finding). They may be bound to keys if desired.
address@hidden contacts, Google
@cindex Google Contacts
@cindex Gmail Contacts
If you use Google/Gmail Contacts, you can configure the HyRolo to
@@ -5006,8 +5055,9 @@ Contacts to your searches.
When you next do a search, you will be prompted for your Google
Contacts password and may also have to enter an authorization code
-that will be displayed on your screen. After authorization, you may
-at times be re-prompted for your password.
+that will be displayed on your screen. After authorization, your
+your information will be cached so that you are not prompted for
+it again within this Emacs session.
@findex hyrolo-google-contacts-fgrep
@findex hyrolo-google-contacts-grep
@@ -5017,10 +5067,9 @@ For finding matches within only Google Contacts, there
are the commands
may be bound to keys if desired.
@vindex hyrolo-google-contacts-flag
-Because Google can require frequent reauthorization to search your
-contacts, there is a flag, @code{hyrolo-google-contacts-flag}, which
-when set to @samp{nil} disables searching of your Google Contacts.
-
+If you ever need to disable Google Contacts usage, there is a
+flag, @code{hyrolo-google-contacts-flag}, which when set to @samp{nil}
+disables searching of your Google Contacts.
@noindent
Below are the rest of the settings available with HyRolo:
@@ -7735,6 +7784,7 @@ If dragged from an Emacs window to outside of Emacs:
@section Smart Keyboard Keys
@menu
+* Smart Key - Treemacs::
* Smart Key - Emacs Pushbuttons::
* Smart Key - Argument Completion::
* Smart Key - ID Edit Mode::
@@ -7777,7 +7827,36 @@ If dragged from an Emacs window to outside of Emacs:
* Smart Key - Default Context::
@end menu
address@hidden Smart Key - Emacs Pushbuttons, Smart Key - Argument Completion,
Smart Keyboard Keys, Smart Keyboard Keys
address@hidden Smart Key - Treemacs, Smart Key - Emacs Pushbuttons, Smart
Keyboard Keys, Smart Keyboard Keys
address@hidden Smart Key - Treemacs
+
address@hidden Treemacs
+Treemacs is an add-on Emacs package that offers a fixed, per-frame, graphical
+window for hierarchically browsing and operating upon directories, files and
+programming tags within files. Use the Emacs package manager to install it and
+then invoke it with @bkbd{M-x treemacs @key{RET}} and quit with @bkbd{q}.
+
address@hidden
+Treemacs items may be dragged with the Action Key to other windows for display.
address@hidden File and Buffer Items}.
+
address@hidden
address@hidden
+When in a Treemacs file browser buffer:
+ ACTION KEY or ASSIST KEY
+ (1) on an entry icon, the treemacs TAB command is run to expand and
+ collapse the entry;
+ (2) elsewhere within an entry line, the item is displayed for editing,
+ normally in another window;
+ (3) on the first line of the buffer (other than the end of line),
+ dired is run on the current directory of this Treemacs;
+ (4) at the end of the first or last line of the buffer,
+ this Treemacs invocation is quit.
address@hidden group
address@hidden format
+
+
address@hidden Smart Key - Emacs Pushbuttons, Smart Key - Argument Completion,
Smart Key - Treemacs, Smart Keyboard Keys
@subsection Smart Key - Emacs Pushbuttons
@format
diff --git a/man/im/C-hh.png b/man/im/C-hh.png
new file mode 100644
index 0000000..c6e5bb3
Binary files /dev/null and b/man/im/C-hh.png differ
diff --git a/man/version.texi b/man/version.texi
index f9a2794..2ff12f6 100644
--- a/man/version.texi
+++ b/man/version.texi
@@ -1,4 +1,4 @@
address@hidden UPDATED November 15, 2017
address@hidden UPDATED November 21, 2017
@set UPDATED-MONTH Nov 2017
address@hidden EDITION 7.0.0
address@hidden VERSION 7.0.0
address@hidden EDITION 7.0.1
address@hidden VERSION 7.0.1
- [elpa] externals/hyperbole updated (9b2d75a -> 34a3fe5), Robert Weiner, 2017/11/22
- [elpa] externals/hyperbole 9169c75 1/6: Updated Hyperbole git archive pointer for elpa merging use, Robert Weiner, 2017/11/22
- [elpa] externals/hyperbole 5cc7ac8 5/6: Fixed small issues in error reporting and released version 7.0.1, Robert Weiner, 2017/11/22
- [elpa] externals/hyperbole 658ca9e 4/6: Fixed issue where Hyperbole improperly bound {q} for quit in with-temp-buffer buffers., Robert Weiner, 2017/11/22
- [elpa] externals/hyperbole 099bdae 2/6: Keyboard drags; Treemacs item drags; Ace-Window item throws and HyRolo Google Contacts improvements, Robert Weiner, 2017/11/22
- [elpa] externals/hyperbole e99098c 3/6: Documented latest changes and allowed for small movements in Smart Mouse Key modeline clicks, Robert Weiner, 2017/11/22
- [elpa] externals/hyperbole 34a3fe5 6/6: 7.0.1 Merge branch 'master' of http://git.savannah.gnu.org/r/hyperbole into externals/hyperbole,
Robert Weiner <=