Index: clang/docs/ClangFormatStyleOptions.rst =================================================================== --- clang/docs/ClangFormatStyleOptions.rst +++ clang/docs/ClangFormatStyleOptions.rst @@ -2696,16 +2696,19 @@ **FixNamespaceComments** (``Boolean``) :versionbadge:`clang-format 5` If ``true``, clang-format adds missing namespace end comments for - short namespaces and fixes invalid existing ones. Short ones are - controlled by "ShortNamespaceLines". + namespaces and fixes invalid existing ones. This doesn't affect short + namespaces, which are controlled by ``ShortNamespaceLines``. .. code-block:: c++ true: false: - namespace a { vs. namespace a { - foo(); foo(); - bar(); bar(); + namespace longNamespace { vs. namespace longNamespace { + void foo(); void foo(); + void bar(); void bar(); } // namespace a } + namespace shortNamespace { namespace shortNamespace { + void baz(); void baz(); + } } **ForEachMacros** (``List of Strings``) :versionbadge:`clang-format 3.7` A vector of macros that should be interpreted as foreach loops Index: clang/include/clang/Format/Format.h =================================================================== --- clang/include/clang/Format/Format.h +++ clang/include/clang/Format/Format.h @@ -2121,14 +2121,17 @@ bool ExperimentalAutoDetectBinPacking; /// If ``true``, clang-format adds missing namespace end comments for - /// short namespaces and fixes invalid existing ones. Short ones are - /// controlled by "ShortNamespaceLines". + /// namespaces and fixes invalid existing ones. This doesn't affect short + /// namespaces, which are controlled by ``ShortNamespaceLines``. /// \code /// true: false: - /// namespace a { vs. namespace a { - /// foo(); foo(); - /// bar(); bar(); + /// namespace longNamespace { vs. namespace longNamespace { + /// void foo(); void foo(); + /// void bar(); void bar(); /// } // namespace a } + /// namespace shortNamespace { namespace shortNamespace { + /// void baz(); void baz(); + /// } } /// \endcode /// \version 5 bool FixNamespaceComments;