[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/hyperbole bc0c4f74af 2/3: Expand window grids to file g
From: |
ELPA Syncer |
Subject: |
[elpa] externals/hyperbole bc0c4f74af 2/3: Expand window grids to file glob patterns, file and buffer lists |
Date: |
Sun, 23 Jan 2022 03:57:46 -0500 (EST) |
branch: externals/hyperbole
commit bc0c4f74af00f423241999fdb07385409750c7f8
Author: Robert Weiner <rsw@gnu.org>
Commit: Robert Weiner <rsw@gnu.org>
Expand window grids to file glob patterns, file and buffer lists
---
ChangeLog | 11 ++++++++
HY-NEWS | 5 +++-
README.md | 4 +--
hbut.el | 10 +++----
hycontrol.el | 59 +++++++++++++++++++++++++++++++++--------
man/hyperbole.html | 75 ++++++++++++++++++++++++++++++++++++++++-------------
man/hyperbole.info | Bin 573588 -> 574994 bytes
man/hyperbole.pdf | Bin 1326832 -> 1327957 bytes
man/hyperbole.texi | 62 +++++++++++++++++++++++++++++++------------
9 files changed, 173 insertions(+), 53 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4556312712..bf7b847d10 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2022-01-22 Bob Weiner <rsw@gnu.org>
+
+* hycontrol.el (hycontrol-windows-grid-by-file-pattern): Add this command that
creates
+ a windows grid from a glob file pattern. Bound to {C--1 C-c @}.
+ (hycontrol-windows-grid-by-buffer-list): Add this function
which takes
+ a list of buffers and displays them in a windows grid.
+ (hycontrol-windows-grid-by-file-list): Add this function which
takes
+ a list of files and displays them in a windows grid.
+ man/hyperbole.texi (Default Hyperbole Bindings, HyControl):
+ HY-NEWS (HYCONTROL): Document new above command.
+
* kotl/kotl-mode.el (kotl-mode:set-or-remove-cell-attribute): Change to support
0 root cell attribute set or remove via prefix arg.
kotl/EXAMPLE.kotl: Update 'Cell Attributes' description with the above
change.
diff --git a/HY-NEWS b/HY-NEWS
index 3ad223f923..8b28c826a5 100644
--- a/HY-NEWS
+++ b/HY-NEWS
@@ -205,7 +205,6 @@
- Koutlines have a hidden top-level root cell 0 that allows referring
to the whole outline as a tree. Now attributes of this cell can be
- set or retrieved like any other cell.
set, retrieved or removed like any other cell.
{C-c h} prompts for a kcell id and displays its attributes.
@@ -598,6 +597,10 @@
there are two or more frames regardless of how many windows in each. See
"DEMO#Swapping Buffers".
+ - Windows Grid by File Pattern: {C--1 C-c @} prompts for a glob-type file
pattern,
+ finds all the matching files and then displays them in an auto-sized
windows grid
+ based on the number of files.
+
HYROLO
- Hyrolo Add: Fixed new entry addition to add in sorted order and make
logic
diff --git a/README.md b/README.md
index e38ac64f3e..d1bef98b3a 100644
--- a/README.md
+++ b/README.md
@@ -196,8 +196,8 @@ can be safely ignored and have no impact on Hyperbole's
performance.
Once Hyperbole has been installed for use at your site and loaded into your
Emacs session, it is ready for use. You will see a Hyperbole menu on your
-menubar and {C-h h} will display a Hyperbole menu in the minibuffer for
-quick keyboard-based selection.
+menubar and 'Hypb' in the minor-mode section of your modeline. {C-h h} will
+display a Hyperbole menu in the minibuffer for quick keyboard-based selection.
You can invoke Hyperbole commands in one of three ways:
diff --git a/hbut.el b/hbut.el
index ac2692f5f4..1494e8f113 100644
--- a/hbut.el
+++ b/hbut.el
@@ -787,11 +787,11 @@ Ignore nil valued attributes. Return t unless no
attributes are printed."
(princ (format (concat " %s:%" len "s%S\n") attr " "
(let (str)
(cond ((string-match "time" attr)
- (htz:date-unix val
- (and (>= (aref val 0) ?0)
- (<= (aref val 0) ?9)
- "GMT") htz:local))
- ((and (setq str (if (stringp val) val
+ (htz:date-unix val (and (>= (aref val 0) ?0)
+ (<= (aref val 0) ?9)
+ "GMT") htz:local))
+ ((and (setq str (if (stringp val)
+ val
(prin1-to-string val)))
(string-match "\\`actypes::" str))
(make-symbol (substring str (match-end 0))))
diff --git a/hycontrol.el b/hycontrol.el
index cbc73ace58..656e02390f 100644
--- a/hycontrol.el
+++ b/hycontrol.el
@@ -1415,6 +1415,8 @@ Menu or IBuffer mode."
;; Prepend items to buffer list.
(apply #'set:create (nconc items (buffer-list (selected-frame)))))))
+;;; Split selected frame into a grid of windows given by row and
+;;; column count, displaying different buffers in each window.
;;;###autoload
(defun hycontrol-windows-grid (arg)
"Display a grid of windows in the selected frame, sized according to prefix
ARG.
@@ -1424,7 +1426,11 @@ the number of grid columns.
If ARG is 0, prompt for a major mode whose buffers should be
displayed first in the grid windows, then prompt for the grid size.
-Otherwise, prompt for the grid size if ARG is an invalid size.
+If ARG is < 0, prompt for a glob-type file pattern and display
+files that match the pattern in an auto-sized windows grid.
+
+Otherwise, prompt for the grid size if ARG is an invalid size
+(positive and more than two digits).
With a current buffer in Dired, Buffer Menu or IBuffer mode that
contains marked items, the buffers associated with those items
@@ -1439,18 +1445,49 @@ Then, if there are not enough buffers for all windows,
the buffers
that failed to match to any predicate are used. In all cases, buffers
whose names start with a space are ignored.
-When done, this resets the persistent prefix argument to 1 to
-prevent following commands from using the often large grid size
+When done, this resets the persistent HyControl prefix argument to 1
+to prevent following commands from using the often large grid size
argument."
(interactive "p")
- (setq arg (abs (prefix-numeric-value (or arg current-prefix-arg))))
- (if (/= arg 0)
- (hycontrol-make-windows-grid arg)
- (setq current-prefix-arg 0)
- (call-interactively #'hycontrol-windows-grid-by-major-mode)))
+ (setq arg (prefix-numeric-value (or arg current-prefix-arg)))
+ (cond ((> arg 0)
+ (hycontrol-make-windows-grid arg))
+ ((< arg 0)
+ (setq current-prefix-arg nil)
+ (call-interactively #'hycontrol-windows-grid-by-file-pattern))
+ (t
+ (setq current-prefix-arg 0)
+ (call-interactively #'hycontrol-windows-grid-by-major-mode))))
+
+(defun hycontrol-windows-grid-by-buffer-list (buffers)
+ "Display an automatically sized window grid showing list of BUFFERS."
+ (let* ((num-buffers (length buffers))
+ (grid-digit (ceiling (sqrt num-buffers)))
+ (grid-size (+ (* grid-digit 10) grid-digit)))
+ (if (null buffers)
+ (error "(hycontrol-windows-grid-by-buffer-list): No matching buffers")
+ (mapc #'switch-to-buffer (reverse buffers))
+ (hycontrol-make-windows-grid grid-size))))
+
+(defun hycontrol-windows-grid-by-file-list (files)
+ "Display an automatically sized window grid showing list of FILES."
+ (let* ((num-files (length files))
+ (grid-digit (ceiling (sqrt num-files)))
+ (grid-size (+ (* grid-digit 10) grid-digit)))
+ (if (null files)
+ (error "(hycontrol-windows-grid-by-file-list): No matching files")
+ (mapc #'find-file (reverse files))
+ (hycontrol-make-windows-grid grid-size))))
+
+;;;###autoload
+(defun hycontrol-windows-grid-by-file-pattern (pattern &optional full)
+ "Display an automatically sized window grid showing files found from glob
PATTERN.
+Use absolute file paths if optional FULL is non-nil."
+ (interactive "FPattern of files to display in windows grid: \nP")
+ (let* ((find-file-wildcards t)
+ (files (file-expand-wildcards pattern full)))
+ (hycontrol-windows-grid-by-file-list files)))
-;;; Split selected frame into a grid of windows given by row and
-;;; column count, displaying different buffers in each window.
;;;###autoload
(defun hycontrol-windows-grid-by-major-mode (arg mode)
"Display a grid of windows in the selected frame, sized according to prefix
ARG, with buffers of major MODE.
@@ -1568,7 +1605,7 @@ See documentation of `hycontrol-windows-grid' for further
details."
(error (set-window-configuration wconfig)
(if (and hycontrol-help-flag (or hycontrol-frames-mode
hycontrol-windows-mode))
(pop-to-buffer "*Messages*"))
- (error "(HyDebug): %s" err)))))
+ (error "(HyDebug): Grid Size: %d; %s" arg err)))))
(defun hycontrol-delete-other-windows ()
diff --git a/man/hyperbole.html b/man/hyperbole.html
index a590376b7f..b29e2a3324 100644
--- a/man/hyperbole.html
+++ b/man/hyperbole.html
@@ -370,7 +370,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 8.0.0pre
-Printed January 17, 2022.
+Printed January 22, 2022.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -4682,6 +4682,9 @@ to display.
<p>If the prefix argument is 0, prompt for a major mode whose buffers
should be displayed first in the grid windows, then prompt for the grid size.
</p>
+<p>If the prefix argument is < 0, prompt for a glob-type file pattern and
display
+files that match the pattern in an auto-sized windows grid.
+</p>
<p>Otherwise, prompt for the grid size if the prefix argument is an invalid
size.
</p>
@@ -4702,11 +4705,19 @@ names start with a space are ignored.
<p>When done, this resets the persistent prefix argument to 1 to prevent
following commands from using the often large grid size argument.
</p>
+<span id="index-hycontrol_002dwindow_002dgrid_002drepeatedly"></span>
<p>If you ever need to experiment with different sized window grids, use
<kbd>{M-x hycontrol-window-grid-repeatedly <span
class="key">RET</span>}</kbd>. It will
repeatedly prompt you for a grid size and then display it. When you
are done, simply press <kbd>{<span class="key">RET</span>}</kbd> to exit.
</p>
+<span
id="index-hycontrol_002dwindows_002dgrid_002dby_002dbuffer_002dlist"></span>
+<span
id="index-hycontrol_002dwindows_002dgrid_002dby_002dfile_002dpattern"></span>
+<span
id="index-hycontrol_002dwindows_002dgrid_002dby_002dfile_002dlist"></span>
+<p>Programmatically, there are a number of ways to generate and display a
windows grid.
+<code>hycontrol-windows-grid-by-file-pattern</code> creates a windows grid
from a glob file
+pattern. It is bound to <kbd>{C--1 C-c @}</kbd>.
<code>hycontrol-windows-grid-by-buffer-list</code> creates a windows grid from
a list of buffers or buffer names.
<code>hycontrol-windows-grid-by-file-list</code> creates a windows grid from a
list of file names.
+</p>
<span id="index-frame-resize"></span>
<span id="index-hycontrol_002dframe_002dwidths"></span>
<span id="index-screen_002c-a"></span>
@@ -6275,9 +6286,9 @@ Next: <a href="#Koutliner-History" accesskey="n"
rel="next">Koutliner History</a
<span id="index-cell_002c-attribute"></span>
<span id="index-attribute"></span>
-<p><em>Attributes</em> are named variables whose values are specific to an
-outline cell. Thus, each cell has its own attribute list. Every cell
-has three standard attributes:
+<p><em>Attributes</em> are named properties whose values are specific to an
+outline cell. Thus, each cell, including the invisible 0 root cell,
+has its own attribute list. Every cell has three standard attributes:
</p>
<dl compact="compact">
<dd><span id="index-idstamp-attribute"></span>
@@ -6307,11 +6318,29 @@ format, such as ‘<samp>Jan 28 18:27:59 CST
2021</samp>’.
<span id="index-attribute_002c-adding"></span>
<span id="index-attribute_002c-modifying"></span>
<span id="index-attribute_002c-removing"></span>
-<p><kbd>{C-c C-i}</kbd> is the command to add an attribute to or to modify an
-existing attribute of the cell at point. Think of it as inserting an
-attribute value. To remove an attribute from a cell, set its value to
-‘<samp>nil</samp>’.
+<span id="index-attribute_002c-setting"></span>
+<p><kbd>{C-c C-i}</kbd> adds, modifies or removes an attribute from a cell.
+The prefix argument given to this command determines what it does.
+</p>
+<dl compact="compact">
+<dt><kbd>{C-c C-i}</kbd></dt>
+<dd><p>sets an attribute of the cell at point; setting an attribute’s
value
+to ‘<samp>nil</samp>’ is the same as removing it.
+</p>
+</dd>
+<dt><kbd>{C-u C-c C-i}</kbd></dt>
+<dd><p>removes an attribute of the cell at point
+</p>
+</dd>
+<dt><kbd>{C-0 C-c C-i}</kbd></dt>
+<dd><p>sets an attribute of the invisible 0 root cell
</p>
+</dd>
+<dt><kbd>{C--1 C-c C-i}</kbd></dt>
+<dd><p>removes an attribute of the invisible 0 root cell
+</p></dd>
+</dl>
+
<span id="index-attribute_002c-no_002dfill-2"></span>
<span id="index-cell_002c-no_002dfill-attribute-2"></span>
@@ -6325,14 +6354,12 @@ See <a href="#Filling">Filling</a>.
</p>
<span id="index-koutliner_002c-Assist-Key_002c-listing-attributes"></span>
<span id="index-Assist-Key_002c-listing-attributes"></span>
-<span id="index-listing-attributes"></span>
+<span id="index-attributes_002c-displaying"></span>
+<span id="index-displaying-attributes"></span>
<span id="index-outline_002c-attribute-list"></span>
<span id="index-koutliner_002c-C_002dc-h"></span>
-<span id="index-koutliner_002c-C_002du-C_002dc-h"></span>
-<p>The attribute lists for the cells in the tree rooted at point may be
-inspected by pressing the Assist Key within the contents of a cell.
-<kbd>{C-c h}</kbd> prompts for a cell label and displays the cell’s
-attributes. <kbd>{C-u C-c h}</kbd> prompts for a cell label and shows
+<p><kbd>{C-c h}</kbd> prompts for a cell label and displays the cell’s
+attributes. <kbd>{C-u C-c h}</kbd> prompts for a cell label and displays
the attributes for it and its subtree; use 0 as the kcell id to see
attributes for all visible cells in the outline.
</p>
@@ -9231,8 +9258,15 @@ item, <kbd>{C-h h f w}</kbd>, will do the same thing.
<dd><p>Display a grid of windows in the selected frame, sized according to the
prefix argument. The left digit of the argument is the number of grid rows
and the right digit is the number of grid columns. The argument is
-prompted for if not given. This binding is made only if the key is not
-bound prior to loading Hyperbole.
+prompted for if not given.
+</p>
+<p>If the argument is 0, prompt for a major mode whose buffers should be
+displayed first in the grid windows, then prompt for the grid size.
+</p>
+<p>If the argument is < 0, prompt for a glob-type file pattern and display
+files that match the pattern in an auto-sized windows grid.
+</p>
+<p>This binding is made only if the key is not bound prior to loading
Hyperbole.
</p>
<p>For further details, see the <kbd>{@}</kbd> key binding description
in <a href="#HyControl">HyControl</a>.
@@ -12678,7 +12712,6 @@ Next: <a href="#Function" accesskey="n"
rel="next">Function</a>, Previous: <a hr
<tr><td></td><td valign="top"><a
href="#index-koutliner_002c-C_002dj"><code>koutliner,
C-j</code></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-koutliner_002c-C_002dM_002dj"><code>koutliner,
C-M-j</code></a>:</td><td> </td><td valign="top"><a
href="#Filling">Filling</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-koutliner_002c-C_002dM_002dq"><code>koutliner,
C-M-q</code></a>:</td><td> </td><td valign="top"><a
href="#Filling">Filling</a></td></tr>
-<tr><td></td><td valign="top"><a
href="#index-koutliner_002c-C_002du-C_002dc-h"><code>koutliner, C-u C-c
h</code></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-koutliner_002c-C_002du-C_002dc-k"><code>koutliner, C-u C-c
k</code></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-koutliner_002c-C_002du-C_002dc-M_002dl"><code>koutliner, C-u C-c
M-l</code></a>:</td><td> </td><td valign="top"><a
href="#Autonumbering">Autonumbering</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-koutliner_002c-C_002du-C_002dc-s"><code>koutliner, C-u C-c
s</code></a>:</td><td> </td><td valign="top"><a
href="#Splitting-and-Appending">Splitting and Appending</a></td></tr>
@@ -13209,6 +13242,10 @@ Next: <a href="#Concept-Index" accesskey="n"
rel="next">Concept Index</a>, Previ
<tr><td></td><td valign="top"><a
href="#index-hycontrol_002dkeep_002dwindow_002dflag-1">hycontrol-keep-window-flag</a>:</td><td> </td><td
valign="top"><a href="#Smart-Mouse-Drags-outside-a-Window">Smart Mouse Drags
outside a Window</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hycontrol_002dscreen_002doffset_002dalist">hycontrol-screen-offset-alist</a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hycontrol_002dset_002dscreen_002doffsets"><code>hycontrol-set-screen-offsets</code></a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hycontrol_002dwindow_002dgrid_002drepeatedly"><code>hycontrol-window-grid-repeatedly</code></a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hycontrol_002dwindows_002dgrid_002dby_002dbuffer_002dlist"><code>hycontrol-windows-grid-by-buffer-list</code></a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hycontrol_002dwindows_002dgrid_002dby_002dfile_002dlist"><code>hycontrol-windows-grid-by-file-list</code></a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-hycontrol_002dwindows_002dgrid_002dby_002dfile_002dpattern"><code>hycontrol-windows-grid-by-file-pattern</code></a>:</td><td> </td><td
valign="top"><a href="#HyControl">HyControl</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hypb_003argrep_002dcommand">hypb:rgrep-command</a>:</td><td> </td><td
valign="top"><a href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hyperb_003adir">hyperb:dir</a>:</td><td> </td><td
valign="top"><a href="#Documentation">Documentation</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-hyperbole"><code>hyperbole</code></a>:</td><td> </td><td
valign="top"><a href="#Invocation">Invocation</a></td></tr>
@@ -13655,6 +13692,8 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a
href="#index-attribute_002c-no_002dfill-1">attribute,
no-fill</a>:</td><td> </td><td valign="top"><a
href="#Splitting-and-Appending">Splitting and Appending</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-attribute_002c-no_002dfill-2">attribute,
no-fill</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-attribute_002c-removing">attribute,
removing</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-attribute_002c-setting">attribute,
setting</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-attributes_002c-displaying">attributes,
displaying</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-Augment">Augment</a>:</td><td> </td><td valign="top"><a
href="#Koutliner-History">Koutliner History</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-Augment-1">Augment</a>:</td><td> </td><td valign="top"><a
href="#Glossary">Glossary</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-Augment-outline">Augment
outline</a>:</td><td> </td><td valign="top"><a
href="#Inserting-and-Importing">Inserting and Importing</a></td></tr>
@@ -13869,6 +13908,7 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-display-outside-Emacs">display
outside Emacs</a>:</td><td> </td><td valign="top"><a
href="#Referent-Display">Referent Display</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-display-where">display
where</a>:</td><td> </td><td valign="top"><a
href="#Referent-Display">Referent Display</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-DisplayHere-mode">DisplayHere
mode</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-_002d-Dired-Mode">Smart Key - Dired Mode</a></td></tr>
+<tr><td></td><td valign="top"><a
href="#index-displaying-attributes">displaying
attributes</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-distributed-collaboration">distributed
collaboration</a>:</td><td> </td><td valign="top"><a
href="#Koutliner-History">Koutliner History</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-document-identifier">document
identifier</a>:</td><td> </td><td valign="top"><a
href="#Implicit-Button-Types">Implicit Button Types</a></td></tr>
<tr><td></td><td valign="top"><a href="#index-double-click">double
click</a>:</td><td> </td><td valign="top"><a
href="#Smart-Key-Argument-Selection">Smart Key Argument Selection</a></td></tr>
@@ -14247,7 +14287,6 @@ Previous: <a href="#Function" accesskey="p"
rel="prev">Function</a>, Up: <a href
<tr><td></td><td valign="top"><a href="#index-Lisp-variables-1">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>
-<tr><td></td><td valign="top"><a href="#index-listing-attributes">listing
attributes</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-locate-files">locate
files</a>:</td><td> </td><td valign="top"><a
href="#Menus">Menus</a></td></tr>
<tr><td></td><td valign="top"><a
href="#index-logging-Smart-Key-behavior">logging Smart Key
behavior</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-logical-rolo-searches">logical
rolo searches</a>:</td><td> </td><td valign="top"><a
href="#HyRolo-Searching">HyRolo Searching</a></td></tr>
diff --git a/man/hyperbole.info b/man/hyperbole.info
index 4aa2b930b0..94594ce68d 100644
Binary files a/man/hyperbole.info and b/man/hyperbole.info differ
diff --git a/man/hyperbole.pdf b/man/hyperbole.pdf
index 75071b038e..d8cc2f46d3 100644
Binary files a/man/hyperbole.pdf and b/man/hyperbole.pdf differ
diff --git a/man/hyperbole.texi b/man/hyperbole.texi
index 5192ef4e6a..140b73b602 100644
--- a/man/hyperbole.texi
+++ b/man/hyperbole.texi
@@ -155,7 +155,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</P>
<PRE>
Edition 8.0.0pre
-Printed January 17, 2022.
+Printed January 22, 2022.
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -197,7 +197,7 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
@example
Edition 8.0.0pre
-January 17, 2022
+January 22, 2022
Published by the Free Software Foundation, Inc.
Author: Bob Weiner
@@ -3922,6 +3922,9 @@ to display.
If the prefix argument is 0, prompt for a major mode whose buffers
should be displayed first in the grid windows, then prompt for the grid size.
+If the prefix argument is < 0, prompt for a glob-type file pattern and display
+files that match the pattern in an auto-sized windows grid.
+
Otherwise, prompt for the grid size if the prefix argument is an invalid
size.
@@ -3942,11 +3945,19 @@ names start with a space are ignored.
When done, this resets the persistent prefix argument to 1 to prevent
following commands from using the often large grid size argument.
+@findex hycontrol-window-grid-repeatedly
If you ever need to experiment with different sized window grids, use
@bkbd{M-x hycontrol-window-grid-repeatedly @key{RET}}. It will
repeatedly prompt you for a grid size and then display it. When you
are done, simply press @bkbd{@key{RET}} to exit.
+@findex hycontrol-windows-grid-by-buffer-list
+@findex hycontrol-windows-grid-by-file-pattern
+@findex hycontrol-windows-grid-by-file-list
+Programmatically, there are a number of ways to generate and display a windows
grid.
+@code{hycontrol-windows-grid-by-file-pattern} creates a windows grid from a
glob file
+pattern. It is bound to @bkbd{C--1 C-c @@}.
@code{hycontrol-windows-grid-by-buffer-list} creates a windows grid from a list
of buffers or buffer names. @code{hycontrol-windows-grid-by-file-list} creates
a windows grid from a list of file names.
+
@cindex frame resize
@vindex hycontrol-frame-widths
@kindex screen, a
@@ -5271,9 +5282,9 @@ to one of these if you find any syntax that improperly
registers as a klink.
@cindex cell, attribute
@cindex attribute
-@dfn{Attributes} are named variables whose values are specific to an
-outline cell. Thus, each cell has its own attribute list. Every cell
-has three standard attributes:
+@dfn{Attributes} are named properties whose values are specific to an
+outline cell. Thus, each cell, including the invisible 0 root cell,
+has its own attribute list. Every cell has three standard attributes:
@table @emph
@cindex idstamp attribute
@@ -5299,10 +5310,24 @@ format, such as @samp{Jan 28 18:27:59 CST 2021}.
@cindex attribute, adding
@cindex attribute, modifying
@cindex attribute, removing
-@bkbd{C-c C-i} is the command to add an attribute to or to modify an
-existing attribute of the cell at point. Think of it as inserting an
-attribute value. To remove an attribute from a cell, set its value to
-@samp{nil}.
+@cindex attribute, setting
+@bkbd{C-c C-i} adds, modifies or removes an attribute from a cell.
+The prefix argument given to this command determines what it does.
+
+@table @asis
+@item @bkbd{C-c C-i}
+sets an attribute of the cell at point; setting an attribute's value
+to @samp{nil} is the same as removing it.
+
+@item @bkbd{C-u C-c C-i}
+removes an attribute of the cell at point
+
+@item @bkbd{C-0 C-c C-i}
+sets an attribute of the invisible 0 root cell
+
+@item @bkbd{C--1 C-c C-i}
+removes an attribute of the invisible 0 root cell
+@end table
@cindex attribute, no-fill
@@ -5317,14 +5342,12 @@ you from invoking explicit commands that refill the
cell.
@kindex koutliner, Assist Key, listing attributes
@cindex Assist Key, listing attributes
-@cindex listing attributes
+@cindex attributes, displaying
+@cindex displaying attributes
@cindex outline, attribute list
@kindex koutliner, C-c h
-@kindex koutliner, C-u C-c h
-The attribute lists for the cells in the tree rooted at point may be
-inspected by pressing the Assist Key within the contents of a cell.
@bkbd{C-c h} prompts for a cell label and displays the cell's
-attributes. @bkbd{C-u C-c h} prompts for a cell label and shows
+attributes. @bkbd{C-u C-c h} prompts for a cell label and displays
the attributes for it and its subtree; use 0 as the kcell id to see
attributes for all visible cells in the outline.
@@ -7905,8 +7928,15 @@ item, @bkbd{C-h h f w}, will do the same thing.
Display a grid of windows in the selected frame, sized according to the
prefix argument. The left digit of the argument is the number of grid rows
and the right digit is the number of grid columns. The argument is
-prompted for if not given. This binding is made only if the key is not
-bound prior to loading Hyperbole.
+prompted for if not given.
+
+If the argument is 0, prompt for a major mode whose buffers should be
+displayed first in the grid windows, then prompt for the grid size.
+
+If the argument is < 0, prompt for a glob-type file pattern and display
+files that match the pattern in an auto-sized windows grid.
+
+This binding is made only if the key is not bound prior to loading Hyperbole.
For further details, see the @bkbd{@@} key binding description
in @ref{HyControl}.