Here we document most of the slots that are only available for suffix objects. Some slots are shared by suffix and group objects, they are documented in Predicate Slots.
Also see Suffix Classes.
transient-suffix
key
The key, a key vector or a key description string.
command
The command, a symbol.
transient
Whether to stay transient. See Transient State.
format
The format used to display the suffix in the popup buffer.
It must contain the following %-placeholders:
%k
For the key.
%d
For the description.
%v
For the infix value. Non-infix suffixes don’t have a value.
description
The description, either a string or a function that is
called with no argument and returns a string.
show-help
A function used to display help for the suffix. If
unspecified, the prefix controls how help is displayed for its
suffixes.
transient-infix
Some of these slots are only meaningful for some of the subclasses. They are defined here anyway to allow sharing certain methods.
argument
The long argument, e.g., --verbose
.
shortarg
The short argument, e.g., -v
.
value
The value. Should not be accessed directly.
init-value
Function that is responsible for setting the object’s
value. If bound, then this is called with the object as the only
argument. Usually this is not bound, in which case the object’s
primary transient-init-value
method is called instead.
unsavable
Whether the value of the suffix is not saved as part of
the prefixes.
multi-value
For options, whether the option can have multiple
values. If this is non-nil
, then the values are read using
completing-read-multiple
by default and if you specify your own
reader, then it should read the values using that function or
similar.
Supported non-nil
values are:
rest
for an option that can have multiple values. This is
useful e.g., for an --
argument that indicates that all remaining
arguments are files (such as git log -- file1 file2
).
In the list returned by transient-args
such an option and its
values are represented by a single list of the form (ARGUMENT
. VALUES)
.
repeat
for an option that can be specified multiple times.
In the list returned by transient-args
each instance of the option
and its value appears separately in the usual from, for example:
("--another-argument" "--option=first" "--option=second")
.
In both cases the option’s values have to be specified in the
default value of a prefix using the same format as returned by
transient-args
, e.g., ("--other" "--o=1" "--o=2" ("--" "f1" "f2"))
.
always-read
For options, whether to read a value on every invocation.
If this is nil
, then options that have a value are simply unset and
have to be invoked a second time to set a new value.
allow-empty
For options, whether the empty string is a valid value.
history-key
The key used to store the history. This defaults to the
command name. This is useful when multiple infixes should share the
same history because their values are of the same kind.
reader
The function used to read the value of an infix. Not used
for switches. The function takes three arguments, PROMPT,
INITIAL-INPUT and HISTORY, and must return a string.
prompt
The prompt used when reading the value, either a string or a
function that takes the object as the only argument and which
returns a prompt string.
choices
A list of valid values. How exactly that is used depends on
the class of the object.
transient-variable
variable
The variable.
transient-switches
argument-format
The display format. Must contain %s
, one of the
choices
is substituted for that. E.g., --%s-order
.
argument-regexp
The regexp used to match any one of the switches.
E.g., \\(--\\(topo\\|author-date\\|date\\)-order\\)
.