Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
194 changes: 194 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,7 +1,201 @@
2026-09-29 Bob Weiner <rsw@gnu.org>

* hibtypes.el (hbut-identifier, hbut-identifier:help): Move smart
tag handling of Hyperbole button variables from 'hkey-alist'
where it was improperly shadowed by the hbut handling clause
to be the lowest priority implicit button type.
hui-mouse.el (hkey-alist): Remove code replaced above.

* test/hui-mouse-tests.el (hui-mouse-tests--hkey-alist): Fix some
failures and update to match latest `hkey-alist' expressions.
hui-mouse.el (hkey-alist): Change `smart-tags-find-p' assist-key
clause to run 'hbut:report' instead of 'smart-prog-tag' to match
the 'hbut:is-p' programming tag clause above it.
Also, in Hyperbole button recognition clause, add a call
(not (smart-prog-at-tag-p t)) to prevent that from firing when
on a programming id since those are handled further down

* test/hui-tests.el (hui-gibut-create-link-to-file): Fix to compare
:args with second numeric argument.

* test/kotl-mode-tests.el (kotl-mode-indent-cell-changes-level): Fix
to ensure test is run in demote/promote mode.

* test/hbut-tests.el (hbut-tests--ibut-operate--add-name,
hbut-tests--ibut-operate--add-new-name,
hbut-tests--ibut-operate--remove-name,
hbut-tests--ibut-operate--fail-new-name-ignore-region,
hbut-tests--ibut-operate--fail-rename-from-name,
hbut-tests--ibut-operate--fail-rename-from-name-ignore-region,
hbut-tests--ibut-operate--name-ignore-region,
hbut-tests--ibut-operate--none,
hbut-tests--ibut-operate--rename-from-name:
test/hibtypes-tests.el (ibtypes::pathname-dot-slash-in-same-folder-test):
Match to updated action type, 'hpath:find-koutline-reference', not
the previous 'actypes::link-to-file'.
(hbut-tests:should-match-tmp-folder): Remove match
of path to end of string as string may contain arguments after the
pathname.

* hpath.el (hpath:find): Fix that 'pathname' was not set after
resolving variables in a path with a modifier prefix. This
caused the test, 'hbut-pathname-with-dash-loads-file-test'
to fail.

* test/demo-tests.el (fast-demo-display-kotl-starting-from-cell): Fix
cell ref number.

* kotl/EXAMPLE.kotl: Add summary tables of {TAB} and {S-TAB} behavior.

* kotl/kotl-mode.el (kotl-mode:untab-command):
man/hyperbole.texi (Org-style Visibility Cycling): Fix to better
match Org mode and have {S-TAB} cycle globally instead of locally
without a prefix argument or with a single C-u. Also match Org
behavior by making numeric prefix arguments show a single line
for each cell down to the prefix argument level. Zero means show
one line of all levels.

2026-09-28 Bob Weiner <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:action-key):
man/hyperbole.texi (Smart Key - The Koutliner): Add doc for wrapping
text when inside an Org-style table.

* hui-mouse.el (smart-outline, smart-outline-assist): Fix eolp check
to ensure not at an invisible char (prior code checked that was
invisible).

* kotl/kotl-mode.el (kotl-mode:action-key): Replace call to
'smart-outline-subtree-hidden-p' with 'kcell-view:collapsed-p'
which properly determines the collapsed state of a root cell.

* man/hyperbole.texi (Promoting and Demoting): Expand this Koutliner
section with latest key bindings and Org table support.
(Inserting Literal Tabs): Add this Koutliner section.

* hui-mouse.el (hkey-alist): In 'smart-prog-at-tag-p' clause, change
to flash tag only if the second call to 'smart-tags-find-p' is true.
This prevents flashing words in text modes that aren't actually
programming symbols.
hmouse-tag.el (smart-flag-tag-at-point): Add to do the flashing.

* kotl/kotl-orgtbl.el (orgtbl-tab): Fix to allow prefix arg of 1 to pass
through rather than converting to nil.
(org-table-previous-field): Override this function
on {S-TAB} from 'orgtbl-mode' to make it compatible with Koutlines.

