@item (completion @var{completion-predicate})
Declare @var{completion-predicate} as a function to determine whether
-to include the symbol in the list of functions when asking for
-completions in @kbd{M-x}. @var{completion-predicate} is called with
-two parameters: The first parameter is the symbol, and the second is
-the current buffer.
+to include a function's symbol in the list of functions when asking
+for completions in @kbd{M-x}. This predicate function will only be
+called when @code{read-extended-command-predicate} is customized to
+@code{command-completion-default-include-p}; by default the value of
+@code{read-extended-command-predicate} is nil (@pxref{Interactive
+Call, execute-extended-command}). The predicate
+@var{completion-predicate} is called with two arguments: the
+function's symbol and the current buffer.
@item (modes @var{modes})
-Specify that this command is meant to be applicable for @var{modes}
-only.
+Specify that this command is meant to be applicable only to specified
+@var{modes}. @xref{Command Modes}.
@item (interactive-args @var{arg} ...)
Specify the arguments that should be stored for @code{repeat-command}.
This excludes from completion candidates those commands
which have been marked specific to modes other than the
current buffer's mode. Commands that are not specific
- to any mode are included.
+ to any mode are included. If a command has a
+ `(declare completion...' form which specifies a predicate,
+ that predicate will be called to determine whether to
+ include the command in the completion candidates.
`command-completion-using-modes-p'
This includes in completion candidates only commands