Skip to content

Releases: rswgnu/hyperbole

hyperbole-9.1.0 - interim release to sync with package archive versioning

Choose a tag to compare

@rswgnu rswgnu released this 27 Jul 23:52
89755af

What's Changed

  • Small fixes after release by @matsl in #485
  • Add tests for verifying action key on hyrolo matches by @matsl in #486
  • Add hycontrol-blank-buffer-name and make it customizable by @matsl in #488
  • Add test for ibut:at-p on a remote path name by @matsl in #489
  • Add target to run make with a dockerized Emacs by @matsl in #490
  • Set in-progress release to 9.0.2pre by @rswgnu in #484
  • Ensure grep for warnings does not fail the build by @matsl in #493
  • Use numbers for line and column in links to org headers, add tests by @matsl in #492
  • Update docs to mention L and C chars suffixes with pathnames by @matsl in #496
  • Add install-melpa target for checking a melpa install by @matsl in #497
  • Fix HyRolo searches where headline-only option is given by @rswgnu in #498
  • hyrolo.el - Properly limit headline-only match highlighting region by @rswgnu in #499
  • hpath:expand-list - Fix to expand a dir when 'exists-flag' is t by @rswgnu in #501
  • hyrolo-grep-file - Fix to not skip past entry prefix of first match by @rswgnu in #502
  • Verify hyrolo match count by @matsl in #500
  • Add Emacs 29.3 to CI builds by @matsl in #495
  • Update test for hyrolo grep count by @matsl in #504
  • defil - Fix bug gh#rswgnu/hyperbole/503 button creation fails by @rswgnu in #505
  • First attempt to support test coverage using the testcover package by @matsl in #494
  • Replace COPYING with DEMO by @matsl in #506
  • Add test for issue gh#rswgnu/hyperbole/503 by @matsl in #508
  • hyrolo-consult-grep - speed up; grep generates file list from dirs; remove man/version.texi by @rswgnu in #509
  • org-link-outside-org-mode - Ignore `hsys-org-enable-smart-keys' value by @rswgnu in #511
  • Use kotl-mode.el instead of version.texi which is not exported. by @matsl in #507
  • Tests for org-links outside of org-mode by @matsl in #512
  • Fix smart- functions xref usage and support eglot by @rswgnu in #513
  • hsys-org-link-at-p and hbut:act - Fix gbut handling from other bufs by @rswgnu in #515
  • Add test for gbut:act on a web link by @matsl in #514
  • Xref-based LSP support for any prog language; command-line search of HyRolos by @rswgnu in #516
  • hyrolo.py - Include this new file by @rswgnu in #517
  • hyrolo.py - For Org files, include '#+PROPERTY:' lines in file hdr by @rswgnu in #519
  • Replace C++ defun-prompt-regexp to fix hang in Emacs by @rswgnu in #520
  • Set pipefail so that makes error code is propagated to the shell by @matsl in #523
  • Add Emacs 30 closure support and tests by @matsl in #526
  • Add quotes so make is executed in the container by @matsl in #525
  • Get list of args from closures by @matsl in #528
  • Add info about Emacs native comp by @matsl in #529
  • Add initial version of "hywiki.el" and the hywiki ibtype by @rswgnu in #521
  • hywiki.el - second release with much better wiki-word highlighting by @rswgnu in #530
  • hywiki.el - 3rd release: improve #section recog, exclude major modes by @rswgnu in #531
  • Update hywiki.el with search functions and fix a few smart-org bugs by @rswgnu in #532
  • Verify global button executes in current folder by @matsl in #533
  • Remove annotated bibliography from table of contents, not included by @matsl in #537
  • Add test for hpath:delimited-possible-path by @matsl in #536
  • Add test cases for hywiki by @matsl in #534
  • hywiki.el - Fix, improve a number of features and defaults. by @rswgnu in #538
  • Modify expected failed test to match the behavior by @matsl in #535
  • hywiki.el - Fix performance and correctness issues; improve tests by @rswgnu in #541
  • hywiki.el - Add `hywiki-file' ibtype to display non-HyWikiWord files by @rswgnu in #542
  • Add more hywiki tests by @matsl in #539
  • Copy source to docker so not local workspace is affected by @matsl in #543
  • Just set hywiki-directory to clear the page cache by @matsl in #544
  • fix warnings by @matsl in #545
  • hyrolo-org-mode - Fix Org 9.7 and up breakage under Emacs 30 by @rswgnu in #546
  • Makefile (dockerized-run): Add to run dockerized images by @rswgnu in #547
  • hynote.el - Add initial HyNote link support for Org and Org Roam by @rswgnu in #550
  • Use basename docker, depend on update to ensure latest image by @matsl in #549
  • Use compose-mail-other-window for implicit mail address by @matsl in #540
  • hib-debbugs.el - Fix most issues with use of the GNU debbugs package by @rswgnu in #552
  • Update doc in man/ directory by @rswgnu in #553
  • update docker for batch tests by @matsl in #551
  • hibtypes.el - grep-msg - Use find-library-name on proper file types by @rswgnu in #554
  • hibtypes.el(ipython-stack-frame, ripgrep-msg, grep-msg): Standardize by @rswgnu in #555
  • smart-org - Add Org tag support via agenda and consult-grep searches by @rswgnu in #556
  • Respect test specifier for the all-tests target by @matsl in #557
  • Use 29.4 in CI workflow by @matsl in #558
  • HyRolo tags searching; HyWikiWord improved highlight/dehighlight; improved ibtype debugging by @rswgnu in #559
  • minor cleanups by @matsl in #561
  • Use 29.4 for local docker builds by @matsl in #560
  • add tests for hypb 9 0 2 part1 by @matsl in #562
  • Bug fixes and highlighting single square and angle bracketed HyWikiWords by @rswgnu in #565
  • add tests for hypb 9 0 2 part2 by @matsl in #567
  • Add elisp-compiler-msg-test by @matsl in #566
  • more minor cleanups by @matsl in #568
  • HyWiki - Publish a HyWiki to HTML: {M-x hywiki-publish-to-html RET} by @rswgnu in #569
  • Add WikiWord page before converting to org link by @matsl in #570
  • Clean elc files in the test folder by @matsl in #571
  • Add HyWiki menus, Hyperbole manual chapter and glossary entries by @rswgnu in #572
  • Add HyWiki demo section to FAST-DEMO and hywiki/*.org files by @rswgnu in #574
  • Fix link regression by @matsl in #573
  • Add hywiki publish and export tests by @matsl in #575
  • Extend HyWiki manual chapter with Org-M-RET and Toggle menu entries by @rswgnu in #577
  • Add tree-sitter "programming modes" supported by Hyperbole by @matsl in #576
  • hibtypes.el - Add new 'hywiki-existing-word' ibtype and other fixes by @rswgnu in #578
  • Add file exist check in ripgrep-msg and a test case by @matsl in #564
  • Add TagFind to HyWiki and HyRolo menus and more updates by @rswgnu in #579
  • Control abbreviation of backtrace by @matsl in #580
  • correcting recent warnings by @matsl in #581
  • Remove useless @indent in texi by @matsl in #582
  • hyp-manual - Ad...
Read more

hyperbole-9.0.1

Choose a tag to compare

@rswgnu rswgnu released this 10 Mar 17:34
b36debb

What's New in V9.0.1

** ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching

*** After installing the ace-window package and loading Hyperbole, execute
(hkey-ace-window-setup "\M-o") to enable the following capabilities:

*** Fast Window Links: The hkey-window-link command quickly creates links
to other windows:

     {M-o w <window>} - creates an explicit button linked to point in <window>
     {C-u M-o w <window>} - creates an unnamed implicit button linked to point
       in <window>
     {M-1 M-o w <window>} - creates a named implicit button linked to point
       in <window>

  See "(hyperbole)Create Link Button".

** ACTION AND ASSIST (SMART) KEYS (See "(hyperbole)Smart Keys").

*** Angle Bracket and Braces Thing Selection: In text and fundamental modes,
an Action Key press on an angle bracket or a curly brace selects the
region between a matching pair. See "(hyperbole)Smart Key Thing
Selection".

*** Drag Button Referents to Specific Windows: Just as you previously could
drag Dired or Buffer Menu items to display in a specific window, you
can now do the same with Hyperbole Buttons. Action or Assist Key drag
from a Hyperbole button and release in another window where you want
the button's referent (or the result of its action) displayed. If you
release the Smart Key outside of an Emacs window, the referent is
displayed in a new frame. See "(hyperbole)Displaying Items".

  Visual pulsing of the source line and the destination buffer highlights
  the transfer taking place (hmouse-pulse-flag controls this).

  Dragging a button to a modeline splits the window of the modeline and
  displays the referent in the leftmost or uppermost of the split windows.

*** Drag to Create Implicit Link Buttons: An Assist Mouse Key drag across
windows (when not starting from a draggable item) creates an implicit
link button with an action type determined by the referent at the point
of button release. This parallels the same Action Mouse Key drag which
creates explicit link buttons. See "(hyperbole)creating implicit
links".

  Previously this drag would swap buffers in windows.  Now you must drag
  from open space in a modeline of the depress window to the buffer text
  in the release window to swap buffers in windows.

  Alternatively, with two windows in a frame, you can create an implicit
  link button from point to the point of the other buffer with {C-h h i l}.

*** Hyperbole Symbol Tags: Hyperbole now includes a pre-built TAGS file so
that an Action Key press on any Hyperbole symbol jumps to its
definition without the need for any additional support. This also
works on Hyperbole type names (which have a hidden prefix) in a help
buffer where an Action Key press displays the type definition.

*** Lisp Load, Autoload and Require Expressions: Action Key press on any
named target in such expressions displays the associated library.

*** Lisp Action Button Help: Action Buttons that utilize regular Lisp
functions (rather than Hyperbole Action Types) can now have :help
functions run with a press of the Assist Key on such buttons. See
"(hyperbole)Action Buttons".

*** Smart Dired: Action Key subdirectory selection at point now works on
any dired header line, not just the first one. Use {i} to insert
multiple subdirectories in Dired mode. Smart Key end-of-line behavior
is no longer specified in Dired mode but handled globally for
consistency across modes. See "(hyperbole)Smart Key - Dired Mode".

** ACTION TYPES (See "(hyperbole)Action Types").

*** display-boolean, display-value, display-variable: Made all of these
interactive, so can be used as button actypes. See "(hyperbole)
actypes display-boolean".

*** Long Action Buttons: The length limit on action buttons has been removed
to allow for long, multi-line sexpressions.

** DOCUMENTATION

*** Hyperbole Concepts: New writeup in Koutline format for those who
want a quick read about how Hyperbole concepts all interrelate.
View it with {C-h h d c}.

*** Action Types: Add newer types and updated existing doc summaries
in the Hyperbole manual. See "(hyperbole)Action Types".

*** Doc Viewing: Updated to display many files from the Doc> menu in Org
mode, so can cycle through expanding and collapsing entries with TAB
when point is at the beginning of the buffer, allowing you to view
just the sections of interest. View minor mode is also enabled so
you can scroll forward and backward with SPC and DEL.

  This includes DEMO, FAST-DEMO, HY-ABOUT, HY-NEWS and the Hyperbole
  Files MANIFEST.

*** Emacs 2023 Talk Videos:

    - Hyperbole Amps Up Emacs: Org slide file is included in
      "HY-TALK/HYPERAMP.org" with the video at
      "https://emacsconf.org/2023/talks/hyperamp/".

    - Koutline for Stream of Thought Journaling: The video is at
      "https://emacsconf.org/2023/talks/koutline/".

    - What I learned by writing test cases for GNU Hyperbole: The video
      is at "https://emacsconf.org/2023/talks/test/".

*** Emacs 2022 Talk Videos:

    - Hyperbole and Org Mode: Org slide file is included in
      "HY-TALK/HYPERORG.org" with the video at
      "https://emacsconf.org/2022/talks/hyperorg/".

    - Linking Personal Info with Implicit Buttons: The video is at
      "https://emacsconf.org/2022/talks/buttons/".

    - Build a Zettelkasten with HyRolo: The video is at
      "https://emacsconf.org/2022/talks/rolodex/".

*** FAST-DEMO: Add ERT multiple test run
example.

*** New Menu Key Doc: Documented these Hyperbole minibuffer menu keys:

    - {Q} always quits from the menu without selecting anything

    - {X} both quits from the menu and disables Hyperbole minor
      mode; {C-h h} re-enables it.  See "(hyperbole)menu,
      entry/exit commands".

*** Updated 150-page Reference Manual: Includes multiple indexes for easy
cross-referencing, Info viewer version and PDF for printing. View it:

    - with the Emacs Info reader: {C-h h d i}.
    - locally with a web browser: <browse-url "man/hyperbole.html">
    - in pdf form:                "man/hyperbole.pdf".

  Some of the updates include:

**** HyRolo Searching: Update this section with doc on auto-expansion and
how to hide entries again.

**** Ibut Menu: Document in the manual, notably the new Ibut/Create menu
item. See "(hyperbole)menu, Ibut/Create". For the Ibut/Link menu
item, see "(hyperbole)menu, Ibut/Link".

**** Implicit Button Types: Add doc for 'hib-python-traceback'
and 'hyrolo-stuck-msg'. See "(hyperbole)Implicit Button Types".

**** Link Menu Items: With two windows on screen, link from source window
point to referent window point. Do a similar thing when more windows
are on screen via an Action Mouse Key drag between windows. See
"(hyperbole)Smart Mouse Drags between Windows".

**** Manual Glossary: Added Ace Window, Consult, Org Mode, and Org Roam
entries. See "(hyperbole)Glossary".

**** Smart Key - Org Mode: Expanded with doc for more extensive behavior.
See "(hyperbole)Smart Key - Org Mode".

*** README.md: Unify this as the only readme file and remove "README".

** EXPLICIT BUTTONS (See "(hyperbole)Explicit Buttons").

*** Ebut/Link Menu Item {C-h h e l}: Inserts a named ebutton that links to
point in another window. See "(hyperbole)menu item, Ebut/Link".

** GLOBAL BUTTONS (See "(hyperbole)Global Buttons").

*** Gbut/Link Menu Item: A single name creates a new global link button
to point. See "(hyperbole)menu item, Gbut/Link".

*** Auto Save: Automatically save the global button file after any edit.

** HYCONTROL (See "(hyperbole)HyControl").

*** I/J/K/M Key Bindings: In Window Control mode, move directionally
(based on QUERTY keyboard layout) among windows in the selected frame.
In Frame Control mode, move directionally among active frames. These
keys utilize and prompt to install the windmove and framemove packages
if not installed. See "(hyperbole)I/J/K/M".

** HYPERBOLE SYSTEM (See "(hyperbole)").

*** Any Colorized Display: Face display and colorization of Hyperbole
buttons now works on any display capable of displaying colors. See
"(hyperbole)Button Colors".

*** Create Buttons in Current Buffer: Stop prompting for a source buffer
when creating a Hyperbole button. Always use the current buffer and
point. See "(hyperbole)Creation".

*** DuckDuckGo Web Search: {C-h h f w k} runs a DuckDuckGo web search.

*** Hyperbole Keys Defer to Current Modes: Hyperbole bindings of {C-c RET},
{C-c .}, {C-c @}, and {C-c /} defer to any major mode, like org-mode,
outline-mode or kotl-mode that binds them to other commands. This also
works for outline-minor-mode.

*** Improved Button Help: {C-h A} now says whether a button is explicit or
implicit. For implicit buttons, it displays the doc from both its
implicit button type and its associated action type.

  {C-h A} now also works on Emacs push-buttons and text property
  buttons, displaying their attributes and associated action.  See
  "(hyperbole)Smart Key help".

*** Flymake Lint Warning Display: The new "hsys-flymake" library provides
commands to display the flymake warning at point as well as the full list
of warnings for th...

Read more

hyperbole-8.0.2pre

hyperbole-8.0.2pre Pre-release
Pre-release

Choose a tag to compare

@rswgnu rswgnu released this 19 Feb 17:57

What's Changed

  • Add files to website that are linked from README.md by @matsl in #195
  • Don't byte compile test packages with external test dependencies by @matsl in #196
  • Add target for native byte compilation by @matsl in #197
  • Tests for shell related key series examples in the fast demo by @matsl in #198
  • Add package-lint target by @matsl in #134
  • Fix some package lint messages by @matsl in #199
  • Use hload-path--make-directory-autoloads in Makefile by @matsl in #200
  • Use defun for hact by @matsl in #120
  • Remove xemacs compatibility code fragments by @matsl in #187
  • Use messages-buffer, run test case only interactively by @matsl in #205
  • Simplify test case by only testing unquoted file name by @matsl in #207
  • Clean up after test case by @matsl in #208
  • Patch by Stefan by @matsl in #209
  • Use replace regexp in string by @matsl in #210
  • Initial workflow to run make clean bin test for three versions on Emacs by @matsl in #211
  • Rename global var to remove shadowing warnings by @matsl in #206
  • Remove last mentioning xemacs by @matsl in #204
  • Allow match on different apropos formats by @matsl in #201
  • Doc strings within 80 char limit for hargs.el by @matsl in #213
  • Doc strings within 80 char limit for hib-debbugs.el by @matsl in #214
  • Doc strings within 80 char limit for hactypes.el by @matsl in #215
  • Doc strings within 80 char limit for hbdata.el by @matsl in #216
  • Doc strings within 80 char limit for hmouse-tag.el by @matsl in #221
  • Doc strings within 80 char limit for kcell.el by @matsl in #223
  • Doc strings within 80 char limit for kexport.el by @matsl in #224
  • Doc strings within 80 char limit for hact.el by @matsl in #212
  • Doc strings within 80 char limit for kfill.el by @matsl in #226
  • Doc strings within 80 char limit for kimport.el by @matsl in #227
  • Doc strings within 80 char limit for kotl-orgtbl.el by @matsl in #231
  • Doc strings within 80 char limit for hbut.el by @matsl in #217
  • Doc strings within 80 char limit for hhist.el by @matsl in #218
  • Doc strings within 80 char limit for hib-doc-id.el by @matsl in #219
  • Doc strings within 80 char limit for hib-kbd.el by @matsl in #220
  • Doc strings within 80 char limit for kfile.el by @matsl in #225
  • Doc strings within 80 char limit for klabel.el by @matsl in #228
  • Doc strings within 80 char limit for klink.el by @matsl in #229
  • Doc strings within 80 char limit for kproperty.el by @matsl in #232
  • Doc strings within 80 char limit for kvspec.el by @matsl in #234
  • Use loaddefs-generate when available by @matsl in #271
  • hsys-youtube.el: Shorten docs strings to be within 80 char limit by @matsl in #251
  • hui-em-but.el: Shorten docs strings to be within 80 char limit. by @matsl in #254
  • hui-jmenu.el: Shorten docs strings to be within 80 char limit. by @matsl in #255
  • hyrolo-demo.el: Shorten docs strings to be within 80 char limit. by @matsl in #266
  • set.el: Shorten docs strings to be within 80 char limit. by @matsl in #270
  • Adjust to new tramp regexp in emacs 29 by @matsl in #273
  • Doc strings within 80 char limit for hmouse-info.el by @matsl in #243
  • Doc strings within 80 char limit for hmoccur.el by @matsl in #241
  • Doc strings within 80 char limit for hmouse-mod.el by @matsl in #245
  • htz.el: Shorten docs strings to be within 80 char limit. by @matsl in #252
  • hywconfig.el: Shorten docs strings to be within 80 char limit. by @matsl in #269
  • Use maintenance release 28.2 by @matsl in #274
  • Add 28.1 in again by @matsl in #276
  • Cleanup - Remove unused function and do not use removed function by @matsl in #236
  • Doc strings within 80 char limit for hinit.el by @matsl in #238
  • Doc strings within 80 char limit for hload-path.el by @matsl in #239
  • Doc strings within 80 char limit for hmouse-drv.el by @matsl in #242
  • Doc strings within 80 char limit for hmouse-key.el by @matsl in #244
  • Doc strings within 80 char limit for hmouse-sh.el by @matsl in #246
  • hui-window.el: Shorten docs strings to be within 80 char limit. by @matsl in #260
  • hversion.el: Shorten docs strings to be within 80 char limit. by @matsl in #262
  • hyperbole.el: Shorten docs strings to be within 80 char limit. by @matsl in #265
  • hyrolo-logic.el: Shorten docs strings to be within 80 char limit. by @matsl in #268
  • Doc strings within 80 char limit for hibtypes.el by @matsl in #237
  • hpath.el: Shorten docs strings to be within 80 char limit. by @matsl in #249
  • hui-select.el: Shorten docs strings to be within 80 char limit. by @matsl in #259
  • hycontrol.el: Shorten docs strings to be within 80 char limit. by @matsl in #263
  • hypb.el: Shorten docs strings to be within 80 char limit. by @matsl in #264
  • Doc strings within 80 char limit for hyrolo.el by @matsl in #277
  • hvar.el: Shorten docs strings to be within 80 char limit. by @matsl in #261
  • hui-mouse.el: Shorten docs strings to be within 80 char limit. by @matsl in #258
  • First stab at register support by @matsl in #272
  • hui-mini.el: Shorten docs strings to be within 80 char limit. by @matsl in #256
  • hsys-org.el: Shorten docs strings to be within 80 char limit. by @matsl in #250
  • Doc strings within 80 char limit for hsettings.el by @matsl in #248
  • Doc strings within 80 char limit for hmouse-tag.el by @matsl in #247
  • Doc strings within 80 char limit for hmail.el by @matsl in #240
  • Doc strings within 80 char limit for hib-social.el by @matsl in #235
  • Doc strings within 80 char limit for kotl-mode.el by @matsl in #230
  • hui.el: Shorten docs strings to be within 80 char limit. by @matsl in #253
  • Use line-beginning-position and line-end-position by @matsl in #281
  • Doc strings within 80 char limit for kview.el by @matsl in #233
  • Fix most remaining docstring lengths by @matsl in #278
  • Update docstrings to not use single quotes, removes warning by @matsl in #280
  • Shorten docstring that slipped through the net by @matsl in #282
  • Show docstring warnings again by @matsl in #279
  • Fix lexical-dynamic warnings by @matsl in #284
  • Use defvar for hyperb:dir by @matsl in #285
  • Silence warning about reference to free variable by @matsl in #283
  • Use pattern substitution to derive the elc files by @matsl in #291
  • Update main.yml by @matsl in #288
  • Do not mention removed function-in-buffer by @matsl in #295
  • Use kotl mode copy regions as kill ...
Read more

Hyperbole 8.0.0: May 2022 Release

Choose a tag to compare

@rswgnu rswgnu released this 01 May 15:12
** HYPERBOLE SYSTEM

  *** Installation: Hyperbole package installation options are greatly expanded.
      Stable or in-development branches may be installed with the Emacs package
      manager.  The Straight package manager may be used to keep up with
      git-based development and submit pull requests.  And stable and
      in-development tar balls are available for manual installation.  See
      "(hyperbole)Installation".

  *** Global Minor Mode: Hyperbole is now a global minor mode that can be
      toggled with {M-x hyperbole-mode RET}, meaning all of its key bindings
      can easily be enabled or disabled whenever desired.  Your init file needs
      to have (hyperbole-mode 1) in it instead of (require 'hyperbole) or
      Hyperbole will not be enabled upon startup.  See "(hyperbole)Usage".

      Modeline Indicator: In the modeline where minor modes are shown,
      "Hypb" now appears whenever Hyperbole is active.

      Hooks: When hyperbole-mode is enabled, hyperbole-mode-hook and
      hyperbole-mode-on-hook are run.  When hyperbole-mode is disabled,
      hyperbole-mode-hook and hyperbole-mode-off-hook are run.

      Lexical Binding: All code is now largely lexically bound, improving
      quality and debugability.


** ORG MODE

  *** M-RET: Reworked M-RET interface so can control how much or little of
      Hyperbole works in Org mode when Hyperbole minor mode is enabled.
      See "(hyperbole)enable org-mode support" and "hsys-org.el".

  *** hsys-org-enable-smart-keys: New customization to replace
      'inhibit-hsys-org'.  This applies only in Org major/minor modes when
      hyperbole-mode is active.  t means enable Smart Key support
      everywhere.  The symbol, buttons, is the default; it means the Smart
      Keys are active only when point is within a Hyperbole button.  A nil
      value means no Smart Key support so {M-RET} behaves just as it does
      normally in Org mode.  See "(hyperbole)Org-mode".  Use {C-h h c o}
      to customize this setting.

      This table summarizes the operation:

      |--------------+-------------------+------------------+----------+------------------|
      | Set To       | Smart Key Context | Hyperbole Button | Org Link | Fallback Command |
      |--------------+-------------------+------------------+----------+------------------|
      | buttons      | Ignore            | Activate         | Activate | org-meta-return  |
      | nil          | Ignore            | Ignore           | Ignore   | org-meta-return  |
      | t            | Activate          | Activate         | Activate | None             |
      |--------------+-------------------+------------------+----------+------------------|


** EASILY CREATE YOUR OWN BUTTON TYPES

  *** Simple Action Link Button Type Creation: `defal' is a new,
      easy-to-use construct that generates new action button types from
      a type name and a single simple format expression, allowing
      non-programmers to create their own implicit action button link
      types that execute key series, display URLs, display the contents
      of pathnames or invoke functions.  See "(hyperbole)Action Button
      Link Types" or the "DEMO2#Defining New Action Button Types"
      section.

  *** Easy Implicit Link Button Type Creation: 'defil' is a new
      construct for those familiar with regular expressions but not
      much Emacs Lisp.  This creates more flexible implicit button
      types than 'defal' where the delimiters and text substitution
      can be specified with regular expressions.  Actions are limited
      to executing key series, displaying URLs, displaying the
      contents of pathnames or invoking functions.  See
      "(hyperbole)Implicit Button Link Types".

      Elisp programmers should use the existing 'defib' macro for full
      flexibility in implicit button type creation.  See "hibtypes.el"
      for examples and "(hyperbole)Programmatic Implicit Button Types"
      for documentation.


** TEST CASES

  *** Hyperbole Automated Testing: Extensive quality improvements throughout
      Hyperbole thanks in part to over 230 test cases now included in the
      test/ subdirectory.  Simply run 'make test-all' or 'make test' from the
      command-line when in the Hyperbole source directory and you should see
      all tests pass.  If any fail, you can press the Action Key to see the
      source of the failure.  Full testing is supported under POSIX systems
      only.  See "Makefile" and "test/MANIFEST".
 
  *** Implicit Button Types to Run Tests: The file "hypb-ert.el" contains two
      action link types:
        hyperbole-run-test  - run a single Hyperbole test by name
        hyperbole-run-tests - run one more tests matching a pattern
      
        Example uses:
          Run the test hbut-defal-url
            <hyperbole-run-test hbut-defal-url>

          Run the tests specified by the test selector hbut-defal
            <hyperbole-run-tests hbut-defal>

          Run all tests
            <hyperbole-run-tests t>
 
  *** Installation Testing: install-test/local-install-test.sh automatically
      installs Hyperbole for testing from one or more of its releases or
      development branches.  See "Makefile" and "install-test/MANIFEST".


** HYROLO  (See "(hyperbole)HyRolo").

  *** Faster searching within HyRolo match buffer: After performing a HyRolo
      search with point in the match buffer, if you want different results,
      you can quickly do a new regular expression HyRolo search with {r} or
      a string/logical search with {C-u r}.  This key had moved to previous
      matches but that is already bound to {Shift-TAB} and {M-TAB}.

  *** Auto-Expansion of Entries: If an entry is collapsed/hidden, moving to
      any hidden part auto-expands it and then re-collapses it when point is
      moved to another entry (just like isearch).  A side-effect of this is
      that the {h} hide entry subtree command now moves to the beginning of
      the entry.

  *** hyrolo-find-file: New command that selects and edits a file in
      'hyrolo-file-list', defaulting to the first listed file when not given
      a prefix arg.  Available in the minibuffer menu as Rolo/File and the
      pulldown menu as Rolo/Find-HyRolo-File.

  *** Sorting Entries Rewritten:  {C-h h r o} re-ordering HyRolo entries has
      been rewritten for compatibility and improved debugging with the latest
      Emacs releases.

  *** hyrolo-highlight-face: Now uses the Emacs 'match' face by default.

  *** Under MS Windows, the default HyRolo file is now "~/.rolo.otl" like
      all other operating systems, instead of "~/_rolo.otl".  Any older file
      name will be relocated to the newer name.


** KOUTLINER  (See "(hyperbole)Koutliner").

  *** Export Koutlines to Collapsible Web Pages: {C-h h k f d} or
      {M-x kexport:display RET} command creates and displays a web-based
      expandable/collapsible outline from the Koutline in the current buffer.
      See "(hyperbole)Exporting" and the new Koutliner Format submenu.

  *** Org File Importation: Org files may now be imported to a Koutline using
      {M-x kimport:file RET}.

  *** Org Table Support: Org table editing now automatically works in the
      Koutliner via Org table minor mode.  Use {M-x orgtbl-mode RET} to
      toggle this on and off.  A press of the Action Key on a | symbol,
      also toggles this minor mode on or off. See "(Org)Tables" for details.
      Use a prefix arg with {TAB} to promote/demote Koutline trees when in
      a table since {TAB} moves between fields within a table.

  *** New Tree Movement Commands: Like Org mode, {[M-down]} and {[M-up]} move
      the current tree past or before other trees at the same level.  With a
      prefix argument, move past that many trees.

  *** New Tree Promotion/Demotion Keys: Tree promotion and demotion keys now
      match many of the defaults in Org mode and Outline mode, plus some
      easier to type ones.  The tables below summarize which keys work whether
      inside an Org table or outside.  See "(hyperbole)Promoting and Demoting".

      |----------------------------+-----------------------------|
      | Promotion Inside Org Table | Demotion Inside Org Table   |
      |----------------------------+-----------------------------|
      | M-0 Shift-TAB or M-0 M-TAB | M-0 TAB                     |
      | C-c C-,                    | C-c C-.                     |
      | C-c C-<                    | C-c C->                     |
      |----------------------------+-----------------------------|

      |-----------------------------+----------------------------|
      | Promotion Outside Org Table | Demotion Outside Org Table |
      |-----------------------------+----------------------------|
      | Shift-TAB or M-TAB          | TAB                        |
      | M-left                      | M-right                    |
      | C-c C-,                     | C-c C-.                    |
      | C-c C-<                     | C-c C->                    |
      |-----------------------------+----------------------------|

  *** New Mail Tree Key Binding: The 'kotl-mode:mail-tree' command that
      extracts the current view of a Koutline in text-only format and
      creates an outgoing email message with it, has moved from {C-c @}
      to {C-c C-@} to prevent conflict with the global hycontrol-window-grid
      command bound to {C-c @}.

  *** New Copy Command: The new command, 'kotl-mode:copy-tree-or-region-to-buffer',
      bound to {C-c M-c} copies a Koutline tree or the active region
      to a specified buffer.  Prompts dictate whether invisible text
      is included or not.  This allows copying parts of Koutlines
      directly into other buffers without having to copy to a
...
Read more

Hyperbole 8.0.0 Pre-release

Pre-release

Choose a tag to compare

@rswgnu rswgnu released this 03 May 07:01

Hyperbole V8 has many new features as well as improvements including Hyperbole is now a global minor mode so its key bindings are even easier to enable or disable when needed. See the README.md and HY-NEWS files for some details.

Hyperbole 7.1.3: September 2020 release

Choose a tag to compare

@rswgnu rswgnu released this 21 Sep 23:35

SMART (ACTION AND ASSIST) KEYS

- Global Org Link Activation: The Action Key now activates Org links in
  non-Org buffers if 'inhibit-hsys-org' is nil (the default).  The Assist
  Key shows help.

- Org Agenda Item Display: The Action Key displays the Org node
  associated with Agenda items such as TODOs in another window.  The
  Assist Key shows help.

- Org Mode: Raised to near top priority in implicit button types so that
  pathnames, URLs, etc. within Org links are handled by Org rather than
  Hyperbole.

- Smart Dired Sidebar: Smart Key support for the dired-sidebar
  package.  See "(hyperbole)Smart Key - Dired Sidebar Mode".

- Helm Mode:  The Smart Keys do all sorts of things in helm completion buffers
  and the associated minibuffer.  See "(hyperbole)Smart Key - Helm Mode".

- Magit Mode: Action Key expands/collapses like {TAB} and Assist Key
  jumps to items like {RET}.  See "(hyperbole)Smart Key - Magit Mode".

BUTTON TYPES

- {Key Series} Button Support for Helm and Counsel: Key series buttons
  with M-x commands now work properly when counsel-mode or helm-mode are
  enabled and M-x is rebound.

- Markdown In-file Links: With point on the link title, in-file links are
  now activated properly (previously point had to be on the link itself).

- Git#directory Buttons: New flag, hibtypes-git-use-magit-flag, which if
  set to t and Magit is available, then when activating a git directory
  button, such as git#/hyperbole, use Magit rather than Dired.

- Explicit Buttons Work Immediately: Previously you had to save the buffer
  in which you created an explicit button before it would work.  Now they
  work immediately after creation.

DOCUMENTATION

- Helm Mode: Added Hyperbole Manual section, "Smart Key - Helm Mode"
  that works on helm completions.  See "(hyperbole)Smart Key -
  Helm Mode".

- Hyperbole Slides: Slides used in a talk by the author on the history
  and capabilities of Hyperbole, see "HY-TALK/HY-TALK.org".

- Magit Mode: Added Hyperbole Manual section, "Smart Key - Magit Mode"
  that expands/collapses/jumps to Magit items.  See "(hyperbole)Smart Key -
  Magit Mode".

Hyperbole 7.1.0 TEST RELEASE - activate any labeled button; link-to-file with line and col numbers; documented link-to-bookmark

Choose a tag to compare

@rswgnu rswgnu released this 24 Feb 03:54
hyperbole-7.1.0

BUTTON TYPES

- In-buffer Labels: Fixed a number of in-buffer text handling issues with
  the creation of explicit buttons, maximizing reuse of existing text in
  labels.

- link-to-file Action Type: Extended to allow file path to include either
  :line-num:column-num or just :line-num at the end (translated to character
  location within the button).

DOCUMENTATION

- Bookmark Mode: Added Hyperbole Manual section, "Smart Key - Bookmark Mode"
  that allows linking to Emacs Bookmarks.  See "(hyperbole)Smart Key -
  Bookmark Mode".

MENUS

- Activate Any Labeled Buffer Button: Hyperbole's top-level menu 'Act'
  command either activates any button at point or prompts for the choice of
  any labeled explicit or implicit button within the buffer to activate.
  The pulldown menu item, Activate-Button-in-Buffer, behaves the same.

- Org-mode in Q&A Appendix: Rewrote this section to account for improved
  integration.

Hyperbole 7.0.9: TEST RELEASE - region throws; frame dragging; improved org integration

Choose a tag to compare

@rswgnu rswgnu released this 17 Feb 07:15
hyperbole-7.0.9

Many issues were resolved in this test version as documented in the "Changes" file.
Only new features are listed here.

ACE WINDOW PACKAGE INTEGRATION - fast window and buffer switching

- After installing the ace-window package and loading Hyperbole, execute
  (hkey-ace-window-setup "\M-o") to enable the following capabilities:

- Region Throws: The hkey-throw command bound to {M-o t} now throws the
  active (highlighted) region, if any, into the target window's buffer,
  rather than replacing its buffer with the source window buffer.  If
  you don't use region highlighting, i.e. transient-mark-mode, then use
  {C-u M-o t} for the same effect.  The buffer in the target window
  must differ from the one in the source window.  With no region
  active, this command still throws the source buffer to the target
  window.  See "DEMO#Displaying File and Buffer Items and Moving Buffers".

SMART (ACTION AND ASSIST) KEYS

- Modeline Drag Window Resizing: Smart Key window resizing now provides
  live feedback during the drag.

- Bottommost Modeline Frame Moving: After adding a 'drag-with-mode-line'
  frame parameter with a value of t, a drag of any of its bottommost
  modelines with either Smart Mouse Key repositions the frame on screen.
  See "(hyperbole)Moving Frames" for information on how to configure this
  feature.

CUSTOMIZATON

- hproperty:flash-face: Face used when flashing a button; now customizable.

- hproperty:highlight-face: Face used to highlight a line; now customizable.

- inhibit-hsys-org: See ORG MODE section below.

GLOSSARY

- Hlink Definitions: Added Action Button, Elink, Ilink, Glink definitions.

HYCONTROL

- Buffer/Window Swapping: Improved {~} so current buffer remains the same but
  the selected window changes.  Also made frame buffer swapping work anytime
  there are two or more frames regardless of how many windows in each.  See
  "DEMO#Swapping Buffers".

HYROLO

- Hyrolo Add: Fixed new entry addition to add in sorted order and make logic
  operators perform properly, after a bug in level calculation had been
  introduced.

IMPLICIT BUTTONS

- Double Quoting Key Series: Key series delimited by {} may now be in double
  quotes, e.g. "{C-x o}".

- Windows to Posix Paths: Much improved conversion of MSWindows UNC paths to
  existing Posix mount points when running Emacs under Windows Subsystem for
  Linux.  See

- Flashing Implicit Buttons: More types of implicit buttons now flash when
  activated.

- Improved Grep Output Parsing: Recognizes file names with spaces followed by
  the null (^@, ASCII 0) character.

- Texinfo @-Quoted Path Variables: Hyperbole now can resolve paths as
  complicated as this: @file{$@{hyperb:dir@}/DEMO#POSIX and MSWindows Paths}
  in Texinfo files if the Action Key is pressed on the / or after, i.e. after
  the variable name.

KEYS

- Deleted C-c C-r Global Binding: Removed {C-c C-r} key binding for explicit
  button renaming due to conflicts with some major modes

ORG MODE

- Implicit Button Support: Org-mode's local binding of {M-RET} by default
  now activates Hyperbole implicit buttons when within them.

- inhibit-hsys-org: New customization that when set non-nil disables
  all Smart Key support in any Org major or minor mode.

- hsys-org-hbut-activate-p: Added to org-metareturn-hook so local binding
  of {M-RET} in org-mode activates Hyperbole buttons when point is over
  them. (It doesn't run the full set of Action Key actions).

PROGRAMMING

- Auto Imenu Reindexing: If using Emacs imenu package, the Action Key
  will look up in-buffer identifier references with imenu.  If imenu's
  index is rendered invalid due to large changes in a buffer, Hyperbole
  will now automatically rebuild the index to have correct pointers.
  (Does not require use of the imenu-auto-rescan setting.

- hypb:mark-object: Gives Hyperbole-specific strings and symbols
  a hyperbole property that distinguishes them from other objects.

- hypb:object-p: Tests whether has the hyperbole property.  This is useful
  in hpath:relative-to and hpath:absolute-to where any string with a
  hyperbole property is ignored as a potential path.  For example, this
  prevents removal of trailing whitespace from normalized key series.

- hbut:act: Hyperbole button parameter is now optional and defaults to
  the located button, the symbol, 'hbut:current.

- ibtypes tag lookup: Implicit button type names such as ibtypes::grep-msg
  are now properly found in tags tables using their defib names
  (e.g. grep-msg).

- hmouse-drag-p: tests whether absolute Smart Mouse Key depress and
  release positions differ (relative to display/screen coordinates).

- hycontrol-quit: Unified the two Hycontrol mode quit commands into this one.
  hycontrol-abort: Renamed from hycontrol-abort-mode.

- hyperb:autoloads-exist-p
  hyperb:maybe-generate-autoloads
  hyperb:generate-autoloads: Added and called from hyperb:init when
  initializing Hyperbole to generate auto-autoload files when
  running from a non-packaged source download of Hyperbole.

Hyperbole 7.0.8: TEST RELEASE - XML markup tag selection; global button renaming

Choose a tag to compare

@rswgnu rswgnu released this 21 Jan 04:10

BUTTONS

- Action Buttons: A new, universal syntax for creating implicit buttons
  that execute any existing action types or Elisp functions.  Such
  buttons are delimited by angle brackets, < >, and come in three types:
  action type invocations, function calls and variable displays.  See
  "(hyperbole)Action Buttons" for examples and details on this exciting
  new capability.

- Labeled Implicit Buttons: Optional <[labels]> that precede implicit
  buttons.  This enables implicit buttons to be activated by name when
  in the current buffer or anywhere when added to the global buttons
  file (personal button file).

- Link to Buttons: New implicit button types that link to buttons based
   on their categories and labels:

    In Buffer Syntax                                       Implicit Button Type
    ===========================================================================
    <elink: explicit button label to link to: optional ebut file>  link-to-ebut
    <glink: global button label to link to>                        link-to-gbut
    <ilink: implicit button label to link to: optional ibut file>  link-to-ibut

- Other New Implicit Button Types:
    debugger-source: Jump to the source of errors from the Python pytype package
    ipython-stack-frame: Jump to the source of ipython stack traces and exceptions

- Other New Action Types:
    link-to-bookmark: Display an Emacs bookmark

- Much Faster Implicit Buttons: Major speedup in implicit button identification
  and activation even with the new generalized Action implicit button type
  syntax, due to internal optimizations.

- Pathname Flashing: Pathname implicit buttons now flash when activated.

- Pathname References: Pathname implicit buttons may contain both link anchors
  and line and column numbers.  Format is:
    "<path>[#<link-anchor>]:<line-num>[:<col-num>]"

- Shell Script Link Anchors: Link anchors now work for shell script editing modes
  as well using comment lines as the anchors, e.g. "myscript.sh#Env Variables".

- Dir Variable Separators: Variables in paths no longer require a trailing directory
  separator.  Both of these are live Hyperbole paths:
  "${hyperb:dir}DEMO#Smart Mouse Keys"
  "${hyperb:dir}/DEMO#Smart Mouse Keys"

- Jump Thing: Added xml-mode support for pressing the Action Key when on a start or
  end tag pair to select the whole region between them.  {C-c .} also moves between
  the start and matching end tag.  See "(hyperbole)Smart Key Thing Selection".

DOCUMENTATION

- DEMO: New sections on Button Files and Global Buttons.

- Action Types: link-to-gbut, link-to-ibut - Added.

- hpath:native-image-suffixes: documented this setting for controlling
  image types that Hyperbole displays within Emacs.

- Implicit Button Types: Split off type descriptions to this new
  subsection and added these types: ripgrep-msg, ipython-stack-frame,
  ilink (link to implicit button), glink (link to global button), and
  elink (link to explicit button).

- DEMO (Action Buttons): Added description and examples.

- Path Variables: Better documented how these are handled.

- Hyperbole Manual, DEMO (Implicit Buttons): Added description and
  example of implicit button labels.

- Glossary: Updated Implicit Button and Global Button entries with
  changes.

KOUTLINER

- When 'c' (clip to lines per cell) is omitted from a viewspec, clipping
  now changes to whatever the default number of lines per cell is
  (typically, unlimited).  The same goes for the 'l' spec (limit display
  to a certain level of cells).

MENUS

- Pulldown Menus:   Implicit-Button/Label: Added to add a label.
                    Implicit-Button/Rename - Added to rename the label
                    of an implicit button.

- Minibuffer Menus: hui-mini.el (hui:menus): Added Ibut/Label and
  Ibut/Rename.

ORG MODE

- Radio Targets and Links: Smart Keys now handle these.

- Links: Smart Keys handle both internal and external Org mode links.

PROGRAMMING

- ibut:at-type-p: Added to test if point is on a specific type of
  implicit button.

- hbut:key, ebut:key, ibut:key, hbut:rename, hui:hbut-rename,
  hui:hbut-operate: Added to allow renaming of any type of labeled
  Hyperbole button.

- hypb:region-with-text-property-value: Added and used in hysy-org.el.

- hsys-org-mode-function, hsys-org-mode-p: Added to determine when
  hsys-org actions are activated.

- ebut:key-src-set-buffer, hbut:key-src-set-buffer, hbut:key-list,
  hbut:ebut-key-list, hbut:ibut-key-list, hbut:label-list): Added
  to allow selection of labeled Hyperbole buttons in currrent buffer by
  name.

- gbut:get, hbut:map, ibut:label-map, ibut:key-src, ibut:key-to-label,
  ibut:label-to-key, hui:ebut-act, ibut:summarize, ibut:label-start,
  ibut:label-end, ibut:label-p, ibut:get, hui:ibut-label-create,
  hui:ibut-rename, hui:ibut-message, ibut:alist, ibut:list, ibut:map,
  ibut:next-occurrence, ibut:label-regexp, gbut:ibut-key-list, ebut:to,
  gbut:to, ibut:to, ibut:label-separator, hbut:label-regexp,
  ibut:rename, hbut:get: Added to support implicit button labels and
  links to buttons.
  hbut:label-p: Updated to handle implicit button labels.
  ibut:label-separator-regexp, hbut:outside-comment-p: Added.

- elink, elink:start, elink:end: Added for in-buffer links to explicit buttons.
  glink, glink:start, glink:end: Added for in-buffer links to global buttons.
  ilink, ilink:start, ilink:end: Added for in-buffer links to implicit buttons.

- hsys-org-set-ibut-label: Added and used in org-mode ibtype.
  org-mode, hsys-org-at-block-start-p: Added Action Key activation of
  Org blocks when on 1st line of def.

SMART (ACTION AND ASSIST) KEYS

- Emacs Bookmark Menu Mode: Jump to the bookmark at point.

- hpath:find-program: Changed to prioritize hpath:native-image-suffixes
  over hpath:internal-display-alist over hpath:external-display-alist-macos
  instead of the reverse.  This prevents external viewers from being
  used when internal viewers are also in effect.

Hyperbole 7.0.7: TEST RELEASE - fixed new, more efficient htype symbol table lookups

Choose a tag to compare

@rswgnu rswgnu released this 19 Jan 22:34

BUTTONS

- Action Buttons: A new, universal syntax for creating implicit buttons
  that execute any existing action types or Elisp functions.  Such
  buttons are delimited by angle brackets, < >, and come in three types:
  action type invocations, function calls and variable displays.  See
  "(hyperbole)Action Buttons" for examples and details on this exciting
  new capability.

- Labeled Implicit Buttons: Optional <[labels]> that precede implicit
  buttons.  This enables implicit buttons to be activated by name when
  in the current buffer or anywhere when added to the global buttons
  file (personal button file).

- Link to Buttons: New implicit button types that link to buttons based
   on their categories and labels:

    In Buffer Syntax                                       Implicit Button Type
    ========================================================================
    <elink: explicit button label to link to: optional ebut file>  link-to-ebut
    <glink: global button label to link to>                        link-to-gbut
    <ilink: implicit button label to link to: optional ibut file>  link-to-ibut

- Other New Implicit Button Types:
    debugger-source: Jump to the source of errors from the Python pytype package
    ipython-stack-frame: Jump to the source of ipython stack traces and exceptions

- Much Faster Implicit Buttons: Major speedup in implicit button identification
  and activation even with the new generalized Action implicit button type
  syntax, due to internal optimizations.

- Pathname Flashing: Pathname implicit buttons now flash when activated.

- Pathname References: Pathname implicit buttons may contain both link anchors
  and line and column numbers.  Format is:
    "<path>[#<link-anchor>]:<line-num>[:<col-num>]"

- Shell Script Link Anchors: Link anchors now work for shell script editing modes
  as well using comment lines as the anchors, e.g. "myscript.sh#Env Variables".

- Dir Variable Separators: Variables in paths no longer require a trailing directory
  separator.  Both of these are live Hyperbole paths:
  "${hyperb:dir}DEMO#Smart Mouse Keys"
  "${hyperb:dir}/DEMO#Smart Mouse Keys"

DOCUMENTATION

- DEMO: New sections on Button Files and Global Buttons.

- Action Types: link-to-gbut, link-to-ibut - Added.

- hpath:native-image-suffixes: documented this setting for controlling
  image types that Hyperbole displays within Emacs.

- Implicit Button Types: Split off type descriptions to this new
  subsection and added these types: ripgrep-msg, ipython-stack-frame,
  ilink (link to implicit button), glink (link to global button), and
  elink (link to explicit button).

- DEMO (Action Buttons): Added description and examples.

- Hyperbole Manual, DEMO (Implicit Buttons): Added description and
  example of implicit button labels.

- Glossary: Updated Implicit Button and Global Button entries with
  changes.

KOUTLINER

- When 'c' (clip to lines per cell) is omitted from a viewspec, clipping
  now changes to whatever the default number of lines per cell is
  (typically, unlimited).  The same goes for the 'l' spec (limit display
  to a certain level of cells).

MENUS

- Pulldown Menus:   Implicit-Button/Label: Added to add a label.
                    Implicit-Button/Rename - Added to rename the label
                    of an implicit button.

- Minibuffer Menus: hui-mini.el (hui:menus): Added Ibut/Label and
  Ibut/Rename.

ORG MODE

- Radio Targets and Links: Smart Keys now handle these.

- Links: Smart Keys handle both internal and external Org mode links.

PROGRAMMING

- ibut:at-type-p: Added to test if point is on a specific type of
  implicit button.

- hypb:region-with-text-property-value: Added and used in hysy-org.el.

- hsys-org-mode-function, hsys-org-mode-p: Added to determine when
  hsys-org actions are activated.

- ebut:key-src-set-buffer, hbut:key-src-set-buffer, hbut:key-list,
  hbut:ebut-key-list, hbut:ibut-key-list, hbut:label-list): Added
  to allow selection of labeled Hyperbole buttons in currrent buffer by
  name.

- gbut:get, hbut:map, ibut:label-map, ibut:key-src, ibut:key-to-label,
  ibut:label-to-key, hui:ebut-act, ibut:summarize, ibut:label-start,
  ibut:label-end, ibut:label-p, ibut:get, hui:ibut-label-create,
  hui:ibut-rename, hui:ibut-message, ibut:alist, ibut:list, ibut:map,
  ibut:next-occurrence, ibut:label-regexp, gbut:ibut-key-list, ebut:to,
  gbut:to, ibut:to, ibut:label-separator, hbut:label-regexp,
  ibut:rename, hbut:get: Added to support implicit button labels and
  links to buttons.
  hbut:label-p: Updated to handle implicit button labels.
  ibut:label-separator-regexp, hbut:outside-comment-p: Added.

- elink, elink:start, elink:end: Added for in-buffer links to explicit buttons.
  glink, glink:start, glink:end: Added for in-buffer links to global buttons.
  ilink, ilink:start, ilink:end: Added for in-buffer links to implicit buttons.

- hsys-org-set-ibut-label: Added and used in org-mode ibtype.
  org-mode, hsys-org-at-block-start-p: Added Action Key activation of
  Org blocks when on 1st line of def.

SMART (ACTION AND ASSIST) KEYS

- hpath:find-program: Changed to prioritize hpath:native-image-suffixes
  over hpath:internal-display-alist over hpath:external-display-alist-macos
  instead of the reverse.  This prevents external viewers from being
  used when internal viewers are also in effect.