Add style option for number of spaces before trailing comments.

In LLVM style, a single space should be enough. In Google style, two
spaces are required.

llvm-svn: 171725
This commit is contained in:
Daniel Jasper 2013-01-07 11:09:06 +00:00
parent da16db3f9a
commit 5ad1e1992a
3 changed files with 12 additions and 5 deletions

View File

@ -52,6 +52,9 @@ struct FormatStyle {
/// When false, use the same indentation level as for the switch statement.
/// Switch statement body is always indented one level more than case labels.
bool IndentCaseLabels;
/// \brief The number of spaces to before trailing line comments.
unsigned SpacesBeforeTrailingComments;
};
/// \brief Returns a format style complying with the LLVM coding standards:

View File

@ -77,6 +77,7 @@ FormatStyle getLLVMStyle() {
LLVMStyle.AccessModifierOffset = -2;
LLVMStyle.SplitTemplateClosingGreater = true;
LLVMStyle.IndentCaseLabels = false;
LLVMStyle.SpacesBeforeTrailingComments = 1;
return LLVMStyle;
}
@ -88,6 +89,7 @@ FormatStyle getGoogleStyle() {
GoogleStyle.AccessModifierOffset = -1;
GoogleStyle.SplitTemplateClosingGreater = false;
GoogleStyle.IndentCaseLabels = true;
GoogleStyle.SpacesBeforeTrailingComments = 2;
return GoogleStyle;
}
@ -299,7 +301,7 @@ private:
unsigned Spaces = Annotations[Index].SpaceRequiredBefore ? 1 : 0;
if (Annotations[Index].Type == TT_LineComment)
Spaces = 2;
Spaces = Style.SpacesBeforeTrailingComments;
if (!DryRun)
replaceWhitespace(Current, 0, Spaces);

View File

@ -278,21 +278,23 @@ TEST_F(FormatTest, UnderstandsSingleLineComments) {
" // Doesn't do anything\n"
"}");
verifyFormat("int i // This is a fancy variable\n"
verifyFormat("int i // This is a fancy variable\n"
" = 5;");
verifyFormat("enum E {\n"
" // comment\n"
" VAL_A, // comment\n"
" VAL_A, // comment\n"
" VAL_B\n"
"};");
verifyFormat(
"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa =\n"
" bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb; // Trailing comment");
" bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb; // Trailing comment");
EXPECT_EQ("int i; // single line trailing comment",
EXPECT_EQ("int i; // single line trailing comment",
format("int i;\\\n// single line trailing comment"));
verifyGoogleFormat("int a; // Trailing comment.");
}
TEST_F(FormatTest, UnderstandsMultiLineComments) {