[cfe-dev] [clang-format] Indentation of preprocessor directives
Martin J. O'Riordan via cfe-dev
cfe-dev at lists.llvm.org
Tue Aug 30 13:36:31 PDT 2016
Two common styles I come across are whitespace indentation after the ‘#’ but before the pre-processing directive:
# define A
and whitespace indentation preceding the ‘#’ prefixed pre-processing directive:
Can this rule handle both styles, or do you plan on supporting both styles? I’m not specifically in support of one style versus the other, but I strongly support the idea of a tool that can normalise styles to some given convention, and the more flexibility the better. And of course no indentation at all:
which you already handle.
From: cfe-dev [mailto:cfe-dev-bounces at lists.llvm.org] On Behalf Of Curdeius Curdeius via cfe-dev
Sent: 30 August 2016 15:49
To: cfe-dev at lists.llvm.org
Subject: [cfe-dev] [clang-format] Indentation of preprocessor directives
I've written a working draft for a new clang-format option "PPDirectiveIndentation" (available at https://github.com/mkurdej/clang/tree/indent-pp-directives).
Basically, it indents preprocessor directives. So, the code
# define A
when PPDirectiveIndentation = All.
So far, there are only two options (None, All), but I foresee another option Inner or something like that to mimic the behaviour of NamespaceIndentation.
The number of spaces between '#' and the directive name is controlled by IndentWidth option (to be consistent with indentation inside namespaces, classes, blocks etc.), but it may be easily modified.
What's the interest in it? Among well known source code that indents preprocessor directives, there are many Boost libraries (a quick search shows e.g. https://github.com/boostorg/asio/blob/develop/include/boost/asio/buffer.hpp).
What are the chances that it gets merged?
I'll submit the code for revision to Phabricator this week when I find some more time.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev