Finish the documentation for c-noise-macro-{,with-parens-}names.

The doc strings and pertinent CC Mode manual page failed to mention that these
variables could also be regular expressions.  Amend them.

* lisp/progmodes/cc-vars.el (c-noise-macro-names)
(c-noise-macro-with-parens-names): Amend the doc strings.

* doc/misc/cc-mode.texi (Noise Macros): Amend the descriptions of the two
variables.
This commit is contained in:
Alan Mackenzie 2020-01-27 18:10:34 +00:00
parent c8fcabf245
commit 066aad7b9d
2 changed files with 23 additions and 14 deletions

View file

@ -7095,22 +7095,24 @@ constitute noise macros.
@vindex noise-macro-names @r{(c-)}
This variable is a list of names of noise macros which never have
parenthesized arguments. Each element is a string, and must be a
valid identifier. An element in @code{c-noise-macro-names} must not
also be in @code{c-noise-macro-with-parens-names}. Such an element is
treated as whitespace by @ccmode{}.
valid identifier. Alternatively, the variable may be a regular
expression which matches the names of such macros. Such a noise macro
is treated as whitespace by @ccmode{}. It must not also be in, or be
matched by @code{c-noise-macro-with-parens-names}.
@end defopt
@defopt c-noise-macro-with-parens-names
@vindex noise-macro-with-parens-names @r{(c-)}
This variable is a list of names of noise macros which optionally have
arguments in parentheses. Each element of the list is a string, and
must be a valid identifier. An element in
@code{c-noise-macro-with-parens-names} must not also be in
@code{c-noise-macro-names}. For performance reasons, such an element,
together with the optional parenthesized arguments, is specially
handled, but it is only handled when used in declaration
contexts@footnote{If this restriction causes your project
difficulties, please get in touch with @email{bug-cc-mode@@gnu.org}.}.
must be a valid identifier. Alternatively, the variable may be a
regular expression which matches the names of such macros. Such a
noise macro must not also be in, or be matched by
@code{c-noise-macro-names}. For performance reasons, such a noise
macro, including any parenthesized arguments, is specially handled,
but it is only handled when used in declaration contexts@footnote{If
this restriction causes your project difficulties, please get in touch
with @email{bug-cc-mode@@gnu.org}.}.
The two compiler directives @code{__attribute__} and @code{__declspec}
have traditionally been handled specially in @ccmode{}; for example

View file

@ -1657,9 +1657,10 @@ white space either before or after the operator, but not both."
(defcustom c-noise-macro-names nil
"A list of names of macros which expand to nothing, or compiler extensions
like \"????\" which are syntactic noise. Such a macro/extension is complete in
itself, never having parentheses. All these names must be syntactically valid
identifiers.
like \"INLINE\" which are syntactic noise. Such a macro/extension is complete
in itself, never having parentheses. All these names must be syntactically
valid identifiers. Alternatively, this variable may be a regular expression
which matches the names of such macros.
If you change this variable's value, call the function
`c-make-noise-macro-regexps' to set the necessary internal variables (or do
@ -1673,7 +1674,13 @@ this implicitly by reinitializing C/C++/Objc Mode on any buffer)."
(defcustom c-noise-macro-with-parens-names nil
"A list of names of macros (or compiler extensions like \"__attribute__\")
which optionally have arguments in parentheses, and which expand to nothing.
These are recognized by CC Mode only in declarations."
All these names must be syntactically valid identifiers. These are recognized
by CC Mode only in declarations. Alternatively, this variable may be a
regular expression which matches the names of such macros.
If you change this variable's value, call the function
`c-make-noise-macro-regexps' to set the necessary internal variables (or do
this implicitly by reinitializing C/C++/Objc Mode on any buffer)."
:version "26.1"
:type '(repeat :tag "List of names (possibly empty)" string)
:group 'c)