From: Alan Mackenzie Date: Mon, 27 Jan 2020 18:10:34 +0000 (+0000) Subject: Finish the documentation for c-noise-macro-{,with-parens-}names. X-Git-Tag: emacs-27.0.90~92 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=066aad7b9d;p=emacs.git 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. --- diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi index 2c49a90c54b..544ff853351 100644 --- a/doc/misc/cc-mode.texi +++ b/doc/misc/cc-mode.texi @@ -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 diff --git a/lisp/progmodes/cc-vars.el b/lisp/progmodes/cc-vars.el index 861872486c7..556ff6059f1 100644 --- a/lisp/progmodes/cc-vars.el +++ b/lisp/progmodes/cc-vars.el @@ -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)