* hsys-org.el (hsys-org-link-at-p): Wrap 'org-element' and 'org-in-regexp'
calls in 'ignore-errors' macro as it is possible `syntax-ppss-flush-cache'
can trigger an error, e.g. using orgtbl minor mode in .texi files.

2026-09-27 Bob Weiner <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:setup-keymap): Remove errant binding of {M-TAB}
since this is typically used to switch applications by many users.
(kotl-mode:tab-command): Since {C-TAB} is not a valid
key binding on many terminals, move 'kotl-mode:toggle-tab-flag' back to
{M-1 TAB}, which is where it used to be.

* hui.el (hui:link-possible-types):
hbut.el (ibut:insert-text): For a klink, if source and referent are in
the same buffer, use the simplified link format: <@ relative-id=idstamp>.

2026-09-26 Bob Weiner <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:action-key):
man/hyperbole.texi (Smart Key - The Koutliner): Fix doc to match code.

* hargs.el (hargs:at-p): Move (eolp) test to the end of the 'cond'
expression so it doesn't interfere with reading any of the specified
types.

* kotl/kotl-mode.el (kotl-mode:emulate-tab): Add this customization.
(kotl-mode:before-tab-emulation-hook,
kotl-mode:tab-pre-hook, kotl-mode:tab-post-hook): Add.
(kotl-mode:toggle-tab-flag, kotl-mode:tab-command,
kotl-mode:untab-command): Non-backward compatible
change: toggle {TAB}/{M-TAB} between promote/demote and Org-style cycling.
(kotl-mode:demote-siblings, kotl-mode:promote-siblings):
Add to move following siblings.
(kotl-mode:current-level, kotl-mode:previous-cell-level,
kotl-mode:at-cell-empty-first-line-p,
kotl-mode:cycle-globally, kotl-mode:cycle-locally,
kotl-mode:all-cells-all-lines-visible-p,
kotl-mode:all-cells-one-line-visible-p,
kotl-mode:top-cells-one-line-visible-p,
kotl-mode:root-first-line-only-shown-p,
kotl-mode:show-root-first-line,
kotl-mode:show-tree-children-first-lines,
kotl-mode:tree-collapsed-p): Add.
man/hyperbole.texi (Promoting and Demoting):
kotl/EXAMPLE.kotl (Tree Demotion and Promotion): Update this section
to reflect key changes. Remove {M-TAB} as a binding for promoting trees
outside of Org tables.
(kotl-mode:mark-whole-buffer):Allow selection of entire
buffer including first relative id, so can copy it.

* hypb.el (hypb:count-visible-lines): Add.

2026-09-24 Bob Weiner <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:demote-tree, kotl-mode:promote-tree):
If given a null prefix arg, set it to 1.

* kotl/kview.el (kcell-view:sibling-p): Return sibling idstamp rather
than t, so can jump back to it.
(kcell-view:child-p): Return child idstamp rather
than t, so can jump back to it.

2026-09-23 Bob Weiner <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:cycle-locally): Add.

* kotl/kvspec.el (kvspec:default): Add this so view spec can be
reset to its default value.
kotl/kfile.el (kfile:read-v4-or-v3, kvspec:update): ): Set 'kvspec:default'.
(kvspec:reset): Add to reset view spec to default.

* man/hyperbole.texi: Remove trailing whitespace from lines.

2026-09-21 Bob Weiner <rsw@gnu.org>

* kotl/klink.el (klink:replace-label): Improve read-only message
and include source buffer name.

2026-09-20 Bob Weiner <rsw@gnu.org>

* hpath.el (hpath:find-koutline-reference): Add and use in
pathname ibtype so that koutline reference links have
their relative labels updated on activation just like
klinks do.

* kotl/klink.el (klink:update-label): Improve doc string.

* hibtypes.el (pathname): Update first section to handle kotl
path's with an =idstamp referent where the relative label
needs updating upon activation.

* kotl/kfile.el (kfile:read): Rewrite 'cond using pcase'

* kotl/kvspec.el (kvspec:initialize): Remove this which just made
2 vars, kvspec:current and kvspec:string, buffer local. Define
them with 'defvar-local' instead.

2026-09-19 Bob Weiner <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:tab-flag): Update values to allow for
Org-like cycling when {tab} and {S-tab} are pressed in a context
other than the one specified by 'org-cycle-emulate-tab'.

2026-09-18 Bob Weiner <rsw@gnu.org>

* kotl/kotl-mode.el (kotl-mode:show-to-level,
kotl-mode:show-lines-per-cell): Add.

==============================================================================
V9.2.0 changes ^^^^:
==============================================================================

2026-09-16 Bob Weiner <rsw@gnu.org>

* hsys-org.el (hsys-org-meta-return): Fix bug reported by James S where
Expand Down
2 changes: 1 addition & 1 deletion HY-ABOUT
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
Designed and Written by Bob Weiner
Maintained by Mats Lidell and Bob Weiner
https://www.gnu.org/software/hyperbole/
Version 9.1.0
Version 9.2.0

Say thanks or send a testimonial if you like Hyperbole:
Email: <rsw@gnu.org>
Expand Down
2 changes: 1 addition & 1 deletion HY-ANNOUNCE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
From: Bob Weiner <rsw@gnu.org>
To: gnu-emacs-sources@gnu.org, emacs-tangents@gnu.org, hyperbole-users@gnu.org, hyperbole-announce@gnu.org
Subject: GNU Hyperbole Major Release 9 (V9.1.0)
Subject: GNU Hyperbole Major Release 9 (V9.2.0)
--text follows this line--
========================================================================
* Overview
Expand Down
4 changes: 4 additions & 0 deletions HY-NEWS
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
* What's New in GNU Hyperbole
by Bob Weiner

===========================================================================
* V9.2.0
===========================================================================

===========================================================================
* V9.1.0
===========================================================================
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Author: Bob Weiner
#
# Orig-Date: 15-Jun-94 at 03:42:38
# Last-Mod: 13-Sep-26 at 22:38:29 by Mats Lidell
# Last-Mod: 27-Sep-26 at 02:26:14 by Bob Weiner
#
# Copyright (C) 1994-2026 Free Software Foundation, Inc.
# See the file HY-COPY for license information.
Expand Down Expand Up @@ -117,7 +117,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 = 9.1.0
HYPB_VERSION = 9.2.0

# Emacs executable used to byte-compile .el files into .elc's.
# To override which executable is used from the commandline, do something like this:
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# GNU Hyperbole 9.1.0 - The Everyday Hypertextual Information Manager
# GNU Hyperbole 9.2.0 - The Everyday Hypertextual Information Manager

[ If you are looking for the documentation for the stable release look
[here](stable/hyperbole.html).]
Expand Down
6 changes: 3 additions & 3 deletions README.md.html
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<h1
id="gnu-hyperbole-910---the-everyday-hypertextual-information-manager">GNU
Hyperbole 9.1.0 - The Everyday Hypertextual Information Manager</h1>
id="gnu-hyperbole-920---the-everyday-hypertextual-information-manager">GNU
Hyperbole 9.2.0 - The Everyday Hypertextual Information Manager</h1>
<p>[ If you are looking for the documentation for the stable release
look <a href="stable/hyperbole.html">here</a>.]</p>
<p>[We work on Hyperbole as a gift to the Emacs community and request
Expand All @@ -10,7 +10,7 @@
<ul>
<li><a
href="#gnu-hyperbole-902pre---the-everyday-hypertextual-information-manager">GNU
Hyperbole 9.1.0 - The Everyday Hypertextual Information Manager</a>
Hyperbole 9.2.0 - The Everyday Hypertextual Information Manager</a>
<ul>
<li><a href="#reference-manual">Reference Manual</a></li>
<li><a href="#videos">Videos</a></li>
Expand Down
4 changes: 2 additions & 2 deletions README.toc.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# GNU Hyperbole 9.1.0 - The Everyday Hypertextual Information Manager
# GNU Hyperbole 9.2.0 - The Everyday Hypertextual Information Manager

[ If you are looking for the documentation for the stable release look
[here](stable/hyperbole.html).]
Expand All @@ -9,7 +9,7 @@



- [GNU Hyperbole 9.1.0 - The Everyday Hypertextual Information Manager](#gnu-hyperbole-902pre---the-everyday-hypertextual-information-manager)
- [GNU Hyperbole 9.2.0 - The Everyday Hypertextual Information Manager](#gnu-hyperbole-902pre---the-everyday-hypertextual-information-manager)
- [Reference Manual](#reference-manual)
- [Videos](#videos)
- [Articles](#articles)
Expand Down
6 changes: 3 additions & 3 deletions hargs.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 31-Oct-91 at 23:17:35
;; Last-Mod: 28-Jun-26 at 13:57:12 by Bob Weiner
;; Last-Mod: 26-Sep-26 at 17:44:06 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -672,7 +672,6 @@ Handles all of the interactive argument types that `hargs:iform-read' does."
((eq hargs:reading-type 'kvspec)
(read-string "Koutline view spec: "
(when (boundp 'kvspec:current) kvspec:current)))
((eolp) nil)
((and (eq hargs:reading-type 'hmenu)
(eq (selected-window) (minibuffer-window)))
(char-to-string
Expand Down Expand Up @@ -767,7 +766,8 @@ Handles all of the interactive argument types that `hargs:iform-read' does."
((eq hargs:reading-type 'integer)
(save-excursion (skip-chars-backward "-0-9")
(when (looking-at "-?[0-9]+")
(read (current-buffer)))))))
(read (current-buffer)))))
((eolp) nil)))

(defun hargs:completion (&optional no-insert)
"If in the completions buffer, return completion at point.
Expand Down
8 changes: 5 additions & 3 deletions hbut.el
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
;; Author: Bob Weiner
;;
;; Orig-Date: 18-Sep-91 at 02:57:09
;; Last-Mod: 12-Sep-26 at 13:33:57 by Mats Lidell
;; Last-Mod: 27-Sep-26 at 01:27:28 by Bob Weiner
;;
;; SPDX-License-Identifier: GPL-3.0-or-later
;;
Expand Down Expand Up @@ -2761,8 +2761,10 @@ Summary of operations based on inputs (name arg from \\='hbut:current attrs):
('link-to-kcell
(if arg2
(progn (insert "<")
(when arg1 (insert arg1))
(insert ", " arg2 ">"))
(if arg1
(insert arg1 ", ")
(insert "@ "))
(insert arg2 ">"))
(insert "<@ ")
(when arg1 (insert arg1))
(insert ">")))
Expand Down
Loading
Loading