[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole cc77f02 13/13: Merge remote-tracking branch '
From: |
Stefan Monnier |
Subject: |
[elpa] externals/hyperbole cc77f02 13/13: Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole |
Date: |
Sun, 12 May 2019 11:11:48 -0400 (EDT) |
branch: externals/hyperbole
commit cc77f023334034940f787df194422b80c7d079b9
Merge: a6eb9f8 997803d
Author: Stefan Monnier <address@hidden>
Commit: Stefan Monnier <address@hidden>
Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole
---
Changes | 113 ++++++++++++-
DEMO | 131 +++++++++++----
HY-ABOUT | 5 +-
HY-NEWS | 80 ++++++---
HY-WHY.kotl | 53 +++---
Makefile | 2 +-
README.md | 14 +-
README.md.html | 12 +-
_hypb | Bin 2234 -> 4188 bytes
hact.el | 5 +-
hargs.el | 36 ++--
hibtypes.el | 54 +++---
hmh.el | 2 +-
hmouse-drv.el | 111 +++++++++----
hmouse-mod.el | 2 +-
hmouse-tag.el | 37 ++++-
hpath.el | 81 +++++----
hsys-org.el | 5 +-
hsys-www.el | 2 +-
htz.el | 2 +-
hui-jmenu.el | 2 +-
hui-mouse.el | 27 +--
hui-select.el | 2 +-
hui-treemacs.el | 49 +++---
hui-window.el | 9 +-
hui-xe-but.el | 2 +-
hui.el | 2 +-
hversion.el | 8 +-
hvm.el | 2 +-
hypb.el | 8 +
hyperbole-pkg.el | 8 -
hyperbole.el | 10 ++
hyrolo-logic.el | 2 +-
kotl/kotl-autoloads.el | 45 ++++-
man/hkey-help.txt | 7 +-
man/hyperbole.html | 435 ++++++++++++++++++++++++++++++-------------------
man/hyperbole.info | Bin 490392 -> 494112 bytes
man/hyperbole.pdf | Bin 1264179 -> 1265402 bytes
man/hyperbole.texi | 220 +++++++++++++++++--------
man/im/wgrid4x3.png | Bin 0 -> 3854568 bytes
man/version.texi | 8 +-
set.el | 2 +-
smart-clib-sym | 0
topwin.py | 2 +-
44 files changed, 1086 insertions(+), 511 deletions(-)
diff --git a/Changes b/Changes
index 8b13892..7d4d658 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,112 @@
+2019-05-11 Bob Weiner <address@hidden>
+
+* man/hyperbole.texi (External Viewers): Commented out reference to mailcap use
+ since it is presently not used (commented out in the code).
+
+* hpath.el (hpath:find): Fixed filename and path ordering error when
+ path contains a variable and a hash anchor.
+
+* DEMO (POSIX and MSWindows Paths): Added this section.
+* HY-WHY.kotl: Added a reference to that section.
+
+2019-05-09 Bob Weiner <address@hidden>
+
+* hmouse-drv.el (hkey-drag-item):
+ (hmouse-click-to-drag-item): Added and thereby changed
+ {M-o i} to trigger an error if not on an item to drag. This also prevent
+ Hyperbole explicit button creation from being invoked which can be
+ confusing to users.
+* DEMO (Displaying File and Buffer Items and Moving Buffers): Updated with
+ {M-o i} change.
+
+2019-05-07 Bob Weiner <address@hidden>
+
+* hpath.el (hpath:directory-expand-alist: Added to store the reverse of
+ each WSL mount-point for when converting from mswindows-to-posix. Set
+ in hpath:cache-mswindows-mount-points.
+ (hpath:cache-mswindows-mount-points): Downcase all mounted Windows
paths.
+ (hpath:mswindows-path-posix-mount-alist): Added.
+
+2019-05-05 Bob Weiner <address@hidden>
+
+* hmouse-tag.el (smart-jedi-find-file): Added.
+ (smart-python-jedi-to-definition-p): Improved to use
+ hpath:display-where to display target when possible, i.e. when the
+ emacs-jedi project accepts our pull-request that adds this feature.
+
+2019-04-22 Bob Weiner <address@hidden>
+
+* hversion.el: Pushed BW changes for 7.0.2c test update.
+
+* hargs.el (hargs:delimited): Added exclude-regexp argument.
+* hpath.el (hpath:delimited-possible-path): Used above new argument
+ to prevent matching to strings that include string quotes.
+
+2019-04-21 Bob Weiner <address@hidden>
+
+* man/hkey-help.txt: Added Company-mode and Treemacs entries.
+
+* hui-window.el (hmouse-alist-add-window-handlers): Renamed from
hui-window--register.
+
+* man/hyperbole.texi (Smart Key - Company Mode): Added.
+
+2019-03-11 Bob Weiner <address@hidden>
+
+* man/hyperbole.texi (Implicit Buttons, gitlab-reference):
+ DEMO (Gitlab (Remote) References): Added these sections.
+
+2019-02-16 Bob Weiner <address@hidden>
+
+* hui-window.el (smart-window-of-coords): Handled null coords parameter.
+
+2019-02-10 Bob Weiner <address@hidden>
+
+* hmouse-drv.el (hkey-drag-to): Fixed to match documentation that says will
+ create an explicit file link button if called anywhere other than on
+ a listing item.
+
+* hui-treemacs.el (smart-treemacs-modeline): Replaced old call of
+ treemacs-buffer-exists? with new calls to treemacs-current-visibility
+ and treemacs-get-local-buffer for Treemacs V2.
+
+2019-02-06 Bob Weiner <address@hidden>
+
+* hibtypes.el (ripgrep-msg): Tightened match to ignore empty potential
filenames
+ that matched when they were expanded to the current directory.
+
+2019-02-05 Bob Weiner <address@hidden>
+
+* hmouse-tag.el (smart-lisp-mode-p): Removed change-log-mode.
+ (smart-lisp-at-change-log-tag-p): Added so can match
+ only to bound Elisp entities in change-log-mode with '-' in
+ the middle of their names to prevent false positives.
+ hui-mouse.el (hkey-alist): Added tightened change-log-mode handling.
+ man/hyperbole.texi (Smart Key - Lisp Source Code): Documented change.
+
+* hargs.el (hargs:delimited): Fixed that strings on lines with an odd number
+ of delimiters might fail to match. Since strings can span lines but this
+ function matches only strings that start on the current line, when
+ start-delim and end-delim are the same and there are an odd number of
+ delimiters in the search range, assume point is within a
+ string and not between two other strings.
+ For example, with the following text and point within "DEMO", its path
+ previously was not found:
+ For each site, the links are properly maintained. See "DEMO#Path
+ suffixes and Variables" and "DEMO#Path Prefixes". "DEMO"
+
+* hui-treemacs.el: Deleted treemacs-mode from aw-ignored-buffers so can select
+ a Treemacs window via ace-window.
+
+2019-02-04 Bob Weiner <address@hidden>
+
+* hui-mouse.el (smart-dired-assist): Prevented any region selection from
+ causing multiple files to be marked for deletion; we want to mark
+ only one.
+
+* hibtypes.el (annot-bib): Stopped this from activating when in org-mode to
avert false positives.
+ (markdown-follow-inline-link-p, markdown-internal-link): Added
ibut:label-set
+ to show a decent approximation of the button label when displaying help.
+
2019-02-03 Bob Weiner <address@hidden>
* hversion.el: Pushed BW changes for 7.0.2b test update.
@@ -8,7 +117,7 @@
* hui-treemacs.el (treemacs-version): Require v2 or higher.
-* hsettings.el (hyperbole-default-web-search-term-max-lines):
+* hsettings.el (hyperbole-default-web-search-term-max-lines):
(hyperbole-default-web-search-term): Added.
* hpath.el (hpath:tramp-file-name-regexp): Added and used in hpath:remote-at-p.
@@ -47,7 +156,7 @@
Added and called when Hyperbole is initialized, mainly to allow access to
MSWindows network shares which would otherwise not be accessible as links
under POSIX systems.
- (hpath:map-plist): Added to map over property lists.
+ (hypb:map-plist): Added to map over property lists.
Called in hpath:cache-mswindows-mount-points.
2019-01-26 Bob Weiner <address@hidden>
diff --git a/DEMO b/DEMO
index c8c8315..1d3b4a1 100644
--- a/DEMO
+++ b/DEMO
@@ -1,5 +1,7 @@
* GNU Hyperbole Demonstration by Bob Weiner
+ Say thanks if you like Hyperbole: https://saythanks.io/to/rswgnu
+
Table of Contents
-----------------
* Introduction
@@ -65,7 +67,7 @@ and returns here.
See also the later section, <(Smart Mouse Keys)>.
-Now let's look at many of the things you can do with the Smart Keys.
+Now let's look at some of the things you can do with the Smart Keys.
** Table of Contents Browsing
@@ -139,7 +141,6 @@ You can change which browser is used with {C-h h c w}, the
Cust/Web-Search
menu. Advanced users can change the search engines listed by editing the
option, <(hyperbole-web-search-alist)>.
-
** Help Buffers
Since the Smart Keys do so many things, it is helpful to see what they will
@@ -175,17 +176,17 @@ A unique feature of Hyperbole is the Koutliner; it is for
outlining thoughts,
developing requirements or listing tasks and hyperlinking them to other
documents.
-The Hyperbole Koutliner produces structured, autonumbered documents composed
-of hierarchies of cells. Each cell has two identifiers, a relative
-autonumber indicating its present position within the outline and a permanent
-identifier suitable for use within hyperlink references to the cell.
+The Hyperbole Koutliner produces multi-level, autonumbered hierarchies of
+cells. Each cell has two identifiers, a relative autonumber indicating its
+present position within the outline and a permanent identifier suitable for
+use within hyperlink references to the cell.
A demonstration of the Koutliner is found on the Hyperbole Kotl/Example menu
entry. {C-h h k e}, gives you an editable copy of Hyperbole's example
Koutliner file. This explains the Koutliner commands and lets you try them
out as you learn. Additional documentation can be found in
-"(hyperbole)Koutliner". "(hyperbole)Koutliner Keys" summarizes in
-alphabetical order the Koutliner commands which are bound to keys.
+"(hyperbole)Koutliner". "(hyperbole)Koutliner Keys" summarizes, in
+alphabetical order, the Koutliner commands which are bound to keys.
* HyControl
@@ -258,10 +259,11 @@ action key here: {.1 % .23 @}.
You can even write something like this to do the whole thing in one sequence.
First, let's quit out of HyControl Frames mode with {q}. Then go back to one
-window with {C-x 1}. Now we can execute a single sequence from any buffer that
-creates our 2x3 window grid: {C-h h s f .1 % .23 @ q}. Pretty amazing,
-right? You can separate each command by any number of spaces or even jam them
-all together: address@hidden
+window with {C-x 1}. Now we can execute a single sequence from any buffer
+that creates our 2x3 window grid: {C-h h s f .1 % .23 @ q}. Pretty amazing,
+right? You can separate each command by any number of spaces or even jam
+them all together: address@hidden Use SPC (separated by spaces) to
+include a space as part of the key sequence.
A zero argument to the address@hidden command is special. It means you want
to display
buffers with a particular major mode first, e.g. c-mode. You will be
@@ -417,12 +419,13 @@ them.
** Key Sequence Buttons
-Any Emacs key sequence delimited with curly braces is an implicit button.
-Press the Action Key with {C-u C-p} for example and the point should move
-four lines upward. An Assist Key press on the key sequence displays the
-documentation for its command binding, i.e. what it does. Key sequences
-together with the arguments their commands prompt for also may be given,
-e.g. {M-x apropos RET hyperbole RET}. Click in the braces to try it out.
+Any Emacs key sequence (or multiple sequences) delimited by curly braces is
+an implicit button. Press the Action Key with {C-u C-p} for example and the
+point should move four lines upward. An Assist Key press on the key sequence
+displays the documentation for its command binding, i.e. what it does. Key
+sequences together with the arguments their commands prompt for also may be
+given, e.g. {M-x apropos RET hyperbole RET}. Click in the braces to try it
+out.
Hyperbole minibuffer menu items may also be activated as key sequences. For
example, {C-h h d i} displays the online browsable Info version of the
@@ -585,6 +588,37 @@ you can also use paths of the form:
ftp://ftp.gnu.org/pub/
+*** POSIX and MSWindows Paths
+
+Hyperbole recognizes standard POSIX paths as well as typical MSWindows
+paths (both local and network shares) and can convert an in-buffer
+path between POSIX and MSWindows formats multiple times, even paths
+involving mount points. Hyperbole even recognizes the different ways
+paths are accessed when using Windows for GNU/Linux (WSL) atop
+MSWindows, where all of these reference the same directory:
+"c:/Users", "c:\Users", "/C/Users", "/c/Users", and "/mnt/c/Users".
+
+MSWindows paths may be used within links and implicit path buttons
+just like POSIX paths, whether running Emacs under a POSIX system or
+MSWindows. If under POSIX, a remote MSWindows path must be accessed
+through a mount point to the network share. Hyperbole caches such
+mount points when it is first loaded. Use {M-x
+hpath:cache-mswindows-mount-points RET} to update them if more mounts
+are made later.
+
+{M-x hpath:substitute-posix-or-mswindows-at-point RET} toggles any
+path at point between POSIX and MSWindows styles. Bind it to a key
+for rapid path transformations.
+
+The function, `hpath:substitute-posix-or-mswindows', does the same thing
+for properly quoted path strings, for example:
+ (hpath:substitute-posix-or-mswindows "C:\\Users") yields "/mnt/c/Users"
+and
+ (hpath:substitute-posix-or-mswindows "/c/Users") yields "c:\\Users".
+
+To convert pathnames in one direction only, use the
+`hpath:mswindows-to-posix' or `hpath:posix-to-mswindows' functions.
+
** Internet Request For Comments (RFC) Document Browsing
With Tramp, you can also retrieve and browse RFC documents used in Internet
@@ -684,6 +718,46 @@ user, project and commit hash code are all included. The
second and
third versions require the setup of default values, as explained in
the commentary near the top of "hib-social.el".
+Similarly, the same file above explains how to link to pull requests,
+issues, branches and tags.
+
+** Gitlab (Remote) References
+
+For software developers who use Gitlab for publishing and version control,
+Gitlab links are similar to social media links but reference specific Gitlab
+web pages. See "#Github (Remote) References" for the basic syntax of such
+links but substitute 'gl' instead of 'gh'.
+
+Gitlab offers many more types of reference links than Github, here they are:
+
+ gl#gitlab-org/gitlab-ce/activity Summarize user's project activity
+ gl#gitlab-org/gitlab-ce/analytics Display user project's
cycle_analytics
+ gl#gitlab-org/gitlab-ce/boards Display user project's kanban-type
issue boards
+
+ Once you set the default user and project variables, you can leave
+ them off any reference links:
+
+ (setq hibtypes-gitlab-default-user "gitlab-org")
+ (setq hibtypes-gitlab-default-project "gitlab-ce")
+
+ gl#jobs Display default project's
computing jobs
+ gl#labels Display default project's issue
categories
+ gl#members Display default project's staff
list
+ gl#contributors Show contributor push frequency
charts
+ gl#merge_requests or gl#pulls Display default project's pull
requests
+ gl#milestones Display default project's
milestones status
+ gl#pages Display default project's web pages
+ gl#pipelines List build and test sequences
+ gl#pipeline_charts Graphical view of pipeline run
results across time
+ gl#schedules Display schedules for project
pipelines
+ gl#snippets Project snippets, diffs and text
with discussion
+
+ gl#groups List all available groups of
projects
+ gl#projects List all available projects
+
+ gl#milestone=38 Show a specific project milestone
+ gl#snippet/1689487 Show a specific project snippet
+
** Git (Local) References
Similarly, again for software developers, git references work on local
@@ -727,7 +801,7 @@ e.g. filter a file to just lines that don't match a pattern
(RemoveLines).
** Annotated Bibliography Buttons
-Annotated Bibliography references such as [FSF 16] may be embedded in any file
+Annotated Bibliography references such as [FSF 19] may be embedded in any file
and activated with the Action Key to find the reference at the end of the file.
Try that one by pressing between the square brackets.
@@ -743,7 +817,7 @@ displayed. Test this technique with a {C-x C-f}
(find-file) and then a {?}.
** Hyperbole Source Buttons
If you ask for help with the Assist Key or {C-u C-h A} from within the
-[FSF 16] button, the first line of the help buffer will look like this:
+[FSF 19] button, the first line of the help buffer will look like this:
@loc> "DEMO"
@@ -1159,13 +1233,12 @@ configured and the suggested M-o key binding is made,
the leftmost character or
two of each window's modeline will show the <window-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 <window-id> and watch the magic happen.
-You can also use this to create explicit button links to other window buffers
-when in an editable buffer. If you want to display multiple items in different
-windows, instead use the M-o t <window-id> key sequence to @emph{throw} each
-item to a different window, while leaving the same selected window. To replace
-the selected window's buffer with that of another window, use M-o r
<window-id>.
-To instead swap the selected window's buffer with that of another window,
-use M-o m <window-id>. Try these commands out and they will speed your work.
+If you want to display multiple items in different windows, instead use the
+M-o t <window-id> key sequence to @emph{throw} each item to a different window,
+while leaving the same selected window. To replace the selected window's
+buffer with that of another window, use M-o r <window-id>. To instead swap the
+selected window's buffer with that of another window, use M-o m <window-id>.
+Try these commands out and they will speed your work.
*** Cloning Windows
@@ -1277,7 +1350,7 @@ to dive deeper. Read it online with the GNU Info reader
at "(hyperbole)Top".
* References
-[FSF 16] Free Software Foundation, Inc. GNU Emacs Manual. Free Software
-Foundation, Cambridge: MA, 2016. "(emacs)Top"
+[FSF 19] Free Software Foundation, Inc. GNU Emacs Manual. Free Software
+Foundation, Cambridge: MA, 2019. "(emacs)Top"
* THE END
diff --git a/HY-ABOUT b/HY-ABOUT
index 72ada9c..11e2285 100644
--- a/HY-ABOUT
+++ b/HY-ABOUT
@@ -3,7 +3,10 @@
Designed and Written by Bob Weiner
Maintained by Mats Lidell and Bob Weiner
https://www.gnu.org/software/hyperbole/
- Version 7.0.2b
+ Version 7.0.3
+
+ Say thanks if you like Hyperbole:
+ https://saythanks.io/to/rswgnu
GNU Hyperbole (pronounced Ga-new Hi-per-bo-lee), or just Hyperbole, is
an efficient and programmable hypertextual information management
diff --git a/HY-NEWS b/HY-NEWS
index c1f8fbb..61e138c 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -25,27 +25,37 @@
hmouse-click-to-drag-stay, hmouse-click-to-drag-to,
hmouse-click-to-replace, hmouse-click-to-swap, hmouse-click-to-throw.
+ - {M-o i <window-id>} is now for use only when on a listing item such as
+ in Dired or Buffer Menu. It no longer creates Hyperbole buttons in
+ non-item areas to avoid confusion. Now it will just trigger an error
+ if not on a listing item.
+
SMART (ACTION AND ASSIST) KEYS
- MSWindows Paths: Hyperbole now recognizes typical MSWindows paths (both
- local and remote). They may be used within links and implicit path
buttons
- just like POSIX paths, whether running Emacs under a POSIX system or
- MSWindows. If under POSIX, a remote MSWindows path must be accessed
through
- a mount point to the network share. Hyperbole caches such mount points
when
- it is loaded. Use {M-x hpath:cache-mswindows-mount-points RET} to
update them
- if more mounts are made later. See also the NEW COMMANDS section herein
for
- how to convert a path between POSIX and MSWINDOWS/DOS formats.
+ local and remote shares) and can convert an in-buffer path between POSIX
+ and MSWindows formats multiple times, even paths involving mount points.
+ See "DEMO#POSIX and MSWindows Paths".
+
+ MSWindows paths may be used within links and implicit path
+ buttons just like POSIX paths, whether running Emacs under a POSIX
+ system or MSWindows. If under POSIX, a remote MSWindows path must be
+ accessed through a mount point to the network share. Hyperbole caches
+ such mount points when it is loaded. Use {M-x
+ hpath:cache-mswindows-mount-points RET} to update them if more mounts
+ are made later. See also the NEW COMMANDS section herein for how to
+ convert a path between POSIX and MSWindows formats.
- GitLab and Github Links: Added Gitlab implicit links with equivalent
- functionality to those of Github. Added "people" reference support
- to list people who are part of a formal organization as well as a
- "staff" alias. Added "contributors" reference support to list project
+ functionality to those of Github. Added "people" reference support to
+ list people who are part of a formal organization as well as a "staff"
+ alias. Added "contributors" reference support to list project
contributors as well. Improved Github implicit issue links: gh#gh-34
and gh#issue/34 now properly reference an issue in the current project.
- - Ripgrep: Added new ripgrep-msg implicit button type which jumps to
- the source referenced by ripgrep (rg) output. Ripgrep by
- default outputs pathnames only once beforeall matching lines
+ - Ripgrep: Added new ripgrep-msg implicit button type which jumps
+ to the source referenced by ripgrep (rg) output. By default,
+ ripgrep outputs pathnames only once before all matching lines
within that path. Ripgrep may also be used with the Hyperbole
`hypb:rgrep' command by setting 'hypb:rgrep-command'. See
"https://github.com/BurntSushi/ripgrep".
@@ -55,28 +65,43 @@
- Org Mode: When in an *Org Help* buffer, the Smart Keys now defer to
org-mode to handle jumps to its own locations for compatibility.
+ Similarly, in org-mode buffers when not on an org link or heading,
+ and the {M-RET} Action Key is pressed, Hyperbole defers to Org's
+ org-meta-return command.
- - Drag-based Kill, Copy and Yank: Added support for dragging across frames.
+ - Drag-based Kill, Copy and Yank: Added support for dragging across
+ frames.
- Python Identifiers: If a Jedi server is running and the Action Key is
pressed on a Python identifier, Hyperbole will use Jedi to find the
- definition even within nested module references, e.g. a.b.c. Also
improved
- basic identifier definition finding.
+ definition even within nested module references, e.g. a.b.c. Also
+ improved basic identifier definition finding.
- Company Mode Completion: Support for the Emacs company-mode completion
- package. After a user loads company-mode, the Action Key when pressed on
- a source code identifier will run 'smart-company-to-definition' and the
- Assist Key will run 'smart-company-help'.
+ package. An Action Key press on a company-mode completion item will
+ display the definition of that item and an Assist Key press will
+ display its documentation, if any.
- Treemacs Mode: Now supports standard Hyperbole end-of-line proportional
scrolling.
- - ChangeLog Mode: Smart Keys now work on Emacs Lisp references in
changelogs.
+ - ChangeLog Mode: Smart Keys now work on Emacs Lisp references in
+ changelogs.
+
+ - Improved String Matching: For lines that begin with part of a string
+ that started on another line, Hyperbole now presumes that point is
+ within a string rather than between two strings, even though the
+ delimiters on the line make this ambiguous. This provides more
+ accurate string recognition.
+
+ - Improved Path Matching: For quote delimited paths, other quote marks
+ are excluded from matches, so if checking for a doubly quoted path,
+ single quotes are not allowed in the string.
HYCONTROL
- Help Buffer Quitting: If HyControl is active, normally {q} quits
- it but now if point is in an Emacs help buffer, {q} will quit
+ it, but now if point is in an Emacs help buffer, {q} will quit
from the help buffer instead. Use {Q} to quit from HyControl
unconditionally.
@@ -92,12 +117,12 @@
- MSWindows and POSIX Path Toggling: In "hpath.el", added
(hpath:substitute-posix-or-mswindows-at-point) and
(hpath:substitute-posix-or-mswindows) commands to toggle the
- format of a path at point or in a string between POSIX and MSWindows
- styles.
+ format of a path at point or in a string between POSIX and
+ MSWindows styles.
PROGRAMMING
- - Added hpath:map-plist, equivalent to mapcar but maps over
+ - Added hypb:map-plist, equivalent to mapcar but maps over
key-value pairs in property lists (where the key and value are
individual elements in the list).
@@ -120,6 +145,13 @@
- Popup Menus: Documented how to invoke the Koutliner and
HyRolo popup menus in Emacs. See "(hyperbole)Menu Commands".
+ - DEMO: Added sections:
+ "DEMO#Gitlab (Remote) References"
+ "DEMO#POSIX and MSWindows Paths"
+
+ - Updated Hyperbole Manual with new features.
+
+
===========================================================================
* V7.0.2
===========================================================================
diff --git a/HY-WHY.kotl b/HY-WHY.kotl
index bda6d2e..c7e0769 100644
--- a/HY-WHY.kotl
+++ b/HY-WHY.kotl
@@ -23,22 +23,27 @@
each site, the links are properly maintained. See "DEMO#Path
Suffixes and Variables" and "DEMO#Path Prefixes".
- 5. Quickly search the web for targeted types of information such as
+ 5. Automatically translate POSIX and MSWindows paths within buffers
+ or links to the right format for the current operating system,
+ eliminating the drudgery of converting backslashes to forward
+ slashes. See "DEMO#POSIX and MSWindows Paths".
+
+ 6. Quickly search the web for targeted types of information such as
programming questions, code libraries, images, videos,
locations, word definitions, wikipedia entries or even tweets.
See "DEMO#Hyperbole Menus".
- 6. Embed social media hashtags and user names in any text files.
+ 7. Embed social media hashtags and user names in any text files.
Then jump to the associated web page in your favorite web
browser with an Action Key press. See "DEMO#Social Media
Hashtags and Usernames".
- 7. Similarly, you can embed github and git object links in any
+ 8. Similarly, you can embed github and git object links in any
files with a simple syntax and Hyperbole will display the
associated objects with an Action Key press. See "DEMO#Github
(Remote) References" and "DEMO#Git (Local) References".
- 8. Full-text search for any contact-related information across
+ 9. Full-text search for any contact-related information across
thousands of contacts in under a second. The fastest contact
manager you have ever used, with hierarchical entries so you can
easily find everyone on a particular team or within an
@@ -46,33 +51,33 @@
while still seeing name, phone number and email information.
Edit entries with a single key press. See "DEMO#HyRolo".
- 9. Select regions of structured text or source code and to copy or
+ 10. Select regions of structured text or source code to copy or
move them between buffers with a single mouse drag or two key
presses. These selectable things include: delimited pairs of
(), @address@hidden, <>, [] and quote marks, source code functions,
source
code comments and matching tag pairs in HTML and SGML modes.
- See "DEMO#Thing Selection".
+ See "DEMO#Thing Selection".
- 10. Use the fantastic, auto-numbered Koutliner with per-item links
+ 11. Use the fantastic, auto-numbered Koutliner with per-item links
and rapidly changeable views. See "DEMO#Koutliner".
- 11. Rapid control over what is displayed where in multiple windows
- and frames with mouse drags and the Hyperbole HyControl system.
- See "DEMO#HyControl".
+ 12. Rapid control over what is displayed in each window and frame
+ with mouse drags and the Hyperbole HyControl system. See
+ "DEMO#HyControl".
- 11a. Drag Buffer Menu, Dired or Treemacs items to other windows to
+ 12a. 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".
+ Items and Moving Buffers".
- 11b. Drag-and-drop text regions across Emacs frames. See
- "DEMO#Things".
+ 12b. Drag-and-drop text regions across Emacs frames. See
+ "DEMO#Thing Selection".
- 11c. Swap buffers in windows across frames with a mouse drag.
+ 12c. Swap buffers in windows across frames with a mouse drag.
See "DEMO#Swapping Buffers".
- 11d. With one command, rapidly create a grid of tiled windows
+ 12d. 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
@@ -82,22 +87,22 @@
same above command to display them in a grid of windows. See
"DEMO#Windows Grid".
- 11e. Use a quick mouse key press to scroll any window line to the
+ 12e. 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".
- 11f. Clone or tear off a window into its own frame with a quick
+ 12f. Clone or tear off a window into its own frame with a quick
mouse drag. See "DEMO#Cloning Windows".
- 11g. Each frame can store a series of window configurations
+ 12g. 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".
- 11h. Easily adjust the height and width of windows and frames as
+ 12h. Easily adjust the height and width of windows and frames as
needed. See "DEMO#Frame Commands".
- 11i. Quick clicks on different areas of a buffer's modeline will
+ 12i. 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
@@ -107,7 +112,7 @@
"ben" ;; kvspec:current
-37 ;; id-counter
+38 ;; id-counter
alpha ;; label-type
4 ;; label-min-width
". " ;; label-separator
@@ -115,7 +120,7 @@ alpha ;; label-type
;; depth-first kcell attributes
[[0
- (creator "address@hidden" create-time "20190203:156:52:59" id-counter 37
file "/c/Users/bob.weiner/Dropbox/emacs/hyperbole/HY-WHY.kotl")]
+ (creator "address@hidden" create-time "20190512:130:33:52" id-counter 38
file "/home/bob.weiner/Dropbox/emacs/hyperbole/HY-WHY.kotl")]
[1
(creator "address@hidden" create-time "20160524:15:04:17" no-fill t)]
[17
@@ -124,6 +129,8 @@ alpha ;; label-type
(creator "address@hidden" create-time "20171114:23:37:20" no-fill t)]
[2
(creator "address@hidden" create-time "20160524:15:04:24" no-fill t)]
+ [38
+ (creator "address@hidden" create-time "20190512:131:21:14" no-fill t)]
[31
(creator "address@hidden" create-time "20171114:23:18:01" no-fill t)]
[33
diff --git a/Makefile b/Makefile
index 6fd8ad1..656eb2b 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.2b
+HYPB_VERSION = 7.0.3
# Emacs executable used to byte-compile .el files into .elc's.
# Possibilities include: emacs, infodock, xemacs, etc.
diff --git a/README.md b/README.md
index 19d283c..37ea631 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,6 @@
-# GNU Hyperbole 7.0.2b - The Everyday Hypertextual Information Manager
+# GNU Hyperbole 7.0.3 - The Everyday Hypertextual Information Manager
+
+[Say thanks if you like Hyperbole.(https://saythanks.io/to/rswgnu)]
<!-- START doctoc generated TOC -->
**Table of Contents**
@@ -497,8 +499,16 @@ Keys).
products I have ever come across. It is certainly the one which has made
the biggest improvement in my personal productivity.
+ My Hyperbole button file is my start page in Emacs. It's a quickly
+ searchable index with links to countless resources. We also have a
+ library of implicit buttons that enable rapid navigation from references
+ in our code to our issue tracking system, so clicking a reference like
+ Client6502 opens the relevant conversation. Hyperbole provides a really
+ useful set of power tools. If Emacs is your preferred productivity
+ environment, it's definitely worth getting familiar with it.
+
-- Chris Nuzum
- Co-founder, Traction Software, Inc.
+ Co-founder, Traction Softwarea, Inc.
-------
diff --git a/README.md.html b/README.md.html
index 4a45809..0ed4301 100644
--- a/README.md.html
+++ b/README.md.html
@@ -1,5 +1,6 @@
<h1>
-<a
id="user-content-gnu-hyperbole-702b---the-everyday-hypertextual-information-manager"
class="anchor"
href="#gnu-hyperbole-702b---the-everyday-hypertextual-information-manager"
aria-hidden="true"><span aria-hidden="true" class="octicon
octicon-link"></span></a>GNU Hyperbole 7.0.2b - The Everyday Hypertextual
Information Manager</h1>
+<a
id="user-content-gnu-hyperbole-703---the-everyday-hypertextual-information-manager"
class="anchor"
href="#gnu-hyperbole-703---the-everyday-hypertextual-information-manager"
aria-hidden="true"><span aria-hidden="true" class="octicon
octicon-link"></span></a>GNU Hyperbole 7.0.3 - The Everyday Hypertextual
Information Manager</h1>
+<p>[Say thanks if you like Hyperbole.(<a href="https://saythanks.io/to/rswgnu"
rel="nofollow">https://saythanks.io/to/rswgnu</a>)]</p>
<p><strong>Table of Contents</strong></p>
<ul>
@@ -466,8 +467,15 @@ Emacs packages and incredibly useful set of core features.
I think that
Hyperbole is one of the best designed and most easily extensible software
products I have ever come across. It is certainly the one which has made
the biggest improvement in my personal productivity.</p>
+<p>My Hyperbole button file is my start page in Emacs. It's a quickly
+searchable index with links to countless resources. We also have a
+library of implicit buttons that enable rapid navigation from references
+in our code to our issue tracking system, so clicking a reference like
+Client6502 opens the relevant conversation. Hyperbole provides a really
+useful set of power tools. If Emacs is your preferred productivity
+environment, it's definitely worth getting familiar with it.</p>
<pre><code> -- Chris Nuzum
- Co-founder, Traction Software, Inc.
+ Co-founder, Traction Softwarea, Inc.
</code></pre>
<hr>
<p>I've found Hyperbole (in conjunction with XEmacs) to be very useful
diff --git a/_hypb b/_hypb
index a3c7217..65fd41d 100644
Binary files a/_hypb and b/_hypb differ
diff --git a/hact.el b/hact.el
index 67e79da..e765732 100644
--- a/hact.el
+++ b/hact.el
@@ -259,9 +259,10 @@ Other paths are simply expanded. Non-path arguments are
returned unchanged."
;;; ========================================================================
(defmacro hact (&rest args)
- "Performs action formed from rest of ARGS.
+ "Performs action formed from rest of ARGS and returns the result or acts as
a no-op when testing implicit button type contexts.
First arg may be a symbol or symbol name for either an action type or a
-function. Runs `action-act-hook' before performing action."
+function. Runs `action-act-hook' before performing action.
+The value of `hrule:action' determines what effect this has."
(eval `(cons 'funcall (cons 'hrule:action ',args))))
(defun actype:act (actype &rest args)
diff --git a/hargs.el b/hargs.el
index 822f967..57b78a6 100644
--- a/hargs.el
+++ b/hargs.el
@@ -99,12 +99,14 @@ interactive form or takes no arguments."
(subst-char-in-string ?\^@ ?: string t)))
(defun hargs:delimited (start-delim end-delim
- &optional start-regexp-flag end-regexp-flag
list-positions-flag)
- "Returns a normalized, single line, delimited string that point is within,
or nil.
+ &optional start-regexp-flag end-regexp-flag
+ list-positions-flag exclude-regexp)
+ "Returns a normalized, single line, delimited string that point is within
the first line of, or nil.
START-DELIM and END-DELIM are strings that specify the argument
delimiters. With optional START-REGEXP-FLAG non-nil, START-DELIM is
treated as a regular expression. END-REGEXP-FLAG is similar.
-With optional LIST-POSITIONS-FLAG, return list of (string-matched start-pos
end-pos)."
+With optional LIST-POSITIONS-FLAG, return list of (string-matched start-pos
end-pos).
+With optional EXCLUDE-REGEXP, any matched string is ignored if it this regexp."
(let* ((opoint (point))
(limit (if start-regexp-flag opoint
(+ opoint (1- (length start-delim)))))
@@ -112,17 +114,29 @@ With optional LIST-POSITIONS-FLAG, return list of
(string-matched start-pos end-
'search-forward))
(end-search-func (if end-regexp-flag 're-search-forward
'search-forward))
+ (count 0)
start end)
(save-excursion
(beginning-of-line)
(while (and (setq start (funcall start-search-func start-delim limit t))
+ (setq count (1+ count))
(< (point) opoint)
;; This is not to find the real end delimiter but to find
;; end delimiters that precede the current argument and are
;; therefore false matches, hence the search is limited to
;; prior to the original point.
- (funcall end-search-func end-delim opoint t))
+ (funcall end-search-func end-delim opoint t)
+ (setq count (1+ count)))
(setq start nil))
+ (when (and (not start) (> count 0) (evenp count) (string-equal
start-delim end-delim))
+ ;; Since strings can span lines but this function matches only
+ ;; strings that start on the current line, when start-delim and
+ ;; end-delim are the same and there are an even number of
+ ;; delimiters in the search range, causing the end-delim
+ ;; search to match to what should probably be the start-delim,
+ ;; assume point is within a string and not between two other strings.
+ ;; RSW - 02/05/2019
+ (setq start (point)))
(when start
(forward-line 2)
(setq limit (point))
@@ -142,13 +156,15 @@ With optional LIST-POSITIONS-FLAG, return list of
(string-matched start-pos end-
(setq end (1- end))
t)
(< start end)
+ (>= end opoint)
(let ((string (hargs:buffer-substring start end)))
- (setq string (hypb:replace-match-string "[\n\r\f]\\s-*" string "
" t))
- (unless hyperb:microsoft-os-p
- (setq string (hpath:mswindows-to-posix string)))
- (if list-positions-flag
- (list string start end)
- string)))))))
+ (unless (and (stringp exclude-regexp) (string-match
exclude-regexp string) )
+ (setq string (hypb:replace-match-string "[\n\r\f]\\s-*" string
" " t))
+ (unless hyperb:microsoft-os-p
+ (setq string (hpath:mswindows-to-posix string)))
+ (if list-positions-flag
+ (list string start end)
+ string))))))))
(defun hargs:get (interactive-entry &optional default prior-arg)
"Prompts for an argument, if need be, from INTERACTIVE-ENTRY, a string.
diff --git a/hibtypes.el b/hibtypes.el
index 7e8282c..8aaae63 100644
--- a/hibtypes.el
+++ b/hibtypes.el
@@ -128,9 +128,11 @@ any buffer attached to a file in `hyrolo-file-list', or
any buffer with
"Makes a valid pathname display the path entry.
Also works for delimited and non-delimited remote pathnames,
Texinfo @file{} entries, and hash-style link references to HTML,
-Markdown or Emacs outline headings. Emacs Lisp library
-files (filenames without any directory component that end in .el
-and .elc) are looked up using the `load-path' directory list.
+Markdown or Emacs outline headings, and MSWindows paths (see
+\"${hyperb:dir}/DEMO#POSIX and MSWindows Paths\" for details).
+Emacs Lisp library files (filenames without any directory
+component that end in .el and .elc) are looked up using the
+`load-path' directory list.
See `hpath:at-p' function documentation for possible delimiters.
See `hpath:suffixes' variable documentation for suffixes that are
@@ -250,29 +252,6 @@ current major mode is one handled by func-menu."
(hact 'function-in-buffer function-name function-pos)))))))
;;; ========================================================================
-;;; Use the Emacs imenu library to jump to definition of an identifier
-;;; defined in the same file in which it is referenced. Identifier
-;;; references across files are handled separately by clauses within
-;;; the `hkey-alist' variable.
-;;; ========================================================================
-
-;;; This implicit button type is not needed because hkey-alist handles imenu
items.
-;; (defib imenu-item ()
-;; "Displays the in-buffer definition of an identifier that point is within
or after, else nil.
-;; This triggers only when imenu has already been used to generate an
in-buffer item index."
-;; (when (and (featurep 'imenu) imenu--index-alist)
-;; (save-excursion
-;; (skip-syntax-backward "w_")
-;; (if (looking-at "\\(\\sw\\|\\s_\\)+")
-;; (let* ((item-name (buffer-substring-no-properties (point) (match-end
0)))
-;; (start (point))
-;; (end (match-end 0))
-;; (item-pos (imenu-item-p item-name)))
-;; (when item-pos
-;; (ibut:label-set item-name start end)
-;; (hact 'imenu-display-item-where item-name item-pos)))))))
-
-;;; ========================================================================
;;; Handles internal references within an annotated bibliography, delimiters=[]
;;; ========================================================================
@@ -287,7 +266,7 @@ must have an attached file."
(let ((chr (aref (buffer-name) 0)))
(not (or (eq chr ?\ ) (eq chr ?*))))
(not (or (derived-mode-p 'prog-mode)
- (memq major-mode '(c-mode objc-mode c++-mode java-mode
markdown-mode))))
+ (apply #'derived-mode-p '(c-mode objc-mode c++-mode java-mode
markdown-mode org-mode))))
(let* ((ref-and-pos (hbut:label-p t "[" "]" t))
(ref (car ref-and-pos)))
(and ref (eq ?w (char-syntax (aref ref 0)))
@@ -342,10 +321,11 @@ Returns t if jumps and nil otherwise."
;; Leave point on the link even if not activated
;; here, so that code elsewhere activates it.
(if (and (markdown-link-p)
- (not (or (hpath:www-at-p) (hpath:at-p))))
- ;; In-file referents will be handled later by the
- ;; pathname implicit type, not here.
- (progn (hpath:display-buffer (current-buffer))
+ (save-match-data (not (or (hpath:www-at-p)
(hpath:at-p)))))
+ ;; In-file referents are handled by the
'markdown-internal-link'
+ ;; implicit button type, not here.
+ (progn (ibut:label-set (match-string-no-properties 0)
(match-beginning 0) (match-end 0))
+ (hpath:display-buffer (current-buffer))
(hact 'markdown-follow-link-at-point))))
(goto-char opoint)
nil))
@@ -361,6 +341,7 @@ Returns t if jumps and nil otherwise."
;; Follows a reference link or footnote to its referent.
(if (markdown-follow-link-p)
(when (/= opoint (point))
+ (ibut:label-set (match-string-no-properties 0)
(match-beginning 0) (match-end 0))
(setq npoint (point))
(goto-char opoint)
(hact 'link-to-file buffer-file-name npoint))
@@ -370,6 +351,7 @@ Returns t if jumps and nil otherwise."
;; link itself and follow that.
(error (markdown-follow-inline-link-p opoint))))
((markdown-wiki-link-p)
+ (ibut:label-set (match-string-no-properties 0) (match-beginning 0)
(match-end 0))
(hpath:display-buffer (current-buffer))
(hact 'markdown-follow-wiki-link-at-point))))))
@@ -677,12 +659,14 @@ buffer)."
(beginning-of-line)
(when (looking-at "\\([1-9][0-9]*\\)[-:]")
;; Ripgrep matches and context lines (-A<num> option)
- (let ((line-num (match-string-no-properties 1)))
+ (let ((line-num (match-string-no-properties 1))
+ file)
(while (and (= (forward-line -1) 0)
(looking-at "[1-9][0-9]*[-:]\\|--$")))
- (unless (looking-at "[1-9][0-9]*[-:]\\|--$")
- (let* ((file (buffer-substring-no-properties (point-at-bol)
(point-at-eol)))
- (but-label (concat file ":" line-num))
+ (unless (or (looking-at "[1-9][0-9]*[-:]\\|--$")
+ (and (setq file (buffer-substring-no-properties
(point-at-bol) (point-at-eol)))
+ (string-empty-p (string-trim file))))
+ (let* ((but-label (concat file ":" line-num))
(source-loc (if (file-name-absolute-p file) nil
(hbut:key-src t))))
(if (stringp source-loc)
diff --git a/hmh.el b/hmh.el
index 38ac5c9..919903b 100644
--- a/hmh.el
+++ b/hmh.el
@@ -1,4 +1,4 @@
-;;; hmh.el --- GNU Hyperbole buttons in mail reader: Mh
+;;; hmh.el --- GNU Hyperbole buttons in mail reader: Mh
;;
;; Author: Bob Weiner
;;
diff --git a/hmouse-drv.el b/hmouse-drv.el
index 4ab75b7..e5361cb 100644
--- a/hmouse-drv.el
+++ b/hmouse-drv.el
@@ -238,13 +238,8 @@ Any ARGS will be passed to `hmouse-function'."
hkey-value nil))))
;;; Smart Key Commands
-(defun action-key ()
- "Use one key to perform functions that vary by context.
-If no matching context is found, the default function set with
-the `action-key-default-function' variable is run. Return t
-unless the `action-key-default-function' variable is not bound to
-a valid function."
- (interactive)
+(defun action-key-clear-variables ()
+ "Clear all Action Key variables."
;; Clear all these variables so there can be no confusion between
;; mouse presses and keyboard presses.
(setq action-key-depress-prev-point nil
@@ -254,7 +249,29 @@ a valid function."
action-key-release-position nil
action-key-release-args nil
action-key-release-window nil
- action-key-release-prev-point nil)
+ action-key-release-prev-point nil))
+
+(defun assist-key-clear-variables ()
+ "Clear all Assist Key variables."
+ ;; Clear all these variables so there can be no confusion between
+ ;; mouse presses and keyboard presses.
+ (setq assist-key-depress-prev-point nil
+ assist-key-depress-position nil
+ assist-key-depress-args nil
+ assist-key-depress-window nil
+ assist-key-release-position nil
+ assist-key-release-args nil
+ assist-key-release-window nil
+ assist-key-release-prev-point nil))
+
+(defun action-key ()
+ "Use one key to perform functions that vary by context.
+If no matching context is found, the default function set with
+the `action-key-default-function' variable is run. Return t
+unless the `action-key-default-function' variable is not bound to
+a valid function."
+ (interactive)
+ (action-key-clear-variables)
(prog1 (action-key-internal)
(run-hooks 'action-key-depress-hook 'action-key-release-hook)))
@@ -275,16 +292,7 @@ the `assist-key-default-function' variable is run. Return
non-nil unless `assist-key-default-function' variable is not
bound to a valid function."
(interactive)
- ;; Clear all these variables so there can be no confusion between
- ;; mouse presses and keyboard presses.
- (setq assist-key-depress-prev-point nil
- assist-key-depress-position nil
- assist-key-depress-args nil
- assist-key-depress-window nil
- assist-key-release-position nil
- assist-key-release-args nil
- assist-key-release-window nil
- assist-key-release-prev-point nil)
+ (assist-key-clear-variables)
(prog1 (assist-key-internal)
(run-hooks 'assist-key-depress-hook 'assist-key-release-hook)))
@@ -325,7 +333,7 @@ bound to a valid function."
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
+operate upqon 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.
@@ -355,7 +363,7 @@ magic happen."
aw-dispatch-alist (delq (assq ?t aw-dispatch-alist)
(delq (assq ?r aw-dispatch-alist)
(delq (assq ?i aw-dispatch-alist)
aw-dispatch-alist))))
- (push '(?i hkey-drag-to "Hyperbole: Drag To") aw-dispatch-alist)
+ (push '(?i hkey-drag-item "Hyperbole: Drag Item") aw-dispatch-alist)
;; Ace-window includes ?m as the swap windows key, so it is not added here.
(push '(?r hkey-replace "Hyperbole: Replace Here") aw-dispatch-alist)
(push '(?t hkey-throw "Hyperbole: Throw To") aw-dispatch-alist)
@@ -409,6 +417,38 @@ Works only when running under a window system, not from a
dumb terminal."
(hypb:select-window-frame start-window)))))
;;;###autoload
+(defun hkey-drag-item (release-window)
+ "Emulate Smart Mouse Key drag from an item in a selected window to
RELEASE-WINDOW, interactively chosen via ace-window.
+RELEASE-WINDOW is left selected unless point is not on an item, in
+which case, an error is signalled.
+
+Optional prefix arg non-nil means emulate Assist Key rather than the
+Action Key.
+
+Works only when running under a window system, not from a dumb terminal."
+ (interactive
+ (list (let ((mode-line-text (concat " Ace - " (nth 2 (assq ?i
aw-dispatch-alist)))))
+ (aw-select mode-line-text))))
+ (let ((start-window (if (and (boundp 'start-window) (window-live-p
start-window))
+ start-window
+ (if current-prefix-arg
+ assist-key-depress-window
+ action-key-depress-window)))
+ at-item-flag)
+ (unless (window-live-p start-window)
+ (setq start-window (selected-window)))
+ (cond ((and (setq at-item-flag (hmouse-at-item-p))
+ (window-live-p release-window))
+ (hkey-drag release-window)
+ ;; Leave release-window selected
+ (when (window-live-p release-window)
+ (hypb:select-window-frame release-window)))
+ (at-item-flag
+ (error "(hkey-drag-item): No listing item at point"))
+ (t ;; No item at point or selected release is invalid
+ (error "(hkey-drag-item): Invalid final window, %s"
release-window)))))
+
+;;;###autoload
(defun hkey-drag-to (release-window)
"Emulate Smart Mouse Key drag from a selected window to RELEASE-WINDOW,
interactively chosen via ace-window.
If an item is dragged to RELEASE-WINDOW, then RELEASE-WINDOW is selected;
@@ -435,14 +475,17 @@ Works only when running under a window system, not from a
dumb terminal."
;; Leave release-window selected
(when (window-live-p release-window)
(hypb:select-window-frame release-window)))
- (if (eq start-window release-window)
- ;; Leave hkey-drag to choose final selected window
- (hkey-drag release-window)
- ;; Replace release window's buffer with selected
- ;; window's buffer.
- (hkey-buffer-to start-window release-window)
- (when (window-live-p release-window)
- (hypb:select-window-frame release-window))))))
+ ;; Leave hkey-drag to choose final selected window
+ (hkey-drag release-window)
+ ;; (if (eq start-window release-window)
+ ;; ;; Leave hkey-drag to choose final selected window
+ ;; (hkey-drag release-window)
+ ;; ;; Replace release window's buffer with selected
+ ;; ;; window's buffer.
+ ;; (hkey-buffer-to start-window release-window)
+ ;; (when (window-live-p release-window)
+ ;; (hypb:select-window-frame release-window)))
+ )))
;;;###autoload
(defun hkey-replace (release-window)
@@ -564,6 +607,14 @@ The selected window does not change."
(hmouse-choose-windows #'hkey-drag-stay))
;;;###autoload
+(defun hmouse-click-to-drag-item ()
+ "Mouse click on start and end windows for use with `hkey-drag-item'.
+Emulate {M-o i} from start window to end window.
+After the drag, the end window is the selected window."
+ (interactive)
+ (hmouse-choose-windows #'hkey-drag-item))
+
+;;;###autoload
(defun hmouse-click-to-drag-to ()
"Mouse click on start and end windows for use with `hkey-drag-to'.
Emulate Smart Mouse Key drag from start window to end window.
@@ -716,6 +767,10 @@ 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")
+ (unless (or action-key-depressed-flag action-key-help-flag)
+ (action-key-clear-variables))
+ (unless (or assist-key-depressed-flag assist-key-help-flag)
+ (assist-key-clear-variables))
(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)))
diff --git a/hmouse-mod.el b/hmouse-mod.el
index 0c3df2b..4417e2f 100644
--- a/hmouse-mod.el
+++ b/hmouse-mod.el
@@ -1,4 +1,4 @@
-;;; hmouse-mod.el --- Action Key acts as CONTROL modifier and Assist Key as
META modifier.
+;;; hmouse-mod.el --- Action Key acts as CONTROL modifier and Assist Key as
META modifier.
;;
;; Author: Bob Weiner
;;
diff --git a/hmouse-tag.el b/hmouse-tag.el
index 4a69c28..1ced3a5 100644
--- a/hmouse-tag.el
+++ b/hmouse-tag.el
@@ -635,6 +635,15 @@ buffer."
(beginning-of-line)
(looking-at "\\(;*[ \t]*\\)?(\\(autoload\\|load\\|require\\)")))
+(defun smart-lisp-at-change-log-tag-p ()
+ "When in a change-log mode, match to only bound Elisp identifiers and those
with a '-' somewhere in the middle.
+These tight tests help eliminate undesired matches.
+Returns matching ELisp tag name that point is within, else nil."
+ (when (derived-mode-p 'change-log-mode)
+ (let ((identifier (smart-lisp-at-tag-p)))
+ (and identifier (intern-soft identifier)
+ (string-match "[^-]-[^-]" identifier)))))
+
(defun smart-lisp-at-tag-p (&optional no-flash)
"Returns Lisp tag name that point is within, else nil.
Returns nil when point is on the first line of a non-alias Lisp definition."
@@ -644,7 +653,7 @@ Returns nil when point is on the first line of a non-alias
Lisp definition."
(save-excursion
(skip-chars-backward identifier-chars)
(if (and (looking-at identifier)
- ;; Ignore any all punctuation matches.
+ ;; Ignore any punctuation matches.
(not (string-match "\\`[-<>*]+\\'" (match-string 0)))
;; Needed to set match string.
(looking-at identifier))
@@ -664,7 +673,7 @@ Returns nil when point is on the first line of a non-alias
Lisp definition."
(defun smart-lisp-mode-p ()
"Return t if in a mode which uses Lisp symbols."
(or (smart-emacs-lisp-mode-p)
- (memq major-mode '(lisp-mode scheme-mode change-log-mode))))
+ (memq major-mode '(lisp-mode scheme-mode))))
;;;###autoload
(defun smart-objc (&optional identifier next)
@@ -761,23 +770,35 @@ If key is pressed:
(buffer-substring-no-properties (match-beginning 2) (match-end 2))
(match-beginning 2) (match-end 2)))))))
+(defun smart-jedi-find-file (file line column other-window)
+ "Function that reads a source file for jedi navigation.
+It takes these arguments: (file-to-read other-window-flag line_number
column_number)."
+ (hpath:display-buffer (find-file file) other-window)
+ (jedi:goto--line-column line column))
(defun smart-python-jedi-to-definition-p ()
"If the Jedi Python identifier server is running, test and use it to jump to
the definition.
See https://tkf.github.io/emacs-jedi/latest/."
;; Use functions from jedi-core.el only, not from jedi.el, since
;; company-jedi.el users will have loaded only jedi-core.el.
- (when (featurep 'jedi-core)
+ (when (and (featurep 'jedi-core) jedi-mode)
(let* ((servers (jedi:-get-servers-in-use))
(proc (epc:manager-server-process (car servers))))
(and servers (processp proc)
(eq 'run (process-status (process-buffer proc)))
;; The goto is performed asynchronously.
;; It reports in the minibuffer when a definition is not found.
- (progn (jedi:goto-definition t)
- ;; For use as a predicate, always return t if the Jedi server
- ;; is running so other lookup techniques are not tried.
- t)))))
+ ;; !! Only works on tag at point, not the tagname passed in as jedi
+ ;; does not accept a tag parameter.
+ ;;
+ ;; jedi:find-file-function is an RSW custom
+ ;; modification that allows display-where to work;
+ ;; otherwise, will just display in another window.
+ (let ((jedi:find-file-function #'smart-jedi-find-file))
+ (jedi:goto-definition hpath:display-where)
+ ;; For use as a predicate, always return t if the Jedi server
+ ;; is running so other lookup techniques are not tried.
+ t)))))
;;;###autoload
(defun smart-python (&optional identifier next)
@@ -1279,7 +1300,7 @@ See the \"${hyperb:dir}/smart-clib-sym\" script for more
information."
(with-no-warnings (find-tag tag))))
;; Signals an error if tag is not found which is caught by
;; many callers of this function.
- (with-no-warnings (find-tag tag)))))
+ (with-no-warnings (find-tag tag)))))
;;;###autoload
(defun smart-tags-file-path (file)
diff --git a/hpath.el b/hpath.el
index eafc2e1..51e1d14 100644
--- a/hpath.el
+++ b/hpath.el
@@ -80,6 +80,13 @@ If the value of 'hpath:mswindows-mount-prefix' changes, then
re-initialize this
(defconst hpath:mswindows-path-regexp "\\`.*\\.*[a-zA-Z0-9_.]"
"Regular expression matching the start of an MSWindows path that does not
start with a drive letter but contains directory separators.")
+(defvar hpath:mswindows-path-posix-mount-alist nil
+ "Automatically set alist of (window-path-prefix . posix-mount-point)
elements.")
+
+(defvar hpath:directory-expand-alist nil
+ "Automatically set alist of (posix-mount-point . window-path-prefix)
elements.
+ Used to expand windows prefixes to posix mount points during
mswindows-to-posix.")
+
;;;###autoload
(defun hpath:mswindows-to-posix (path)
"Convert a recognizable MSWindows PATH to a Posix-style path or return the
path unchanged.
@@ -102,10 +109,10 @@ If path begins with an MSWindows drive letter, prefix the
converted path with th
path)
(defun hpath:mswindows-to-posix-separators (path)
- "Replace all backslashes with forward slashes in PATH and abbreviate the
path if possible.
-Path must be a string or an error will be triggered. See
-'abbreviate-file-name' for how path abbreviation is handled."
- (abbreviate-file-name (replace-regexp-in-string "\\\\" "/" path)))
+ "Replace all backslashes with forward slashes in PATH and expand the path
against `directory-abbrev-alist', if possible.
+Path must be a string or an error will be triggered."
+ (let ((directory-abbrev-alist hpath:directory-expand-alist))
+ (replace-regexp-in-string "\\\\" "/" (abbreviate-file-name path))))
;;;###autoload
(defun hpath:posix-to-mswindows (path)
@@ -131,7 +138,6 @@ If path begins with an optional mount prefix,
'hpath:mswindows-mount-prefix', fo
rest-of-path))))))
path)
-
(defun hpath:posix-to-mswindows-separators (path)
"Replace all forward slashes with backslashes in PATH and abbreviate the
path if possible.
Path must be a string or an error will be triggered. See
@@ -169,37 +175,40 @@ Path must be a string or an error will be triggered. See
(hpath:mswindows-to-posix path))))
;;;###autoload
-(defun hpath:map-plist (func plist)
- "Returns result of applying FUNC of two args, key and value, to key-value
pairs in PLIST, a property list."
- (cl-loop for (k v) on plist by #'cddr
- collect (funcall func k v) into result
- return result))
-
-;;;###autoload
(defun hpath:cache-mswindows-mount-points ()
"Cache valid MSWindows mount points in 'directory-abbrev-alist' when under a
non-MSWindows operating system, e.g. WSL.
Call this function manually if mount points change after Hyperbole is loaded."
(interactive)
(when (not hyperb:microsoft-os-p)
- (let (path mount-point)
+ (let ((mount-points-to-add
+ ;; Sort alist of (path-mounted . mount-point) elements from shortest
+ ;; to longest path so that the longest path is selected first within
+ ;; 'directory-abbrev-alist' (elements are added in reverse order).
+ (sort
+ ;; Convert plist to alist for sorting.
+ (hypb:map-plist (lambda (path mount-point)
+ (if (string-match "\\`\\([a-zA-Z]\\):\\'" path)
+ ;; Drive letter must be downcased
+ ;; in order to work when converted back to
Posix.
+ (setq path (concat "/" (downcase
(match-string 1 path)))))
+ ;; Assume all mounted Windows paths are
+ ;; lowercase for now.
+ (cons (downcase path) mount-point))
+ ;; Return a plist of MSWindows path-mounted
mount-point pairs.
+ (split-string (shell-command-to-string (format "df
-a -t drvfs 2> /dev/null | sort | uniq | grep -v '%s' | sed -e 's+ .*[-%%] /+
/+g'" hpath:posix-mount-points-regexp))))
+ (lambda (cons1 cons2) (<= (length (car cons1)) (length (car
cons2))))))
+ path mount-point)
(mapcar (lambda (path-and-mount-point)
(setq path (car path-and-mount-point)
mount-point (cdr path-and-mount-point))
(add-to-list 'directory-abbrev-alist (cons (format "\\`%s"
(regexp-quote path))
mount-point)))
- ;; Sort alist of (path-mounted . mount-point) elements from
shortest
- ;; to longest path so that the longest path is selected first
within
- ;; 'directory-abbrev-alist' (elements are added in reverse order).
- (sort
- ;; Convert plist to alist for sorting.
- (hpath:map-plist (lambda (path mount-point)
- (if (string-match "\\`\\([a-zA-Z]\\):\\'" path)
- (setq path (concat "/" (downcase
(match-string 1 path)))))
- (cons path mount-point))
- ;; Return a plist of MSWindows path-mounted
mount-point pairs.
- (split-string (shell-command-to-string
- (format "df 2> /dev/null | grep
-v '%s' | sed -e 's/ .*%%//g'" hpath:posix-mount-points-regexp))))
- (lambda (cons1 cons2) (<= (length (car cons1)) (length (car
cons2)))))))))
+ mount-points-to-add)
+ (setq hpath:directory-expand-alist
+ ;; Save the reverse of each mount-points-to-add so
+ ;; can expand paths when going from posix-to-mswindows.
+ (mapcar (lambda (elt) (cons (cdr elt) (car elt)))
mount-points-to-add))
+ mount-points-to-add)))
;;; ************************************************************************
@@ -705,9 +714,9 @@ With optional INCLUDE-POSITIONS, returns a triplet list of
(path start-pos
end-pos) or nil."
;; Prevents MSWindows to Posix path substitution
(let ((hyperb:microsoft-os-p t))
- (or (hargs:delimited "\"" "\"" nil nil include-positions)
+ (or (hargs:delimited "\"" "\"" nil nil include-positions "[`'’]")
;; Filenames in Info docs or Python files
- (hargs:delimited "[`'‘]" "[`'’]" t t include-positions)
+ (hargs:delimited "[`'‘]" "[`'’]" t t include-positions "\"")
;; Filenames in TexInfo docs
(hargs:delimited "@file{" "}" nil nil include-positions)
;; Any existing whitespace delimited filename at point.
@@ -794,17 +803,17 @@ program)."
(if (string-match hpath:prefix-regexp filename)
(setq modifier (aref filename 0)
filename (substring filename (match-end 0))))
- (setq filename (hpath:substitute-value filename)
+ (setq path (hpath:substitute-value
+ (if (string-match hpath:markup-link-anchor-regexp filename)
+ (progn (setq hash t
+ anchor (match-string 3 filename))
+ (substring filename 0 (match-end 1)))
+ filename))
loc (hattr:get 'hbut:current 'loc)
dir (file-name-directory
;; Loc may be a buffer without a file
(if (stringp loc) loc default-directory))
- filename (hpath:absolute-to filename dir)
- path (if (string-match hpath:markup-link-anchor-regexp filename)
- (progn (setq hash t
- anchor (match-string 3 filename))
- (substring filename 0 (match-end 1)))
- filename))
+ filename (hpath:absolute-to path dir))
(let ((remote-filename (hpath:remote-p path)))
(or modifier remote-filename
(file-exists-p path)
@@ -980,7 +989,7 @@ See also `hpath:internal-display-alist' for internal,
window-system independent
(cons "next"
hpath:external-display-alist-macos)))))))
(defun hpath:is-p (path &optional type non-exist)
- "Returns PATH if PATH is a Posix path, else nil.
+ "Returns PATH if PATH is a Posix or MSWindows path, else nil.
If optional TYPE is the symbol 'file or 'directory, then only that path type
is accepted as a match. The existence of the path is checked only for
locally reachable paths (Info paths are not checked). Single spaces are
diff --git a/hsys-org.el b/hsys-org.el
index 1056d24..59a1eb1 100644
--- a/hsys-org.el
+++ b/hsys-org.el
@@ -46,10 +46,7 @@
;;; ************************************************************************
(defib org-mode ()
- "Follows any Org mode link at point or cycles through views of the outline
subtree at point.
-The variable, `browse-url-browser-function', customizes the url browser that
-is used for urls. Valid values of this variable include
`browse-url-default-browser'
-and `browse-url-generic'."
+ "Follows any Org mode link at point or cycles through views of the outline
subtree at point."
(when (derived-mode-p 'org-mode)
(cond ((org-link-at-p)
(hact 'org-link nil))
diff --git a/hsys-www.el b/hsys-www.el
index c46b138..663a7c1 100644
--- a/hsys-www.el
+++ b/hsys-www.el
@@ -1,4 +1,4 @@
-;;; hsys-www.el --- GNU Hyperbole support for Emacs World-Wide Web (WWW)
browsing
+;;; hsys-www.el --- GNU Hyperbole support for Emacs World-Wide Web (WWW)
browsing
;;
;; Author: Bob Weiner
;;
diff --git a/htz.el b/htz.el
index f467077..3341d6b 100644
--- a/htz.el
+++ b/htz.el
@@ -1,4 +1,4 @@
-;;; htz.el --- Timezone-based time and date support for GNU Hyperbole
+;;; htz.el --- Timezone-based time and date support for GNU Hyperbole
;;
;; Author: Masanobu Umeda / Bob Weiner
;;
diff --git a/hui-jmenu.el b/hui-jmenu.el
index 5ff0543..59b4861 100644
--- a/hui-jmenu.el
+++ b/hui-jmenu.el
@@ -1,4 +1,4 @@
-;;; hui-jmenu.el --- Popup menus for jumping to and managing buffers, frames,
and windows
+;;; hui-jmenu.el --- Popup menus for jumping to and managing buffers, frames,
and windows
;;
;; Author: Bob Weiner
;;
diff --git a/hui-mouse.el b/hui-mouse.el
index 2325c3c..0878500 100644
--- a/hui-mouse.el
+++ b/hui-mouse.el
@@ -246,8 +246,8 @@ Its default value is #'smart-scroll-down."
((and (or (and (eq major-mode 'python-mode) buffer-file-name)
(let ((case-fold-search))
(string-match "\\`\\(Pydoc:\\|\\*?Python\\)" (buffer-name))))
- (smart-python-at-tag-p)) .
- ((smart-python) . (smart-python nil 'next-tag)))
+ (setq hkey-value (smart-python-at-tag-p))) .
+ ((smart-python hkey-value) . (smart-python hkey-value 'next-tag)))
;;
;; Imenu listing in GNU Emacs
((smart-imenu-item-at-p)
@@ -272,8 +272,11 @@ Its default value is #'smart-scroll-down."
buffer-file-name (smart-asm-at-tag-p)) .
((smart-asm) . (smart-asm nil 'next-tag)))
;;
- ((and (smart-lisp-mode-p) (smart-lisp-at-tag-p)) .
- ((smart-lisp) . (smart-lisp 'show-doc)))
+ ((or (and (smart-lisp-mode-p) (smart-lisp-at-tag-p))
+ ;; Tightly limit Lisp matches in change-log-mode.
+ (smart-lisp-at-change-log-tag-p)) .
+ ((smart-lisp) . (smart-lisp 'show-doc)))
+ ;;
;;
((and (eq major-mode 'java-mode) buffer-file-name
(or (smart-java-at-tag-p)
@@ -600,7 +603,7 @@ If key is pressed:
((< (current-column) 5) (calendar-cursor-to-nearest-date)
(scroll-calendar-right-three-months 1))
(t (calendar-cursor-to-nearest-date)
- (view-diary-entries 1))))
+ (diary-view-entries 1))))
(defun smart-calendar-assist ()
"Uses a single assist-key or mouse assist-key to manipulate the scrolling
calendar.
@@ -628,12 +631,12 @@ If assist-key is pressed:
;;; ************************************************************************
;; These functions are called from hkey-alist when keyboard Smart Keys
-;; are used but for mouse keys, they are bound to local keys in
+;; are used. For mouse keys, they are bound to local keys in
;; company-mode's minor mode map.
(defun smart-company-to-definition (event)
"Action Key binding for company-mode completions popup to show item
definition.
-Use left mouse key or RET key to select a completion and exit."
+Use left mouse key, RET or TAB key to select a completion and exit."
(interactive "e")
(when (mouse-event-p last-command-event)
(company-select-mouse event))
@@ -736,9 +739,13 @@ If assist-key is pressed:
(goto-char (point-max)))
((looking-at "~") (dired-flag-backup-files))
((looking-at "#") (dired-flag-auto-save-files))
- (t (if (fboundp 'dired-flag-file-deletion)
- (dired-flag-file-deletion 1)
- (dired-flag-file-deleted 1)))))
+ (t
+ ;; Prevent any region selection from causing multiple files
+ ;; to be marked for deletion; we want to mark only one.
+ (deactivate-mark t)
+ (if (fboundp 'dired-flag-file-deletion)
+ (dired-flag-file-deletion 1)
+ (dired-flag-file-deleted 1)))))
;;; ************************************************************************
;;; smart-gnus functions
diff --git a/hui-select.el b/hui-select.el
index b4bd52b..f70818e 100644
--- a/hui-select.el
+++ b/hui-select.el
@@ -1,4 +1,4 @@
-;;; hui-select.el --- Select larger and larger syntax-driven regions in a
buffer.
+;;; hui-select.el --- Select larger and larger syntax-driven regions in a
buffer.
;;
;; Author: Bob Weiner
;;
diff --git a/hui-treemacs.el b/hui-treemacs.el
index d653645..2cdface 100644
--- a/hui-treemacs.el
+++ b/hui-treemacs.el
@@ -18,13 +18,18 @@
(eval-and-compile (require 'treemacs nil t))
-(unless (string-greaterp treemacs-version "v2")
+(unless (and (featurep 'treemacs) (string-greaterp treemacs-version "v2"))
(error "(hui-treemacs): Hyperbole requires Treemacs package version 2.0 or
greater"))
;;; ************************************************************************
;;; smart-treemacs functions
;;; ************************************************************************
+;; Want to be able to select Treemacs window with ace-window.
+;; This also averts window labeling problems with ace-window.
+(eval-after-load "ace-window"
+ '(setq aw-ignored-buffers (delq 'treemacs-mode aw-ignored-buffers)))
+
(unless (fboundp 'treemacs-quit)
(fset 'treemacs-quit #'bury-buffer))
@@ -79,28 +84,24 @@ 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-quit))
- ;;
- ;; 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-quit))
- ;;
- ;; Otherwise, invoke treemacs on the default dir of the clicked on
modeline.
- (t (treemacs))))
- (error "(smart-treemacs-modeline): Treemacs package is not installed")))
+ (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-quit))
+ ;;
+ ;; Treemacs is visible and displaying the same dir as
+ ;; the default dir of the clicked on modeline.
+ ((and (eq (treemacs-current-visibility) 'visible)
+ (string-equal (expand-file-name default-directory)
+ (with-current-buffer (treemacs-get-local-buffer)
+ default-directory)))
+ ;; Quit/hide treemacs.
+ (treemacs-quit))
+ ;;
+ ;; Otherwise, invoke treemacs on the default dir of the clicked on modeline.
+ (t (treemacs))))
(provide 'hui-treemacs)
diff --git a/hui-window.el b/hui-window.el
index b9a3e7d..8ba6159 100644
--- a/hui-window.el
+++ b/hui-window.el
@@ -4,7 +4,7 @@
;;
;; Orig-Date: 21-Sep-92
;;
-;; Copyright (C) 1992-2018 Free Software Foundation, Inc.
+;; Copyright (C) 1992-2019 Free Software Foundation, Inc.
;; See the "HY-COPY" file for license information.
;;
;; This file is part of GNU Hyperbole.
@@ -173,7 +173,7 @@ drag release window.")
;;; Add window handling to hmouse-alist dispatch table.
(defvar hmouse-alist)
-(defun hui-window--register ()
+(defun hmouse-alist-add-window-handlers ()
(unless (assoc #'(hmouse-inactive-minibuffer-p) hmouse-alist)
(setq hmouse-alist
(append
@@ -241,7 +241,7 @@ drag release window.")
;;
)
hmouse-alist))))
-(with-eval-after-load 'hui-mouse (hui-window--register))
+(with-eval-after-load 'hui-mouse (hmouse-alist-add-window-handlers))
;;; ************************************************************************
;;; Public functions
@@ -724,7 +724,8 @@ Ignores minibuffer window."
(defun smart-window-of-coords (coords)
"Returns window in which COORDS fall or nil if none.
Ignores minibuffer window."
- (cond ((markerp coords)
+ (cond ((null coords) nil)
+ ((markerp coords)
(get-buffer-window (marker-buffer coords)))
((and (not (featurep 'xemacs)) (eventp coords))
(let ((w-or-f (posn-window (event-start coords))))
diff --git a/hui-xe-but.el b/hui-xe-but.el
index 4ce0a77..f135bff 100644
--- a/hui-xe-but.el
+++ b/hui-xe-but.el
@@ -1,4 +1,4 @@
-;;; hui-xe-but.el --- XEmacs button highlighting and flashing support
+;;; hui-xe-but.el --- XEmacs button highlighting and flashing support
;;
;; Author: Bob Weiner
;;
diff --git a/hui.el b/hui.el
index 011e13a..f0d1d48 100644
--- a/hui.el
+++ b/hui.el
@@ -1,4 +1,4 @@
-;;; hui.el --- GNU Hyperbole button and hyperlink user interface
+;;; hui.el --- GNU Hyperbole button and hyperlink user interface
;;
;; Author: Bob Weiner
;;
diff --git a/hversion.el b/hversion.el
index 4dae314..a346e49 100644
--- a/hversion.el
+++ b/hversion.el
@@ -23,17 +23,17 @@
;;; Public variables
;;; ************************************************************************
-(defconst hyperb:version "7.0.2b" "GNU Hyperbole revision number.")
+(defconst hyperb:version "7.0.3" "GNU Hyperbole revision number.")
;;;###autoload
(defvar hyperb:microsoft-os-p
(memq system-type '(ms-windows windows-nt ms-dos win32))
- "T iff Hyperbole is running under a Microsoft OS.")
+ "Non-nil iff Hyperbole is running under a Microsoft OS but not under Windows
Subsystem for Linux (WSL).
+Use `hyperb:wsl-os-p' to test if running under WSL.")
;;;###autoload
(defvar hyperb:wsl-os-p
- (and (memq system-type '(gnu/linux))
- (executable-find "wsl.exe"))
+ (and (eq system-type 'gnu/linux) (executable-find "wsl.exe") t)
"T iff Hyperbole is running under Microsoft Windows Subsystem for Linux
(WSL).")
;;;###autoload
diff --git a/hvm.el b/hvm.el
index 50417dd..8351d0e 100644
--- a/hvm.el
+++ b/hvm.el
@@ -1,4 +1,4 @@
-;;; hvm.el --- GNU Hyperbole buttons in mail reader: Vm
+;;; hvm.el --- GNU Hyperbole buttons in mail reader: Vm
;;
;; Author: Bob Weiner
;;
diff --git a/hypb.el b/hypb.el
index febe94b..7ba68c9 100644
--- a/hypb.el
+++ b/hypb.el
@@ -452,6 +452,13 @@ INACTIVE-P is unused, it is for compatibility with XEmacs'
version of
mark-marker."
(mark-marker)))
+;;;###autoload
+(defun hypb:map-plist (func plist)
+ "Returns result of applying FUNC of two args, key and value, to key-value
pairs in PLIST, a property list."
+ (cl-loop for (k v) on plist by #'cddr
+ collect (funcall func k v) into result
+ finally return result))
+
(defun hypb:map-sublists (func list)
"Applies FUNC to every atom found at any level of LIST.
FUNC must take two arguments, an atom and a list in which the atom is found.
@@ -756,6 +763,7 @@ Without file, the banner is prepended to the current
buffer."
(setq button (make-button (- (point) 3) (- (point) 2) :type
'hyperbole-banner))
(button-put button 'help-echo (concat "Click to visit " hypb:home-page))
(button-put button 'action #'hypb:browse-home-page)
+ (button-put button 'face 'default)
(button-put button 'keymap hypb:hyperbole-banner-keymap)))))
(defun hypb:display-file-with-logo-xemacs (&optional file)
diff --git a/hyperbole-pkg.el b/hyperbole-pkg.el
deleted file mode 100644
index 3a94cb7..0000000
--- a/hyperbole-pkg.el
+++ /dev/null
@@ -1,8 +0,0 @@
-;; -*- no-byte-compile: t -*-
-(define-package "hyperbole" "7.0.2b" "GNU Hyperbole: The Everyday Hypertextual
Information Manager"
- '((emacs "24.4"))
- :url "http://www.gnu.org/software/hyperbole"
- :keywords '("comm" "convenience" "files" "frames" "hypermedia" "languages"
- "mail" "matching" "mouse" "multimedia" "outlines" "tools" "wp"))
-
-(setq byte-compile-warnings '(not interactive-only find-tag free-vars
unresolved))
diff --git a/hyperbole.el b/hyperbole.el
index 54bb122..b8d2340 100644
--- a/hyperbole.el
+++ b/hyperbole.el
@@ -335,6 +335,16 @@ bindings after load)."
;;; Load Hyperbole mouse bindings
;;; ************************************************************************
+;; From mouse-position.c in Emacs:
+;; f = SELECTED_FRAME ();
+;; XSETFRAME (lispy_dummy, f);
+;;
+;; It seems like the XSETFRAME macro is not properly copying the value of f
on initial frame selection under the macOS window system.
+;; The problem occurs on other systems as well, e.g. Emacs 25.2 under Windows
7.
+;;
+;; Hyperbole resolves this problem by setting the
+;; `mouse-position-function' variable below to properly set the
+;; newly selected frame.
(if (boundp 'mouse-position-function)
(setq mouse-position-function
(lambda (frame-x-dot-y)
diff --git a/hyrolo-logic.el b/hyrolo-logic.el
index e257df8..d532b6c 100644
--- a/hyrolo-logic.el
+++ b/hyrolo-logic.el
@@ -1,4 +1,4 @@
-;;; hyrolo-logic.el --- Logic functions for GNU Hyperbole Rolo files
+;;; hyrolo-logic.el --- Logic functions for GNU Hyperbole Rolo files
;;
;; Author: Bob Weiner
;;
diff --git a/kotl/kotl-autoloads.el b/kotl/kotl-autoloads.el
index 287ece2..daf4bc0 100644
--- a/kotl/kotl-autoloads.el
+++ b/kotl/kotl-autoloads.el
@@ -3,7 +3,7 @@
;;; Code:
-;;;### (autoloads nil "kexport" "kexport.el" (23052 38385 0 0))
+;;;### (autoloads nil "kexport" "kexport.el" (0 0 0 0))
;;; Generated autoloads from kexport.el
(autoload 'kexport:html "kexport" "\
@@ -16,6 +16,8 @@ STILL TODO:
\(fn EXPORT-FROM OUTPUT-TO &optional SOFT-NEWLINES-FLAG)" t nil)
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes
"kexport" '("kexport:")))
+
;;;***
;;;### (autoloads nil "kfile" "kfile.el" (22412 20800 0 0))
@@ -39,7 +41,14 @@ View an existing kotl version-2 file FILE-NAME in a
read-only mode.
;;;***
-;;;### (autoloads nil "kimport" "kimport.el" (23052 38368 0 0))
+;;;### (autoloads nil "kfill" "kfill.el" (0 0 0 0))
+;;; Generated autoloads from kfill.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes
"kfill" '("fill-paragraph" "kfill:" "prior-fill-prefix" "set-fill-prefix")))
+
+;;;***
+
+;;;### (autoloads nil "kimport" "kimport.el" (0 0 0 0))
;;; Generated autoloads from kimport.el
(defvar kimport:mode-alist '((t . kimport:text) (outline-mode .
kimport:star-outline)) "\
@@ -124,6 +133,8 @@ The variable, `paragraph-start,' is used to determine
paragraphs.
\(fn IMPORT-FROM OUTPUT-TO &optional CHILDREN-P)" t nil)
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes
"kimport" '("kimport:")))
+
;;;***
;;;### (autoloads nil "klink" "klink.el" (22481 28335 0 0))
@@ -138,7 +149,14 @@ See documentation for `kcell:ref-to-id' for valid cell-ref
formats.
;;;***
-;;;### (autoloads nil "kotl-mode" "kotl-mode.el" (23052 38304 0 0))
+;;;### (autoloads nil "kmenu" "kmenu.el" (0 0 0 0))
+;;; Generated autoloads from kmenu.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes
"kmenu" '("id-" "kotl-")))
+
+;;;***
+
+;;;### (autoloads nil "kotl-mode" "kotl-mode.el" (0 0 0 0))
;;; Generated autoloads from kotl-mode.el
(autoload 'kotl-mode "kotl-mode" "\
@@ -187,11 +205,26 @@ Signal an error if current buffer is not a Hyperbole
outline, else return t.
\(fn)" nil nil)
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes
"kotl-mode" '("delete-selection-pre-hook" "kotl-mode" "yank-")))
+
+;;;***
+
+;;;### (autoloads nil "kview" "kview.el" (0 0 0 0))
+;;; Generated autoloads from kview.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes
"kview" '("kcell-view:" "kview:")))
+
+;;;***
+
+;;;### (autoloads nil "kvspec" "kvspec.el" (0 0 0 0))
+;;; Generated autoloads from kvspec.el
+
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes
"kvspec" '("kvspec:")))
+
;;;***
-;;;### (autoloads nil nil ("kcell.el" "kfill.el" "klabel.el" "kmenu.el"
-;;;;;; "knode.el" "kprop-em.el" "kprop-xe.el" "kproperty.el" "kview.el"
-;;;;;; "kvspec.el") (23052 38356 0 0))
+;;;### (autoloads nil nil ("kcell.el" "klabel.el" "knode.el" "kprop-em.el"
+;;;;;; "kprop-xe.el" "kproperty.el") (0 0 0 0))
;;;***
diff --git a/man/hkey-help.txt b/man/hkey-help.txt
index 25dca92..c567c6d 100644
--- a/man/hkey-help.txt
+++ b/man/hkey-help.txt
@@ -9,7 +9,7 @@ Hyperbole
1st press at an arg value Value copied to minibuffer <- same
2nd press at an arg value Value used as argument <- same
In minibuffer Accepts minibuffer arg Completion help
- On an implicit button Activates button Button help
+ On an implicit button/path Activates button Button help
Within a koutline cell Collapses and expands Shows tree props
Left of a koutline cell Creates a klink Moves a tree
HyRolo Match Buffer Edits entries and mails to e-mail addresses
@@ -73,6 +73,8 @@ Mouse-only Control
Hyperbole Key Press/Click in Special Modes
Region Active Yanks region at release Kills and yanks at
release
+ Company Mode Completion Displays definition Displays
documentation
+ Treemacs Displays item Display item
Emacs Push Button Activates button Button help
Thing Begin or End Mark thing region Mark & kill thing
region
Page Directory Listing Jumps to page <- same
@@ -81,7 +83,8 @@ Hyperbole Key Press/Click in Special Modes
Assembly Language Mode Jumps to id/include def Jumps to next def
Java Cross-reference Tag Jumps to identifier def Jumps to next def
JavaScript and Python Modes Jumps to identifier def Jumps to next def
- Any Lisp or Fortran Mode Jumps to identifier def Jumps to next def
+ Any Known Lisp or ChangeLog Jumps to identifier def Referent Doc
+ Fortran Mode Jumps to identifier def Jumps to next def
Emacs Lisp Compiler Error Jumps to def with error <- same
Other Compiler Error Jumps to src error line <- same
Grep or Occur Match Jumps to match source line <- same
diff --git a/man/hyperbole.html b/man/hyperbole.html
index 44b27b4..6aa4874 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.2b, Published February 2, 2019).
+(Edition 7.0.3, Published May 11, 2019).
Copyright (C) 1989-2019 Free Software Foundation, Inc.
@@ -260,47 +260,48 @@ 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-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-Python-Source-Code-1"
href="#Smart-Key-_002d-Python-Source-Code">E.2.16 Smart Key - Python Source
Code</a></li>
- <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1"
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.17 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.18 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.19 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.20 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.21 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.22 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.23 Smart Key - JavaScript
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>
+ <li><a name="toc-Smart-Key-_002d-Company-Mode-1"
href="#Smart-Key-_002d-Company-Mode">E.2.1 Smart Key - Company Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Treemacs-1"
href="#Smart-Key-_002d-Treemacs">E.2.2 Smart Key - Treemacs</a></li>
+ <li><a name="toc-Smart-Key-_002d-Emacs-Pushbuttons-1"
href="#Smart-Key-_002d-Emacs-Pushbuttons">E.2.3 Smart Key - Emacs
Pushbuttons</a></li>
+ <li><a name="toc-Smart-Key-_002d-Argument-Completion-1"
href="#Smart-Key-_002d-Argument-Completion">E.2.4 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.5 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.6 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.7 Smart Key - Smart
Scrolling</a></li>
+ <li><a name="toc-Smart-Key-_002d-Smart-Menus-1"
href="#Smart-Key-_002d-Smart-Menus">E.2.8 Smart Key - Smart Menus</a></li>
+ <li><a name="toc-Smart-Key-_002d-Dired-Mode-1"
href="#Smart-Key-_002d-Dired-Mode">E.2.9 Smart Key - Dired Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Hyperbole-Buttons-1"
href="#Smart-Key-_002d-Hyperbole-Buttons">E.2.10 Smart Key - Hyperbole
Buttons</a></li>
+ <li><a name="toc-Smart-Key-_002d-View-Mode-1"
href="#Smart-Key-_002d-View-Mode">E.2.11 Smart Key - View Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Delimited-Things-1"
href="#Smart-Key-_002d-Delimited-Things">E.2.12 Smart Key - Delimited
Things</a></li>
+ <li><a name="toc-Smart-Key-_002d-The-Koutliner-1"
href="#Smart-Key-_002d-The-Koutliner">E.2.13 Smart Key - The Koutliner</a></li>
+ <li><a name="toc-Smart-Key-_002d-RDB-Mode-1"
href="#Smart-Key-_002d-RDB-Mode">E.2.14 Smart Key - RDB Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Help-Buffers-1"
href="#Smart-Key-_002d-Help-Buffers">E.2.15 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.16 Smart Key - Pages Directory
Mode</a></li>
+ <li><a name="toc-Smart-Key-_002d-Python-Source-Code-1"
href="#Smart-Key-_002d-Python-Source-Code">E.2.17 Smart Key - Python Source
Code</a></li>
+ <li><a name="toc-Smart-Key-_002d-Identifier-Menu-Mode-1"
href="#Smart-Key-_002d-Identifier-Menu-Mode">E.2.18 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.19 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.20 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.21 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.22 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.23 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.24 Smart Key - JavaScript
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.25 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.26 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.27 Smart Key - Occurrence
Matches</a></li>
+ <li><a name="toc-Smart-Key-_002d-Calendar-Mode-1"
href="#Smart-Key-_002d-Calendar-Mode">E.2.28 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.29 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.30 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.31 Smart Key - Info Manuals</a></li>
+ <li><a name="toc-Smart-Key-_002d-Email-Composers-1"
href="#Smart-Key-_002d-Email-Composers">E.2.32 Smart Key - Email
Composers</a></li>
+ <li><a name="toc-Smart-Key-_002d-GNUS-Newsreader-1"
href="#Smart-Key-_002d-GNUS-Newsreader">E.2.33 Smart Key - GNUS
Newsreader</a></li>
+ <li><a name="toc-Smart-Key-_002d-Buffer-Menus-1"
href="#Smart-Key-_002d-Buffer-Menus">E.2.34 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.35 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.36 Smart Key - Man Pages</a></li>
+ <li><a name="toc-Smart-Key-_002d-WWW-URLs-1"
href="#Smart-Key-_002d-WWW-URLs">E.2.37 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.38 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.39 Smart Key - Image
Thumbnails</a></li>
+ <li><a name="toc-Smart-Key-_002d-Gomoku-Game-1"
href="#Smart-Key-_002d-Gomoku-Game">E.2.40 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.41 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.42 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>
@@ -328,6 +329,9 @@ Next: <a href="#Introduction" accesskey="n"
rel="next">Introduction</a>, Previou
<CENTER><H2>The Everyday Hypertextual Information Manager</H2></CENTER>
+<CENTER><H3><A HREF="https://saythanks.io/to/rswgnu">Say thanks if you like
Hyperbole.</A></H3></CENTER>
+
+
<P>Copyright © 1989-2019 Free Software Foundation, Inc.</P>
<P>GNU Hyperbole is available for use, modification, and distribution under
@@ -340,8 +344,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
-Edition 7.0.2b
-Printed February 2, 2019.
+Edition 7.0.3
+Printed May 11, 2019.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -692,7 +696,9 @@ Smart Mouse Keys
Smart Keyboard Keys
-</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">
+</pre></th></tr><tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Company-Mode">Smart Key - Company
Mode</a>:</td><td> </td><td align="left" valign="top">
+</td></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>
@@ -722,6 +728,8 @@ Smart Keyboard Keys
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory
Mode</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a>:</td><td> </td><td align="left" valign="top">
+</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode
</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source
Code</a>:</td><td> </td><td align="left" valign="top">
@@ -736,8 +744,6 @@ Smart Keyboard Keys
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source
Code</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a>:</td><td> </td><td align="left" valign="top">
-</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C
Source Code</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source
Code</a>:</td><td> </td><td align="left" valign="top">
@@ -788,7 +794,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.2b or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
+7.0.3 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,
@@ -1292,7 +1298,7 @@ Hyperbole
1st press at an arg value Value copied to minibuffer <- same
2nd press at an arg value Value used as argument <- same
In minibuffer Accepts minibuffer arg Completion help
- On an implicit button Activates button Button help
+ On an implicit button/path Activates button Button help
Within a koutline cell Collapses and expands Shows tree props
Left of a koutline cell Creates a klink Moves a tree
HyRolo Match Buffer Edits entries and mails to e-mail addresses
@@ -1356,6 +1362,8 @@ Mouse-only Control
Hyperbole Key Press/Click in Special Modes
Region Active Yanks region at release Kills and yanks at
release
+ Company Mode Completion Displays definition Displays
documentation
+ Treemacs Displays item Display item
Emacs Push Button Activates button Button help
Thing Begin or End Mark thing region Mark & kill
thing region
Page Directory Listing Jumps to page <- same
@@ -1364,7 +1372,8 @@ Hyperbole Key Press/Click in Special Modes
Assembly Language Mode Jumps to id/include def Jumps to next def
Java Cross-reference Tag Jumps to identifier def Jumps to next def
JavaScript and Python Modes Jumps to identifier def Jumps to next def
- Any Lisp or Fortran Mode Jumps to identifier def Jumps to next def
+ Any Known Lisp or ChangeLog Jumps to identifier def Referent Doc
+ Fortran Mode Jumps to identifier def Jumps to next def
Emacs Lisp Compiler Error Jumps to def with error <- same
Other Compiler Error Jumps to src error line <- same
Grep or Occur Match Jumps to match source line <- same
@@ -1671,7 +1680,7 @@ on the last line to end the dired session (bury its
buffer).
<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.
+<p>Since this is a customization option, it may be changed 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>.
@@ -1963,14 +1972,15 @@ Next: <a href="#Keyboard-Drags" accesskey="n"
rel="next">Keyboard Drags</a>, Pre
<a name="index-drag_002c-dired-item"></a>
<a name="index-drag_002c-buffer-menu-item"></a>
<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="#Keyboard-Drags">Keyboard
Drags</a>.
+<p>You can also drag items to other windows with the Action Key in Dired,
+Buffer Menu, Ibuffer and Treemacs listing buffers, rather than the
+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 within the listing window itself, press and release
+the Action Key on that item after dragging your other items to their
+respective windows. Remember that you can emulate these drags from
+the keyboard when needed, see <a href="#Keyboard-Drags">Keyboard 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
@@ -2010,26 +2020,30 @@ session since drag actions are not supported without a
window system.
<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 display of items, 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>For even faster keyboard-based display of items and drag emulations,
+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 commands to ace-window that replace the two-step drag emulation key
-described above with a single key sequence that displays dired or
-buffer menu <em>items</em>.
+described above with a single key sequence that does not require moving to
+the drag target window since it is specified by ID as part of the command.
</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>.
+to bind it to <kbd>{M-o}</kbd>, replacing Hyperbole’s
+default <code>hkey-operate</code> command there (because ace-window can emulate
+the drags performed by <code>hkey-operate</code>). If you already have a key
bound
+for <code>ace-window</code>, then just ensure it is initialized by calling
+<code>(hkey-ace-window-setup)</code> without a key argument.
</p>
<a name="index-link-creation-from-keyboard"></a>
<a name="index-keyboard-link-creation"></a>
<a name="index-M_002do-i-_003cwindow_002did_003e"></a>
-<a name="index-M_002do-r-_003cwindow_002did_003e"></a>
<a name="index-M_002do-m-_003cwindow_002did_003e"></a>
+<a name="index-M_002do-r-_003cwindow_002did_003e"></a>
<a name="index-M_002do-t-_003cwindow_002did_003e"></a>
<a name="index-drag-item"></a>
<a name="index-replace-window-buffer"></a>
@@ -2042,16 +2056,35 @@ a key: <code>(hkey-ace-window-setup)</code>.
<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 command to create explicit button links to other window buffers when in
an editable
-buffer rather than on an item. If you want to display multiple items in
different
-windows, instead use the <kbd>{M-o t
<id-of-window-to-display-item-in>}</kbd> key sequence to
+<id-of-window-to-display-item-in>}</kbd> and watch the magic happen. If
you
+want to display multiple items in different windows, instead use
+the <kbd>{M-o t <id-of-window-to-display-item-in>}</kbd> key sequence to
<em>throw</em> the item to the window. To <em>replace</em>
the selected window’s buffer with that of another window, use
<kbd>{M-o r <id-of-window-displaying-desired-buffer>}</kbd>. To instead
<em>swap</em> the selected window’s buffer with that of another window,
use <kbd>{M-o m <id-of-window-to-swap-with>}</kbd>.
</p>
+<p>In summary:
+</p><dl compact="compact">
+<dt>M-o i <window></dt>
+<dd><p>insert listing item at point into <window>; if not on a listing
item,
+trigger an error
+</p>
+</dd>
+<dt>M-o m <window></dt>
+<dd><p>swap the buffers in the selected window and <window>
+</p>
+</dd>
+<dt>M-o r <window></dt>
+<dd><p>replace the selected (current) window’s buffer with that of
<window>
+</p>
+</dd>
+<dt>M-o t <window></dt>
+<dd><p>throw listing item at point or current buffer to <window>
+</p></dd>
+</dl>
+
@@ -2290,10 +2323,10 @@ type</em> identifies a pattern or state that when
matched triggers
an <em>action</em> associated with the implicit button type. The action
is specified by either a Hyperbole action type (see <a
href="#Action-Types">Action Types</a>)
or an Emacs Lisp function. Implicit button types may use the same
-action types that explicit buttons use. As an example, a pathname
-implicit button type would match to any existing local filename or
-directory name and its action would be to display the associated file
-or directory, typically in another window.
+action types that explicit buttons use. As an example, the pathname
+implicit button type matches to any existing local filename or
+directory name and its action displays the associated file or
+directory, typically in another window.
</p>
<a name="index-file_002c-hibtypes_002eel"></a>
<a name="index-context"></a>
@@ -2634,7 +2667,7 @@ produced by git log.
</dd>
<dt><code>github-reference</code></dt>
<dd><p>Displays the Github entity associated with REFERENCE and optional USER
and PROJECT.
-See <samp>DEMO#Github (Remote) References</samp> for examples.
+See <samp>../DEMO#Github (Remote) References</samp> for examples.
</p>
<p>REFERENCE is a string of one of the following forms:
</p><ul>
@@ -2669,6 +2702,51 @@ If given, PROJECT overrides any project value in
REFERENCE. If no
PROJECT value is provided, it defaults to the value of
<code>hibtypes-github-default-project</code>.
</p>
+<a name="index-ibtypes-gitlab_002dreference"></a>
+<a name="index-gitlab-reference"></a>
+<a name="index-version-control-3"></a>
+<a name="index-hibtypes_002dgitlab_002ddefault_002dproject"></a>
+<a name="index-hibtypes_002dgitlab_002ddefault_002duser"></a>
+</dd>
+<dt><code>gitlab-reference</code></dt>
+<dd><p>Displays the Gitlab entity associated with REFERENCE and optional USER
and PROJECT.
+See <samp>../DEMO#Gitlab (Remote) References</samp> for examples.
+</p>
+<p>REFERENCE is a string of one of the following forms:
+</p><ul>
+<li> <ref-item>
+</li><li> <user>/<project>/<ref-item>
+</li><li> <project>/<ref-item>
+</li><li> /<group>/<project>.
+or
+</li><li> /<project-or-group> (where a group is a colection of projects)
+</li></ul>
+
+<p><ref-item> is one of these:
+</p><dl compact="compact">
+<dt>• one of the words: activity, analytics, boards or kanban, branches,
commits, contributors, groups, issues or list, jobs, labels, merge_requests,
milestones, pages, pipelines, pipeline_charts, members or people or staff,
projects, pulls, schedules, snippets, status or tags</dt>
+<dd><p>the associated items are listed
+</p></dd>
+<dt>• one of the words: branch, commit(s), issue(s), milestone(s),
pull(s), snippet(s) or tag(s) followed by a ’/’ or ’=’
and an item-id</dt>
+<dd><p>the item is shown
+</p></dd>
+<dt>• an issue reference given by a positive integer, e.g. <em>92</em> or
prefaced with <em>GL-</em>, like GL-92</dt>
+<dd><p>the issue is displayed
+</p></dd>
+<dt>• a commit reference given by a hex number, 55a1f0</dt>
+<dd><p>the commit diff is displayed
+</p></dd>
+<dt>• a branch or tag reference given by an alphanumeric name, e.g.
hyper20</dt>
+<dd><p>the files in the branch are listed.
+</p></dd>
+</dl>
+
+<a name="index-hibtypes_002dgitlab_002ddefault_002duser-1"></a>
+<p>USER defaults to the value of <code>hibtypes-gitlab-default-user</code>.
+If given, PROJECT overrides any project value in REFERENCE. If no
+PROJECT value is provided, it defaults to the value of
+<code>hibtypes-gitlab-default-project</code>.
+</p>
<a name="index-ibtypes-social_002dreference"></a>
<a name="index-hashtag"></a>
<a name="index-username"></a>
@@ -2773,11 +2851,12 @@ at line-num and optional column-num. Also works for
remote pathnames.
</dd>
<dt><code>pathname</code></dt>
<dd><p>Makes a valid pathname display the path entry. Also works for
-delimited and non-delimited remote pathnames, Texinfo <samp></samp> entries,
-and hash-style link references to HTML, Markdown or Emacs outline
-headings. Emacs Lisp library files (filenames without any directory
-component that end in .el and .elc) are looked up using
-the <code>load-path</code> directory list.
+delimited and non-delimited remote pathnames, Texinfo @file{}
+entries, and hash-style link references to HTML, Markdown or Emacs
+outline headings, and MSWindows paths (see <samp>${hyperb:dir}/DEMO#POSIX
+and MSWindows Paths</samp> for details). Emacs Lisp library files
+(filenames without any directory component that end in .el and .elc)
+are looked up using the <code>load-path</code> directory list.
</p>
<p>See the function documentation for <code>hpath:at-p</code> for possible
delimiters. See the variable documentation for <code>hpath:suffixes</code> for
@@ -7872,14 +7951,7 @@ for each available window system:
<code>hpath:external-display-alist-macos</code
<code>hpath:external-display-alist-x</code>. Examine and modify these
values to suit your needs.
</p>
-<a name="index-MIME"></a>
-<a name="index-mailcap"></a>
-<a name="index-external-viewer-1"></a>
-<p>On systems that have a MIME mailcap file (see
-<samp>www.wikiwand.com/en/Mailcap</samp>), this is used as a fallback
-set of external viewer associations when none are found
-within <code>hpath:get-external-display-alist</code>.
-</p>
+
<hr>
<a name="Link-Variable-Substitution"></a>
<div class="header">
@@ -9348,23 +9420,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-Treemacs"
accesskey="1">Smart Key - Treemacs</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Company-Mode" accesskey="1">Smart Key - Company
Mode</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">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Treemacs"
accesskey="2">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-Argument-Completion" accesskey="3">Smart Key - Argument
Completion</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="3">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-ID-Edit-Mode" accesskey="4">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-Argument-Completion" accesskey="4">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-Emacs-Cross_002dreferences-_0028Xrefs_0029"
accesskey="5">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-ID-Edit-Mode" accesskey="5">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-Smart-Scrolling" accesskey="6">Smart Key - Smart
Scrolling</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="6">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-Menus" accesskey="7">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-Scrolling" accesskey="7">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-Dired-Mode"
accesskey="8">Smart Key - Dired Mode</a>:</td><td> </td><td
align="left" valign="top">
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Smart-Menus" accesskey="8">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-Hyperbole-Buttons" accesskey="9">Smart Key - Hyperbole
Buttons</a>:</td><td> </td><td align="left" valign="top">
+<tr><td align="left" valign="top">• <a href="#Smart-Key-_002d-Dired-Mode"
accesskey="9">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">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">Smart Key - View
Mode</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
@@ -9378,6 +9452,8 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p"
rel="prev">Smart Mouse Keys<
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Pages-Directory-Mode">Smart Key - Pages Directory
Mode</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
+<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a>:</td><td> </td><td align="left" valign="top">
+</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Identifier-Menu-Mode">Smart Key - Identifier Menu Mode
</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-C-Source-Code">Smart Key - C Source
Code</a>:</td><td> </td><td align="left" valign="top">
@@ -9392,8 +9468,6 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p"
rel="prev">Smart Mouse Keys<
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-JavaScript-Source-Code">Smart Key - JavaScript Source
Code</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
-<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Python-Source-Code">Smart Key - Python Source
Code</a>:</td><td> </td><td align="left" valign="top">
-</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Objective_002dC-Source-Code">Smart Key - Objective-C
Source Code</a>:</td><td> </td><td align="left" valign="top">
</td></tr>
<tr><td align="left" valign="top">• <a
href="#Smart-Key-_002d-Fortran-Source-Code">Smart Key - Fortran Source
Code</a>:</td><td> </td><td align="left" valign="top">
@@ -9432,14 +9506,37 @@ Previous: <a href="#Smart-Mouse-Keys" accesskey="p"
rel="prev">Smart Mouse Keys<
</td></tr>
</table>
+
+<hr>
+<a name="Smart-Key-_002d-Company-Mode"></a>
+<div class="header">
+<p>
+Next: <a href="#Smart-Key-_002d-Treemacs" accesskey="n" rel="next">Smart Key -
Treemacs</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-Company-Mode-1"></a>
+<h4 class="subsection">E.2.1 Smart Key - Company Mode</h4>
+
+<a name="index-company_002dmode"></a>
+<a name="index-completion-2"></a>
+<p>Company mode is an extensive in-buffer completion framework, often used to
complete programming identifiers.
+</p>
+<div class="format">
+<pre class="format">When company-mode is active:
+ ACTION KEY
+ Displays selected item’s definition.
+ ASSIST KEY
+ Displays the documentation, if any, for the selected item.
+</pre></div>
+
+
<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>
+Next: <a href="#Smart-Key-_002d-Emacs-Pushbuttons" accesskey="n"
rel="next">Smart Key - Emacs Pushbuttons</a>, Previous: <a
href="#Smart-Key-_002d-Company-Mode" accesskey="p" rel="prev">Smart Key -
Company 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-Treemacs-1"></a>
-<h4 class="subsection">E.2.1 Smart Key - Treemacs</h4>
+<h4 class="subsection">E.2.2 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
@@ -9457,10 +9554,10 @@ See <a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer Items
collapse the entry;
(2) elsewhere within an entry line, the item is displayed for editing,
normally in another window;
- (3) at the end of an entry line: invoke
<code>action-key-eol-function</code>,
- typically to scroll up proportionally, if an Action Key press; invoke
- <code>assist-key-eol-function</code>, typically to scroll down
proportionally,
- if an Assist Key press;
+ (3) at the end of an entry line: if an Action Key press, invokes
+ <code>action-key-eol-function</code>, typically to scroll up
proportionally;
+ if an Assist Key press, invokes <code>assist-key-eol-function</code>,
typically
+ to scroll down proportionally;
(4) on the first line of the buffer (other than the end of line),
dired is run on the current directory of this Treemacs;
(5) at the end of the first or last line of the buffer,
@@ -9475,7 +9572,7 @@ See <a
href="#Displaying-File-and-Buffer-Items">Displaying File and Buffer Items
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.2 Smart Key - Emacs Pushbuttons</h4>
+<h4 class="subsection">E.2.3 Smart Key - Emacs Pushbuttons</h4>
<div class="format">
<pre class="format">When over an Emacs pushbutton:
@@ -9492,7 +9589,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.3 Smart Key - Argument Completion</h4>
+<h4 class="subsection">E.2.4 Smart Key - Argument Completion</h4>
<a name="index-Smart-Keyboard-Keys"></a>
<div class="format">
@@ -9503,7 +9600,7 @@ Next: <a href="#Smart-Key-_002d-ID-Edit-Mode"
accesskey="n" rel="next">Smart Key
Offers completions for the current minibuffer argument.
</pre></div>
-<a name="index-completion-2"></a>
+<a name="index-completion-3"></a>
<div class="format">
<pre class="format">When reading a Hyperbole menu item or an argument with
completion:
ACTION KEY
@@ -9523,7 +9620,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.4 Smart Key - ID Edit Mode</h4>
+<h4 class="subsection">E.2.5 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
@@ -9539,7 +9636,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.5 Smart Key - Emacs Cross-references (Xrefs)</h4>
+<h4 class="subsection">E.2.6 Smart Key - Emacs Cross-references (Xrefs)</h4>
<div class="format">
<pre class="format">When over an Emacs cross-reference:
@@ -9557,7 +9654,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.6 Smart Key - Smart Scrolling</h4>
+<h4 class="subsection">E.2.7 Smart Key - Smart Scrolling</h4>
<a name="index-smart_002dscroll_002dproportional"></a>
<a name="index-proportional-scrolling-1"></a>
@@ -9595,7 +9692,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.7 Smart Key - Smart Menus</h4>
+<h4 class="subsection">E.2.8 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
@@ -9629,7 +9726,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.8 Smart Key - Dired Mode</h4>
+<h4 class="subsection">E.2.9 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>
@@ -9670,7 +9767,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.9 Smart Key - Hyperbole Buttons</h4>
+<h4 class="subsection">E.2.10 Smart Key - Hyperbole Buttons</h4>
<a name="index-click_002c-button"></a>
<a name="index-button-click"></a>
@@ -9690,7 +9787,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.10 Smart Key - View Mode</h4>
+<h4 class="subsection">E.2.11 Smart Key - View Mode</h4>
<a name="index-view-mode"></a>
<div class="format">
@@ -9709,7 +9806,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.11 Smart Key - Delimited Things</h4>
+<h4 class="subsection">E.2.12 Smart Key - Delimited Things</h4>
<a name="index-thing-1"></a>
<a name="index-list-1"></a>
@@ -9747,7 +9844,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.12 Smart Key - The Koutliner</h4>
+<h4 class="subsection">E.2.13 Smart Key - The Koutliner</h4>
<div class="format">
<pre class="format">When pressed within a Hyperbole Koutliner buffer
(kotl-mode):
ACTION KEY
@@ -9782,7 +9879,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.13 Smart Key - RDB Mode</h4>
+<h4 class="subsection">E.2.14 Smart Key - RDB Mode</h4>
<a name="index-rdb_002dmode"></a>
<a name="index-database"></a>
<div class="format">
@@ -9815,7 +9912,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.14 Smart Key - Help Buffers</h4>
+<h4 class="subsection">E.2.15 Smart Key - Help Buffers</h4>
<a name="index-help-buffer"></a>
<div class="format">
<pre class="format">
@@ -9829,10 +9926,10 @@ When pressed at the end of a Help buffer:
<a name="Smart-Key-_002d-Pages-Directory-Mode"></a>
<div class="header">
<p>
-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>
+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-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.15 Smart Key - Pages Directory Mode</h4>
+<h4 class="subsection">E.2.16 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.
@@ -9848,10 +9945,10 @@ When pressed on a pages-directory-mode entry line:
<a name="Smart-Key-_002d-Python-Source-Code"></a>
<div class="header">
<p>
-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>
+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-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-Python-Source-Code-1"></a>
-<h4 class="subsection">E.2.16 Smart Key - Python Source Code</h4>
+<h4 class="subsection">E.2.17 Smart Key - Python Source Code</h4>
<div class="format">
<pre class="format">When the Jedi identifier server or the OO-Browser has been
loaded and the press is
within a Python buffer:
@@ -9879,16 +9976,17 @@ within a Python buffer:
<a name="Smart-Key-_002d-Identifier-Menu-Mode"></a>
<div class="header">
<p>
-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>
+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-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-Identifier-Menu-Mode-1"></a>
-<h4 class="subsection">E.2.17 Smart Key - Identifier Menu Mode</h4>
+<h4 class="subsection">E.2.18 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.
-It requires either Emacs’ imenu or XEmacs’ func-menu library and
it requires that an index of
-identifiers has been built for the current buffer. Other handlers handle
identifier references
-and definitions across multiple files.
+<pre class="format">This works only for identifiers defined within the same
source file in
+which they are referenced. It requires either Emacs’ imenu or
XEmacs’
+func-menu library and it requires that an index of identifiers has
+been built for the current buffer. Other handlers handle identifier
+references and definitions across multiple files.
When pressed on an identifier name after an identifier index has been
generated:
ACTION KEY
@@ -9905,7 +10003,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.18 Smart Key - C Source Code</h4>
+<h4 class="subsection">E.2.19 Smart Key - C Source Code</h4>
<a name="index-smart_002dc_002dcpp_002dinclude_002dpath"></a>
<a name="index-smart_002dc_002dinclude_002dpath"></a>
@@ -9937,7 +10035,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.19 Smart Key - C++ Source Code</h4>
+<h4 class="subsection">E.2.20 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>
@@ -9990,7 +10088,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.20 Smart Key - Assembly Source Code</h4>
+<h4 class="subsection">E.2.21 Smart Key - Assembly Source Code</h4>
<a name="index-smart_002dasm_002dinclude_002dpath"></a>
<div class="format">
@@ -10015,11 +10113,12 @@ 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.21 Smart Key - Lisp Source Code</h4>
+<h4 class="subsection">E.2.22 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
-(Lisp code, debugger, compilation, or help):
+<pre class="format"><a name="index-change_002dlog_002dmode"></a><a
name="index-lisp-identifier"></a><a name="index-elisp-identifier"></a>When
pressed on a Lisp symbol within any of these types of buffers
+(Lisp code, debugger, compilation, or help) or in change-log-mode
+on an Emacs Lisp bound identifier:
ACTION KEY
Jumps to the definition of any selected Lisp construct. If on an
Emacs Lisp require, load, or autoload clause and the (find-library)
@@ -10037,7 +10136,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.22 Smart Key - Java Source Code</h4>
+<h4 class="subsection">E.2.23 Smart Key - Java Source Code</h4>
<a name="index-smart_002djava_002dpackage_002dpath"></a>
<div class="format">
@@ -10077,10 +10176,10 @@ buffer:
<a name="Smart-Key-_002d-JavaScript-Source-Code"></a>
<div class="header">
<p>
-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>
+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-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.23 Smart Key - JavaScript Source Code</h4>
+<h4 class="subsection">E.2.24 Smart Key - JavaScript Source Code</h4>
<div class="format">
<pre class="format">When pressed within a JavaScript source code file:
@@ -10098,10 +10197,10 @@ Next: <a href="#Smart-Key-_002d-Python-Source-Code"
accesskey="n" rel="next">Sma
<a name="Smart-Key-_002d-Objective_002dC-Source-Code"></a>
<div class="header">
<p>
-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>
+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-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-Objective_002dC-Source-Code-1"></a>
-<h4 class="subsection">E.2.24 Smart Key - Objective-C Source Code</h4>
+<h4 class="subsection">E.2.25 Smart Key - Objective-C Source Code</h4>
<a name="index-objc_002dcpp_002dinclude_002dpath"></a>
<a name="index-objc_002dinclude_002dpath"></a>
@@ -10152,7 +10251,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.25 Smart Key - Fortran Source Code</h4>
+<h4 class="subsection">E.2.26 Smart Key - Fortran Source Code</h4>
<div class="format">
<pre class="format">When pressed within a Fortran source code file:
@@ -10170,7 +10269,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.26 Smart Key - Occurrence Matches</h4>
+<h4 class="subsection">E.2.27 Smart Key - Occurrence Matches</h4>
<div class="format">
<pre class="format">When pressed within an occur-mode, moccur-mode or
amoccur-mode buffer:
@@ -10185,7 +10284,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.27 Smart Key - Calendar Mode</h4>
+<h4 class="subsection">E.2.28 Smart Key - Calendar Mode</h4>
<div class="format">
<pre class="format">When pressed within a calendar-mode buffer:
@@ -10212,7 +10311,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.28 Smart Key - Man Page Apropos</h4>
+<h4 class="subsection">E.2.29 Smart Key - Man Page Apropos</h4>
<div class="format">
<pre class="format">When pressed within a man page apropos buffer or listing:
ACTION KEY
@@ -10234,7 +10333,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.29 Smart Key - Emacs Outline Mode</h4>
+<h4 class="subsection">E.2.30 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
@@ -10271,7 +10370,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.30 Smart Key - Info Manuals</h4>
+<h4 class="subsection">E.2.31 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:
@@ -10312,7 +10411,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.31 Smart Key - Email Composers</h4>
+<h4 class="subsection">E.2.32 Smart Key - Email Composers</h4>
<a name="index-hmail_003areader"></a>
<a name="index-hmail_003alister"></a>
<div class="format">
@@ -10351,7 +10450,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.32 Smart Key - GNUS Newsreader</h4>
+<h4 class="subsection">E.2.33 Smart Key - GNUS Newsreader</h4>
<a name="index-click_002c-Gnus"></a>
<a name="index-Gnus-browsing"></a>
<div class="format">
@@ -10418,7 +10517,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.33 Smart Key - Buffer Menus</h4>
+<h4 class="subsection">E.2.34 Smart Key - Buffer Menus</h4>
<a name="index-click_002c-buffer-menu"></a>
<a name="index-buffer-menu-2"></a>
<div class="format">
@@ -10475,7 +10574,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.34 Smart Key - Tar File Mode</h4>
+<h4 class="subsection">E.2.35 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>
@@ -10502,7 +10601,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.35 Smart Key - Man Pages</h4>
+<h4 class="subsection">E.2.36 Smart Key - Man Pages</h4>
<a name="index-man-page-references"></a>
<a name="index-smart_002dman_002dc_002droutine_002dref"></a>
<div class="format">
@@ -10522,7 +10621,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.36 Smart Key - WWW URLs</h4>
+<h4 class="subsection">E.2.37 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>
@@ -10548,7 +10647,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.37 Smart Key - HyRolo Match Buffers</h4>
+<h4 class="subsection">E.2.38 Smart Key - HyRolo Match Buffers</h4>
<a name="index-click_002c-hyrolo-matches"></a>
<a name="index-hyrolo-matches"></a>
<div class="format">
@@ -10564,7 +10663,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.38 Smart Key - Image Thumbnails</h4>
+<h4 class="subsection">E.2.39 Smart Key - Image Thumbnails</h4>
<a name="index-images"></a>
<a name="index-thumbnails"></a>
<a name="index-dired_002c-images"></a>
@@ -10585,7 +10684,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.39 Smart Key - Gomoku Game</h4>
+<h4 class="subsection">E.2.40 Smart Key - Gomoku Game</h4>
<a name="index-game_002c-gomoku"></a>
<a name="index-gomoku"></a>
<div class="format">
@@ -10603,7 +10702,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.40 Smart Key - The OO-Browser</h4>
+<h4 class="subsection">E.2.41 Smart Key - The OO-Browser</h4>
<a name="index-OO_002dBrowser"></a>
<a name="index-object_002doriented-code-browsing"></a>
@@ -10677,7 +10776,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.41 Smart Key - Default Context</h4>
+<h4 class="subsection">E.2.42 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>
@@ -10916,10 +11015,8 @@ providing sketches of possible additions;
</li><li> and to acknowledge known weaknesses in the current system.
</li></ul>
-<p>If you would like to see some of this work done, consider funding
-its development. Without any serious interest from users, progress
-on these fronts will be slow. Here are some new features we have
-in mind, however.
+<p>Without any serious interest from users, progress on these fronts will
+be slow. Here are some new features we have in mind, however.
</p>
<dl compact="compact">
<dt>Button Copying, Killing, and Yanking</dt>
@@ -11871,6 +11968,9 @@ 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_002dproject">hibtypes-github-default-project</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">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_002dgitlab_002ddefault_002dproject">hibtypes-gitlab-default-project</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_002dgitlab_002ddefault_002duser">hibtypes-gitlab-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_002dgitlab_002ddefault_002duser-1">hibtypes-gitlab-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>
@@ -12002,6 +12102,7 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-ibtypes-git_002dcommit_002dreference"><code>ibtypes
git-commit-reference</code></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-ibtypes-git_002dreference"><code>ibtypes
git-reference</code></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-ibtypes-github_002dreference"><code>ibtypes
github-reference</code></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-ibtypes-gitlab_002dreference"><code>ibtypes
gitlab-reference</code></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-ibtypes-gnus_002dpush_002dbutton"><code>ibtypes
gnus-push-button</code></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-ibtypes-grep_002dmsg"><code>ibtypes
grep-msg</code></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-ibtypes-hyp_002daddress"><code>ibtypes
hyp-address</code></a>:</td><td> </td><td valign="top"><a
href="#Implicit-Buttons">Implicit Buttons</a></td></tr>
@@ -12475,6 +12576,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-cell_002c-yanking-contents">cell, yanking
contents</a>:</td><td> </td><td valign="top"><a
href="#Adding-and-Killing">Adding and Killing</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-change-key-bindings">change key
bindings</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-change-key-bindings-1">change
key bindings</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-change_002dlog_002dmode">change-log-mode</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp
Source Code</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-changing-the-view-spec">changing
the view spec</a>:</td><td> </td><td valign="top"><a
href="#View-Specs">View Specs</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-click_002c-buffer-menu">click,
buffer menu</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Buffer-Menus">Smart Key - Buffer Menus</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-click_002c-button">click,
button</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Hyperbole-Buttons">Smart Key - Hyperbole
Buttons</a></td></tr>
@@ -12495,11 +12597,13 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-collapsing">collapsing</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-comment">comment</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-comment-1">comment</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-company_002dmode">company-mode</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Company-Mode">Smart Key - Company
Mode</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-compiler-error">compiler
error</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-compiler-error-1">compiler
error</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">completion</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-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-completion-2">completion</a>:</td><td> </td><td
valign="top"><a href="#Smart-Key-_002d-Company-Mode">Smart Key - Company
Mode</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-completion-3">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>
@@ -12596,6 +12700,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><th><a name="Concept-Index_cp_letter-E">E</a></th><td></td><td></td></tr>
<tr><td></td><td valign="top"><a href="#index-e_002dmail-address">e-mail
address</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-e_002dmail-address-1">e-mail
address</a>:</td><td> </td><td valign="top"><a
href="#Cell-Attributes">Cell Attributes</a></td></tr>
+<tr><td></td><td valign="top"><a href="#index-elisp-identifier">elisp
identifier</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source
Code</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-ellipses">ellipses</a>:</td><td> </td><td valign="top"><a
href="#View-Specs">View Specs</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Emacs">Emacs</a>:</td><td> </td><td valign="top"><a
href="#Hyperbole-Overview">Hyperbole Overview</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Emacs-1">Emacs</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
@@ -12631,7 +12736,6 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-external-klink">external
klink</a>:</td><td> </td><td valign="top"><a
href="#Links">Links</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-external-program">external
program</a>:</td><td> </td><td valign="top"><a
href="#External-Viewers">External Viewers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-external-viewer">external
viewer</a>:</td><td> </td><td valign="top"><a
href="#External-Viewers">External Viewers</a></td></tr>
-<tr><td></td><td valign="top"><a href="#index-external-viewer-1">external
viewer</a>:</td><td> </td><td valign="top"><a
href="#External-Viewers">External Viewers</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-extracting-from-tar-files">extracting from tar
files</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Tar-File-Mode">Smart Key - Tar File Mode</a></td></tr>
<tr><td colspan="4"> <hr></td></tr>
<tr><th><a name="Concept-Index_cp_letter-F">F</a></th><td></td><td></td></tr>
@@ -12674,6 +12778,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-git-commit-reference">git commit
reference</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-git-reference">git
reference</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-github-reference">github
reference</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-gitlab-reference">gitlab
reference</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-global-button">global
button</a>:</td><td> </td><td valign="top"><a
href="#Buttons">Buttons</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-global-button-1">global
button</a>:</td><td> </td><td valign="top"><a
href="#Global-Buttons">Global Buttons</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-global-button-2">global
button</a>:</td><td> </td><td valign="top"><a href="#Button-Files">Button
Files</a></td></tr>
@@ -12887,6 +12992,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-link_002c-viewer-program">link,
viewer program</a>:</td><td> </td><td valign="top"><a
href="#External-Viewers">External Viewers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-link_002c-web-search">link, web
search</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-linking_002c-in_002dplace">linking,
in-place</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-lisp-identifier">lisp
identifier</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Lisp-Source-Code">Smart Key - Lisp Source
Code</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Lisp-variables">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-list">list</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-list-1">list</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Delimited-Things">Smart Key - Delimited
Things</a></td></tr>
@@ -12902,7 +13008,6 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-mail-hooks">mail
hooks</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-mail-inclusion">mail
inclusion</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-mail-reader">mail
reader</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-mailcap">mailcap</a>:</td><td> </td><td valign="top"><a
href="#External-Viewers">External Viewers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-mailer-initialization">mailer
initialization</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-mailing-an-outline">mailing an
outline</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-mailing-buttons">mailing
buttons</a>:</td><td> </td><td valign="top"><a
href="#Buttons-in-Mail">Buttons in Mail</a></td></tr>
@@ -12999,7 +13104,6 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-Messages-buffer">Messages
buffer</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-MH_002de">MH-e</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-middle-mouse-key">middle mouse
key</a>:</td><td> </td><td valign="top"><a href="#Smart-Keys">Smart
Keys</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-MIME">MIME</a>:</td><td> </td><td valign="top"><a
href="#External-Viewers">External Viewers</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-minibuffer-menu">minibuffer
menu</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-minibuffer-menu-1">minibuffer
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-minibuffer-menus">minibuffer
menus</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
@@ -13315,6 +13419,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-version-control">version
control</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-version-control-1">version
control</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-version-control-2">version
control</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-version-control-3">version
control</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-version-description">version
description</a>:</td><td> </td><td valign="top"><a
href="#Suggestion-or-Bug-Reporting">Suggestion or Bug Reporting</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-vertical-drag">vertical
drag</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-vertical-drag-1">vertical
drag</a>:</td><td> </td><td valign="top"><a
href="#Smart-Mouse-Drags-within-a-Window">Smart Mouse Drags within a
Window</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index 5096944..ed1205e 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 6e58ff5..549179c 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 7c20b66..4b3c352 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -139,6 +139,9 @@ Texinfo markup language.
<CENTER><H2>The Everyday Hypertextual Information Manager</H2></CENTER>
+<CENTER><H3><A HREF="https://saythanks.io/to/rswgnu">Say thanks if you like
Hyperbole.</A></H3></CENTER>
+
+
<P>Copyright © 1989-2019 Free Software Foundation, Inc.</P>
<P>GNU Hyperbole is available for use, modification, and distribution under
@@ -151,8 +154,8 @@ WITHOUT ANY WARRANTY, without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
-Edition 7.0.2b
-Printed February 2, 2019.
+Edition 7.0.3
+Printed May 11, 2019.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -176,7 +179,7 @@ Printed February 2, 2019.
@center The Everyday Hypertextual Information Manager
address@hidden Edition 7.0.2b, February 2, 2019.
address@hidden Say thanks: https://saythanks.io/to/rswgnu
@sp 2
@noindent
@@ -193,6 +196,9 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@sp 2
@example
+Edition 7.0.3
+May 11, 2019
+
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
E-mail: <hyperbole-users@@gnu.org> (This is a mail list).
@@ -413,6 +419,7 @@ Smart Mouse Keys
Smart Keyboard Keys
+* Smart Key - Company Mode::
* Smart Key - Treemacs::
* Smart Key - Emacs Pushbuttons::
* Smart Key - Argument Completion::
@@ -428,6 +435,7 @@ Smart Keyboard Keys
* Smart Key - RDB Mode::
* Smart Key - Help Buffers::
* Smart Key - Pages Directory Mode::
+* Smart Key - Python Source Code::
* Smart Key - Identifier Menu Mode ::
* Smart Key - C Source Code::
* Smart Key - C++ Source Code::
@@ -435,7 +443,6 @@ Smart Keyboard Keys
* Smart Key - Lisp Source Code::
* Smart Key - Java Source Code::
* Smart Key - JavaScript Source Code::
-* Smart Key - Python Source Code::
* Smart Key - Objective-C Source Code::
* Smart Key - Fortran Source Code::
* Smart Key - Occurrence Matches::
@@ -462,7 +469,7 @@ Smart Keyboard Keys
@chapter Introduction
This edition of the GNU Hyperbole Manual is for use with any version
-7.0.2b or greater of GNU Hyperbole. Hyperbole runs atop GNU Emacs 24.3
+7.0.3 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,
@@ -1179,7 +1186,7 @@ on the last line to end the dired session (bury its
buffer).
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.
+Since this is a customization option, it may be changed 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}.
@@ -1409,14 +1416,15 @@ unless it is the only window in that frame.
@cindex drag, dired item
@cindex drag, buffer menu item
@cindex 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{Keyboard Drags}.
+You can also drag items to other windows with the Action Key in Dired,
+Buffer Menu, Ibuffer and Treemacs listing buffers, rather than the
+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 within the listing window itself, press and release
+the Action Key on that item after dragging your other items to their
+respective windows. Remember that you can emulate these drags from
+the keyboard when needed, @pxref{Keyboard 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
@@ -1450,26 +1458,30 @@ session since drag actions are not supported without a
window system.
@cindex window by letter
@cindex jump to window by letter
@cindex keyboard, jump to window
-For even faster keyboard-based display of items, use the Emacs
-package @code{ace-window} (see
@url{https://elpa.gnu.org/packages/ace-window.html}).
+For even faster keyboard-based display of items and drag emulations,
+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 commands to ace-window that replace the two-step drag emulation key
-described above with a single key sequence that displays dired or
-buffer menu @emph{items}.
+described above with a single key sequence that does not require moving to
+the drag target window since it is specified by ID as part of the command.
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}, 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)}.
+to bind it to @bkbd{M-o}, replacing Hyperbole's
+default @code{hkey-operate} command there (because ace-window can emulate
+the drags performed by @code{hkey-operate}). If you already have a key bound
+for @code{ace-window}, then just ensure it is initialized by calling
address@hidden(hkey-ace-window-setup)} without a key argument.
@cindex link creation from keyboard
@cindex keyboard link creation
@kindex M-o i <window-id>
address@hidden M-o r <window-id>
@kindex M-o m <window-id>
address@hidden M-o r <window-id>
@kindex M-o t <window-id>
@cindex drag item
@cindex replace window buffer
@@ -1482,16 +1494,31 @@ a key: @code{(hkey-ace-window-setup)}.
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 command to create explicit button links to other window buffers when in
an editable
-buffer rather than on an item. If you want to display multiple items in
different
-windows, instead use the @bkbd{M-o t <id-of-window-to-display-item-in>} key
sequence to
+<id-of-window-to-display-item-in>} and watch the magic happen. If you
+want to display multiple items in different windows, instead use
+the @bkbd{M-o t <id-of-window-to-display-item-in>} key sequence to
@emph{throw} the item to the window. To @emph{replace}
the selected window's buffer with that of another window, use
@bkbd{M-o r <id-of-window-displaying-desired-buffer>}. To instead
@emph{swap} the selected window's buffer with that of another window,
use @bkbd{M-o m <id-of-window-to-swap-with>}.
+In summary:
address@hidden @asis
address@hidden M-o i <window>
+insert listing item at point into <window>; if not on a listing item,
+trigger an error
+
address@hidden M-o m <window>
+swap the buffers in the selected window and <window>
+
address@hidden M-o r <window>
+replace the selected (current) window's buffer with that of <window>
+
address@hidden M-o t <window>
+throw listing item at point or current buffer to <window>
address@hidden table
+
@c -------
@c @node Smart Mouse Key Modifiers, , Smart Mouse Key Drags, Smart Keys
@@ -1729,10 +1756,10 @@ type} identifies a pattern or state that when matched
triggers
an @emph{action} associated with the implicit button type. The action
is specified by either a Hyperbole action type (@pxref{Action Types})
or an Emacs Lisp function. Implicit button types may use the same
-action types that explicit buttons use. As an example, a pathname
-implicit button type would match to any existing local filename or
-directory name and its action would be to display the associated file
-or directory, typically in another window.
+action types that explicit buttons use. As an example, the pathname
+implicit button type matches to any existing local filename or
+directory name and its action displays the associated file or
+directory, typically in another window.
@vindex file, hibtypes.el
@cindex context
@@ -2043,7 +2070,7 @@ produced by git log.
@vindex hibtypes-github-default-user
@item github-reference
Displays the Github entity associated with REFERENCE and optional USER and
PROJECT.
-See @file{DEMO#Github (Remote) References} for examples.
+See @file{../DEMO#Github (Remote) References} for examples.
REFERENCE is a string of one of the following forms:
@itemize @bullet
@@ -2073,6 +2100,45 @@ If given, PROJECT overrides any project value in
REFERENCE. If no
PROJECT value is provided, it defaults to the value of
@code{hibtypes-github-default-project}.
address@hidden ibtypes gitlab-reference
address@hidden gitlab reference
address@hidden version control
address@hidden hibtypes-gitlab-default-project
address@hidden hibtypes-gitlab-default-user
address@hidden gitlab-reference
+Displays the Gitlab entity associated with REFERENCE and optional USER and
PROJECT.
+See @file{../DEMO#Gitlab (Remote) References} for examples.
+
+REFERENCE is a string of one of the following forms:
address@hidden @bullet
address@hidden <ref-item>
address@hidden <user>/<project>/<ref-item>
address@hidden <project>/<ref-item>
address@hidden /<group>/<project>.
+or
address@hidden /<project-or-group> (where a group is a colection of projects)
address@hidden itemize
+
+<ref-item> is one of these:
address@hidden @asis
address@hidden @bullet{} one of the words: activity, analytics, boards or
kanban, branches, commits, contributors, groups, issues or list, jobs, labels,
merge_requests, milestones, pages, pipelines, pipeline_charts, members or
people or staff, projects, pulls, schedules, snippets, status or tags
+the associated items are listed
address@hidden @bullet{} one of the words: branch, commit(s), issue(s),
milestone(s), pull(s), snippet(s) or tag(s) followed by a '/' or '=' and an
item-id
+the item is shown
address@hidden @bullet{} an issue reference given by a positive integer, e.g.
@emph{92} or prefaced with @emph{GL-}, like GL-92
+the issue is displayed
address@hidden @bullet{} a commit reference given by a hex number, 55a1f0
+the commit diff is displayed
address@hidden @bullet{} a branch or tag reference given by an alphanumeric
name, e.g. hyper20
+the files in the branch are listed.
address@hidden table
+
address@hidden hibtypes-gitlab-default-user
+USER defaults to the value of @code{hibtypes-gitlab-default-user}.
+If given, PROJECT overrides any project value in REFERENCE. If no
+PROJECT value is provided, it defaults to the value of
address@hidden
+
@findex ibtypes social-reference
@cindex hashtag
@cindex username
@@ -2180,11 +2246,12 @@ at line-num and optional column-num. Also works for
remote pathnames.
@cindex link, pathname
@item pathname
Makes a valid pathname display the path entry. Also works for
-delimited and non-delimited remote pathnames, Texinfo @file{} entries,
-and hash-style link references to HTML, Markdown or Emacs outline
-headings. Emacs Lisp library files (filenames without any directory
-component that end in .el and .elc) are looked up using
-the @code{load-path} directory list.
+delimited and non-delimited remote pathnames, Texinfo @@address@hidden@}
+entries, and hash-style link references to HTML, Markdown or Emacs
+outline headings, and MSWindows paths (see
@address@hidden:address@hidden/DEMO#POSIX
+and MSWindows Paths} for details). Emacs Lisp library files
+(filenames without any directory component that end in .el and .elc)
+are looked up using the @code{load-path} directory list.
@noindent
See the function documentation for @code{hpath:at-p} for possible
@@ -6549,13 +6616,13 @@ for each available window system:
@code{hpath:external-display-alist-macos},
@code{hpath:external-display-alist-x}. Examine and modify these
values to suit your needs.
address@hidden MIME
address@hidden mailcap
address@hidden external viewer
-On systems that have a MIME mailcap file (see
address@hidden/en/Mailcap}), this is used as a fallback
-set of external viewer associations when none are found
-within @code{hpath:get-external-display-alist}.
address@hidden @cindex MIME
address@hidden @cindex mailcap
address@hidden @cindex external viewer
address@hidden On systems that have a MIME mailcap file (see
address@hidden @file{www.wikiwand.com/en/Mailcap}), this is used as a fallback
address@hidden set of external viewer associations when none are found
address@hidden within @code{hpath:get-external-display-alist}.
@node Link Variable Substitution, Web Search Engines, External Viewers,
Customization
@subsection Link Variable Substitution
@@ -7825,6 +7892,7 @@ If dragged from an Emacs window to outside of Emacs:
@section Smart Keyboard Keys
@menu
+* Smart Key - Company Mode::
* Smart Key - Treemacs::
* Smart Key - Emacs Pushbuttons::
* Smart Key - Argument Completion::
@@ -7840,6 +7908,7 @@ If dragged from an Emacs window to outside of Emacs:
* Smart Key - RDB Mode::
* Smart Key - Help Buffers::
* Smart Key - Pages Directory Mode::
+* Smart Key - Python Source Code::
* Smart Key - Identifier Menu Mode ::
* Smart Key - C Source Code::
* Smart Key - C++ Source Code::
@@ -7847,7 +7916,6 @@ If dragged from an Emacs window to outside of Emacs:
* Smart Key - Lisp Source Code::
* Smart Key - Java Source Code::
* Smart Key - JavaScript Source Code::
-* Smart Key - Python Source Code::
* Smart Key - Objective-C Source Code::
* Smart Key - Fortran Source Code::
* Smart Key - Occurrence Matches::
@@ -7868,7 +7936,26 @@ If dragged from an Emacs window to outside of Emacs:
* Smart Key - Default Context::
@end menu
address@hidden Smart Key - Treemacs, Smart Key - Emacs Pushbuttons, Smart
Keyboard Keys, Smart Keyboard Keys
+
address@hidden Smart Key - Company Mode, Smart Key - Treemacs, Smart Keyboard
Keys, Smart Keyboard Keys
address@hidden Smart Key - Company Mode
+
address@hidden company-mode
address@hidden completion
+Company mode is an extensive in-buffer completion framework, often used to
complete programming identifiers.
+
address@hidden
address@hidden
+When company-mode is active:
+ ACTION KEY
+ Displays selected item's definition.
+ ASSIST KEY
+ Displays the documentation, if any, for the selected item.
address@hidden group
address@hidden format
+
+
address@hidden Smart Key - Treemacs, Smart Key - Emacs Pushbuttons, Smart Key -
Company Mode, Smart Keyboard Keys
@subsection Smart Key - Treemacs
@cindex Treemacs
@@ -7889,10 +7976,10 @@ When in a Treemacs file browser buffer:
collapse the entry;
(2) elsewhere within an entry line, the item is displayed for editing,
normally in another window;
- (3) at the end of an entry line: invoke @code{action-key-eol-function},
- typically to scroll up proportionally, if an Action Key press; invoke
- @code{assist-key-eol-function}, typically to scroll down
proportionally,
- if an Assist Key press;
+ (3) at the end of an entry line: if an Action Key press, invokes
+ @code{action-key-eol-function}, typically to scroll up proportionally;
+ if an Assist Key press, invokes @code{assist-key-eol-function},
typically
+ to scroll down proportionally;
(4) on the first line of the buffer (other than the end of line),
dired is run on the current directory of this Treemacs;
(5) at the end of the first or last line of the buffer,
@@ -8228,7 +8315,7 @@ When pressed at the end of a Help buffer:
@end group
@end format
address@hidden Smart Key - Pages Directory Mode, Smart Key - Identifier Menu
Mode , Smart Key - Help Buffers, Smart Keyboard Keys
address@hidden Smart Key - Pages Directory Mode, Smart Key - Python Source
Code, Smart Key - Help Buffers, Smart Keyboard Keys
@subsection Smart Key - Pages Directory Mode
@format
@@ -8244,7 +8331,8 @@ When pressed on a pages-directory-mode entry line:
@end group
@end format
address@hidden Smart Key - Python Source Code, Smart Key - Objective-C Source
Code, Smart Key - JavaScript Source Code, Smart Keyboard Keys
address@hidden
address@hidden Smart Key - Python Source Code, Smart Key - Identifier Menu Mode
, Smart Key - Pages Directory Mode, Smart Keyboard Keys
@subsection Smart Key - Python Source Code
@format
@group
@@ -8273,16 +8361,16 @@ When pressed within a Python source code file (without
the OO-Browser):
@end group
@end format
address@hidden
address@hidden Smart Key - Identifier Menu Mode , Smart Key - C Source Code,
Smart Key - Pages Directory Mode, Smart Keyboard Keys
address@hidden Smart Key - Identifier Menu Mode , Smart Key - C Source Code,
Smart Key - Python Source Code, Smart Keyboard Keys
@subsection Smart Key - Identifier Menu Mode
@format
@group
-This works only for identifiers defined within the same source file in which
they are referenced.
-It requires either Emacs' imenu or XEmacs' func-menu library and it requires
that an index of
-identifiers has been built for the current buffer. Other handlers handle
identifier references
-and definitions across multiple files.
+This works only for identifiers defined within the same source file in
+which they are referenced. It requires either Emacs' imenu or XEmacs'
+func-menu library and it requires that an index of identifiers has
+been built for the current buffer. Other handlers handle identifier
+references and definitions across multiple files.
@noindent
When pressed on an identifier name after an identifier index has been
generated:
@@ -8294,6 +8382,7 @@ When pressed on an identifier name after an identifier
index has been generated:
@end group
@end format
address@hidden
@node Smart Key - C Source Code, Smart Key - C++ Source Code, Smart Key -
Identifier Menu Mode , Smart Keyboard Keys
@subsection Smart Key - C Source Code
@@ -8322,7 +8411,6 @@ When pressed within a C source code file:
@end group
@end format
address@hidden
@node Smart Key - C++ Source Code, Smart Key - Assembly Source Code, Smart Key
- C Source Code, Smart Keyboard Keys
@subsection Smart Key - C++ Source Code
@@ -8352,6 +8440,7 @@ buffer:
@end group
@end format
address@hidden
@format
@group
When pressed within a C++ source code file (without the OO-Browser):
@@ -8374,7 +8463,6 @@ When pressed within a C++ source code file (without the
OO-Browser):
@end group
@end format
address@hidden
@node Smart Key - Assembly Source Code, Smart Key - Lisp Source Code, Smart
Key - C++ Source Code, Smart Keyboard Keys
@subsection Smart Key - Assembly Source Code
@@ -8401,8 +8489,12 @@ When pressed within an assembly source code file:
@format
@group
address@hidden change-log-mode
address@hidden lisp identifier
address@hidden elisp identifier
When pressed on a Lisp symbol within any of these types of buffers
-(Lisp code, debugger, compilation, or help):
+(Lisp code, debugger, compilation, or help) or in change-log-mode
+on an Emacs Lisp bound identifier:
ACTION KEY
Jumps to the definition of any selected Lisp construct. If on an
Emacs Lisp require, load, or autoload clause and the (find-library)
@@ -8455,7 +8547,7 @@ When pressed within a Java source code file (without the
OO-Browser):
@end group
@end format
address@hidden Smart Key - JavaScript Source Code, Smart Key - Python Source
Code, Smart Key - Java Source Code, Smart Keyboard Keys
address@hidden Smart Key - JavaScript Source Code, Smart Key - Objective-C
Source Code, Smart Key - Java Source Code, Smart Keyboard Keys
@subsection Smart Key - JavaScript Source Code
@format
@@ -8472,7 +8564,7 @@ When pressed within a JavaScript source code file:
@end format
address@hidden Smart Key - Objective-C Source Code, Smart Key - Fortran Source
Code, Smart Key - Python Source Code, Smart Keyboard Keys
address@hidden Smart Key - Objective-C Source Code, Smart Key - Fortran Source
Code, Smart Key - JavaScript Source Code, Smart Keyboard Keys
@subsection Smart Key - Objective-C Source Code
@vindex objc-cpp-include-path
@@ -9260,10 +9352,8 @@ to direct further development effort towards known needs;
and to acknowledge known weaknesses in the current system.
@end itemize
-If you would like to see some of this work done, consider funding
-its development. Without any serious interest from users, progress
-on these fronts will be slow. Here are some new features we have
-in mind, however.
+Without any serious interest from users, progress on these fronts will
+be slow. Here are some new features we have in mind, however.
@table @asis
diff --git a/man/im/wgrid4x3.png b/man/im/wgrid4x3.png
new file mode 100644
index 0000000..b3cef2e
Binary files /dev/null and b/man/im/wgrid4x3.png differ
diff --git a/man/version.texi b/man/version.texi
index 9b3f5b2..085a4d0 100644
--- a/man/version.texi
+++ b/man/version.texi
@@ -1,4 +1,4 @@
address@hidden UPDATED February 2, 2019
address@hidden UPDATED-MONTH Feb 2019
address@hidden EDITION 7.0.2b
address@hidden VERSION 7.0.2b
address@hidden UPDATED May 11, 2019
address@hidden UPDATED-MONTH May 2019
address@hidden EDITION 7.0.3
address@hidden VERSION 7.0.3
diff --git a/set.el b/set.el
index abe4b3b..1ab32f5 100644
--- a/set.el
+++ b/set.el
@@ -1,4 +1,4 @@
-;;; set.el --- General mathematical operators for unordered sets
+;;; set.el --- General mathematical operators for unordered sets
;;
;; Author: Bob Weiner
;;
diff --git a/smart-clib-sym b/smart-clib-sym
old mode 100755
new mode 100644
diff --git a/topwin.py b/topwin.py
old mode 100755
new mode 100644
index 2892cad..2a3c983
--- a/topwin.py
+++ b/topwin.py
@@ -23,7 +23,7 @@ if len(argv) < 3:
x = int(argv[1]); y = int(argv[2])
-# Return the first window only that x,y falls within since the windows are
listed in z-order (top of stack to bottom)
+# Return the first window that x,y falls within since the windows are listed
in z-order (top of stack to bottom)
def filter_and_print_top_window(x, y):
win_x = win_y = win_width = win_height = 0
- [elpa] externals/hyperbole 997803d 12/13: V7.0.3 Release, (continued)
- [elpa] externals/hyperbole 997803d 12/13: V7.0.3 Release, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole 17724ef 02/13: fixup! Fixed a few bugs, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole 284a067 06/13: Merge pull request #7 from matsl/cherry-pick-elpa-changes, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole 159082b 09/13: Use diary-view-entries, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole 5140f17 01/13: Fixed a few bugs, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole 9755e7e 11/13: Small fixes from Mats, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole d5de7e3 05/13: Fix compilation: don't burp if hui-window is loaded before hui-mouse, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole 414ef94 03/13: Update for treemacs compatibility; {M-o i} push button fixes, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole 042842d 10/13: Small fixes and doc updates in preparation for next release, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole fdce47a 07/13: Add Gitlab to DEMO; MSWindows path handling; company-mode Smart Keys, Stefan Monnier, 2019/05/12
- [elpa] externals/hyperbole cc77f02 13/13: Merge remote-tracking branch 'hyperbole/master' into externals/hyperbole,
Stefan Monnier <=