@dircategory Emacs misc features
@direntry
-* Transient: (transient). Transient Commands.
+* Transient: (transient). Transient Commands.
@end direntry
@finalout
If the user does not save the value and just exits using a regular
suffix command, then the value is merely saved to the transient's
history. That value won't be used when the transient is next invoked,
-but it is easily accessible (see @ref{Using History}).
+but it is easily accessible (@pxref{Using History}).
@table @asis
@item @kbd{C-x s} (@code{transient-set})
those mentioned above are bound to those commands.
Authors of transients should arrange for different infix commands that
-read the same kind of value to also use the same history key (see
-@ref{Suffix Slots}).
+read the same kind of value to also use the same history key
+(@pxref{Suffix Slots}).
Both kinds of history are saved to a file when Emacs is exited.
The value of this option has the form @code{(@var{FUNCTION} . @var{ALIST})},
where @var{FUNCTION} is a function or a list of functions. Each such
function should accept two arguments: a buffer to display and an
-alist of the same form as @var{ALIST}. See @ref{Choosing Window,,,elisp,},
+alist of the same form as @var{ALIST}. @xref{Choosing Window,,,elisp,},
for details.
The default is:
This displays the window at the bottom of the selected frame.
Another useful @var{FUNCTION} is @code{display-buffer-below-selected}, which
is what @code{magit-popup} used by default. For more alternatives see
-@ref{Buffer Display Action Functions,,,elisp,}, and @ref{Buffer Display Action Alists,,,elisp,}.
+@ref{Buffer Display Action Functions,,,elisp,}, and see @ref{Buffer Display
+Action Alists,,,elisp,}.
Note that the buffer that was current before the transient buffer
is shown should remain the current buffer. Many suffix commands
@code{transient-key-exit} (if allowed and they exit the transient) is
used to draw the line.
-Otherwise this can be any mode-line format. See @ref{Mode Line Format,,,elisp,}, for details.
+Otherwise this can be any mode-line format. @xref{Mode Line
+Format,,,elisp,}, for details.
@end defopt
@defopt transient-semantic-coloring
as expected by @code{transient-define-prefix}. Note that an infix is a
special kind of suffix. Depending on context ``suffixes'' means
``suffixes (including infixes)'' or ``non-infix suffixes''. Here it
-means the former. See @ref{Suffix Specifications}.
+means the former. @xref{Suffix Specifications}.
@var{SUFFIX} may also be a group in the same form as expected by
-@code{transient-define-prefix}. See @ref{Group Specifications}.
+@code{transient-define-prefix}. @xref{Group Specifications}.
@item
@var{LOC} is a command, a key vector, a key description (a string as
defines the complete transient, not just the transient prefix command
that is used to invoke that transient.
-@defmac transient-define-prefix name arglist [docstring] [keyword value]... group... [body...]
+@defmac transient-define-prefix name arglist [docstring] [keyword value]@dots{} group@dots{} [body@dots{}]
This macro defines @var{NAME} as a transient prefix command and binds the
transient's infix and suffix commands.
@var{GROUP}s add key bindings for infix and suffix commands and specify
how these bindings are presented in the popup buffer. At least one
-@var{GROUP} has to be specified. See @ref{Binding Suffix and Infix Commands}.
+@var{GROUP} has to be specified. @xref{Binding Suffix and Infix Commands}.
The @var{BODY} is optional. If it is omitted, then @var{ARGLIST} is ignored and
the function definition becomes:
@section Binding Suffix and Infix Commands
The macro @code{transient-define-prefix} is used to define a transient.
-This defines the actual transient prefix command (see @ref{Defining Transients}) and adds the transient's infix and suffix bindings, as
+This defines the actual transient prefix command (@pxref{Defining
+Transients}) and adds the transient's infix and suffix bindings, as
described below.
Users and third-party packages can add additional bindings using
-functions such as @code{transient-insert-suffix} (see @ref{Modifying Existing Transients}). These functions take a ``suffix specification'' as one of
+functions such as @code{transient-insert-suffix} (@pxref{Modifying Existing Transients}). These functions take a ``suffix specification'' as one of
their arguments, which has the same form as the specifications used in
@code{transient-define-prefix}.
Group specifications then have this form:
@lisp
-[@{LEVEL@} @{DESCRIPTION@} @{KEYWORD VALUE@}... ELEMENT...]
+[@{@var{LEVEL}@} @{@var{DESCRIPTION}@}
+ @{@var{KEYWORD} @var{VALUE}@}...
+ @var{ELEMENT}...]
@end lisp
-The @var{LEVEL} is optional and defaults to 4. See @ref{Enabling and Disabling Suffixes}.
+The @var{LEVEL} is optional and defaults to 4. @xref{Enabling and
+Disabling Suffixes}.
The @var{DESCRIPTION} is optional. If present, it is used as the heading of
the group.
Suffix specifications have this form:
@lisp
-([LEVEL] [KEY [DESCRIPTION]] COMMAND|ARGUMENT [KEYWORD VALUE]...)
+([@var{LEVEL}]
+ [@var{KEY} [@var{DESCRIPTION}]]
+ @var{COMMAND}|@var{ARGUMENT} [@var{KEYWORD} @var{VALUE}]...)
@end lisp
@var{LEVEL}, @var{KEY} and @var{DESCRIPTION} can also be specified using the @var{KEYWORD}s
@itemize
@item
-@var{LEVEL} is the suffix level, an integer between 1 and 7. See
-@ref{Enabling and Disabling Suffixes}.
+@var{LEVEL} is the suffix level, an integer between 1 and 7.
+@xref{Enabling and Disabling Suffixes}.
@item
@var{KEY} is the key binding, either a vector or key description string.
``suffixes'' means ``suffixes (including infixes)'' or ``non-infix
suffixes''.
-@defmac transient-define-suffix name arglist [docstring] [keyword value]... body...
+@defmac transient-define-suffix name arglist [docstring] [keyword value]@dots{} body@dots{}
This macro defines @var{NAME} as a transient suffix command.
@var{ARGLIST} are the arguments that the command takes.
inside @code{interactive}.
@end defmac
-@defmac transient-define-infix name arglist [docstring] [keyword value]...
+@defmac transient-define-infix name arglist [docstring] [keyword value]@dots{}
This macro defines @var{NAME} as a transient infix command.
@var{ARGLIST} is always ignored (but mandatory never-the-less) and
value of the @code{:transient} keyword.
@end defmac
-@defmac transient-define-argument name arglist [docstring] [keyword value]...
+@defmac transient-define-argument name arglist [docstring] [keyword value]@dots{}
This macro defines @var{NAME} as a transient infix command.
This is an alias for @code{transient-define-infix}. Only use this alias
@item
All suffix and infix classes derive from @code{transient-suffix}, which in
turn derives from @code{transient-child}, from which @code{transient-group} also
-derives (see @ref{Group Classes}).
+derives (@pxref{Group Classes}).
@item
All infix classes derive from the abstract @code{transient-infix} class,
methods.
Also, infixes and non-infix suffixes are usually defined using
-different macros (see @ref{Defining Suffix and Infix Commands}).
+different macros (@pxref{Defining Suffix and Infix Commands}).
@item
Classes used for infix commands that represent arguments should
@code{transient-suffix} and @code{transient-non-suffix} play a part when
determining whether the currently active transient prefix command
remains active/transient when a suffix or arbitrary non-suffix
-command is invoked. See @ref{Transient State}.
+command is invoked. @xref{Transient State}.
@item
@code{refresh-suffixes} Normally suffix objects and keymaps are only setup
@item
@code{level} The level of the prefix commands. The suffix commands whose
-layer is equal or lower are displayed. See @ref{Enabling and Disabling Suffixes}.
+layer is equal or lower are displayed. @pxref{Enabling and Disabling Suffixes}.
@item
@code{value} The likely outdated value of the prefix. Instead of accessing
@code{command} The command, a symbol.
@item
-@code{transient} Whether to stay transient. See @ref{Transient State}.
+@code{transient} Whether to stay transient. @xref{Transient State}.
@item
@code{format} The format used to display the suffix in the popup buffer.
different purpose. The value has to be an integer between 1
and 7. @code{level} controls whether a suffix or a group should be
available depending on user preference.
-See @ref{Enabling and Disabling Suffixes}.
+@xref{Enabling and Disabling Suffixes}.
@node FAQ
@appendix FAQ