зеркало из https://github.com/microsoft/clang.git
clang-format: Make it possible to turn off comment reflowing.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@254414 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Родитель
b65b352ab0
Коммит
c5e6fe85ed
|
@ -466,9 +466,12 @@ struct FormatStyle {
|
|||
PAS_Middle
|
||||
};
|
||||
|
||||
/// Pointer and reference alignment style.
|
||||
/// \brief Pointer and reference alignment style.
|
||||
PointerAlignmentStyle PointerAlignment;
|
||||
|
||||
/// \brief If true, clang-format will attempt to re-flow comments.
|
||||
bool ReflowComments;
|
||||
|
||||
/// \brief If true, clang-format will sort #includes.
|
||||
bool SortIncludes;
|
||||
|
||||
|
|
|
@ -1076,7 +1076,8 @@ unsigned ContinuationIndenter::breakProtrudingToken(const FormatToken &Current,
|
|||
return 0;
|
||||
}
|
||||
} else if (Current.is(TT_BlockComment) && Current.isTrailingComment()) {
|
||||
if (CommentPragmasRegex.match(Current.TokenText.substr(2)))
|
||||
if (!Style.ReflowComments ||
|
||||
CommentPragmasRegex.match(Current.TokenText.substr(2)))
|
||||
return 0;
|
||||
Token.reset(new BreakableBlockComment(
|
||||
Current, State.Line->Level, StartColumn, Current.OriginalColumn,
|
||||
|
@ -1084,7 +1085,8 @@ unsigned ContinuationIndenter::breakProtrudingToken(const FormatToken &Current,
|
|||
} else if (Current.is(TT_LineComment) &&
|
||||
(Current.Previous == nullptr ||
|
||||
Current.Previous->isNot(TT_ImplicitStringLiteral))) {
|
||||
if (CommentPragmasRegex.match(Current.TokenText.substr(2)))
|
||||
if (!Style.ReflowComments ||
|
||||
CommentPragmasRegex.match(Current.TokenText.substr(2)))
|
||||
return 0;
|
||||
Token.reset(new BreakableLineComment(Current, State.Line->Level,
|
||||
StartColumn, /*InPPDirective=*/false,
|
||||
|
|
|
@ -284,8 +284,9 @@ template <> struct MappingTraits<FormatStyle> {
|
|||
IO.mapOptional("PenaltyExcessCharacter", Style.PenaltyExcessCharacter);
|
||||
IO.mapOptional("PenaltyReturnTypeOnItsOwnLine",
|
||||
Style.PenaltyReturnTypeOnItsOwnLine);
|
||||
IO.mapOptional("SortIncludes", Style.SortIncludes);
|
||||
IO.mapOptional("PointerAlignment", Style.PointerAlignment);
|
||||
IO.mapOptional("ReflowComments", Style.ReflowComments);
|
||||
IO.mapOptional("SortIncludes", Style.SortIncludes);
|
||||
IO.mapOptional("SpaceAfterCStyleCast", Style.SpaceAfterCStyleCast);
|
||||
IO.mapOptional("SpaceBeforeAssignmentOperators",
|
||||
Style.SpaceBeforeAssignmentOperators);
|
||||
|
@ -490,6 +491,7 @@ FormatStyle getLLVMStyle() {
|
|||
LLVMStyle.SpacesBeforeTrailingComments = 1;
|
||||
LLVMStyle.Standard = FormatStyle::LS_Cpp11;
|
||||
LLVMStyle.UseTab = FormatStyle::UT_Never;
|
||||
LLVMStyle.ReflowComments = true;
|
||||
LLVMStyle.SpacesInParentheses = false;
|
||||
LLVMStyle.SpacesInSquareBrackets = false;
|
||||
LLVMStyle.SpaceInEmptyParentheses = false;
|
||||
|
|
|
@ -1197,6 +1197,13 @@ TEST_F(FormatTest, AlignsBlockComments) {
|
|||
"comment */"));
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, CommentReflowingCanBeTurnedOff) {
|
||||
FormatStyle Style = getLLVMStyleWithColumns(20);
|
||||
Style.ReflowComments = false;
|
||||
verifyFormat("// aaaaaaaaa aaaaaaaaaa aaaaaaaaaa", Style);
|
||||
verifyFormat("/* aaaaaaaaa aaaaaaaaaa aaaaaaaaaa */", Style);
|
||||
}
|
||||
|
||||
TEST_F(FormatTest, CorrectlyHandlesLengthOfBlockComments) {
|
||||
EXPECT_EQ("double *x; /* aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n"
|
||||
" aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa */",
|
||||
|
@ -9639,6 +9646,7 @@ TEST_F(FormatTest, ParsesConfigurationBools) {
|
|||
CHECK_PARSE_BOOL(ObjCSpaceAfterProperty);
|
||||
CHECK_PARSE_BOOL(ObjCSpaceBeforeProtocolList);
|
||||
CHECK_PARSE_BOOL(Cpp11BracedListStyle);
|
||||
CHECK_PARSE_BOOL(ReflowComments);
|
||||
CHECK_PARSE_BOOL(SortIncludes);
|
||||
CHECK_PARSE_BOOL(SpacesInParentheses);
|
||||
CHECK_PARSE_BOOL(SpacesInSquareBrackets);
|
||||
|
|
Загрузка…
Ссылка в новой задаче