[PATCH] D48539: [clang-format] Fix end-of-file comments text proto formatting
Krasimir Georgiev via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Jun 25 03:39:50 PDT 2018
krasimir created this revision.
Herald added a subscriber: cfe-commits.
The case of end-of-file comments was formatted badly:
key: value
# end-of-file comment
This patch fixes that formatting:
key: value
# end-of-file comment
Repository:
rC Clang
https://reviews.llvm.org/D48539
Files:
lib/Format/UnwrappedLineParser.cpp
unittests/Format/FormatTestTextProto.cpp
Index: unittests/Format/FormatTestTextProto.cpp
===================================================================
--- unittests/Format/FormatTestTextProto.cpp
+++ unittests/Format/FormatTestTextProto.cpp
@@ -700,5 +700,22 @@
"}");
}
+TEST_F(FormatTestTextProto, FormatsCommentsAtEndOfFile) {
+ verifyFormat("key: value\n"
+ "# endfile comment");
+ verifyFormat("key: value\n"
+ "// endfile comment");
+ verifyFormat("key: value\n"
+ "// endfile comment 1\n"
+ "// endfile comment 2");
+ verifyFormat("submessage { key: value }\n"
+ "# endfile comment");
+ verifyFormat("submessage <\n"
+ " key: value\n"
+ " item {}\n"
+ ">\n"
+ "# endfile comment");
+}
+
} // end namespace tooling
} // end namespace clang
Index: lib/Format/UnwrappedLineParser.cpp
===================================================================
--- lib/Format/UnwrappedLineParser.cpp
+++ lib/Format/UnwrappedLineParser.cpp
@@ -303,6 +303,18 @@
else
parseLevel(/*HasOpeningBrace=*/false);
// Make sure to format the remaining tokens.
+ //
+ // LK_TextProto is special since its top-level is parsed as the body of a
+ // braced list, which does not necessarily have natural line separators such
+ // as a semicolon. Comments after the last entry that have been determined to
+ // not belong to that line, as in:
+ // key: value
+ // // endfile comment
+ // do not have a chance to be put on a line of their own until this point.
+ // Here we add this newline before end-of-file comments.
+ if (Style.Language == FormatStyle::LK_TextProto &&
+ !CommentsBeforeNextToken.empty())
+ addUnwrappedLine();
flushComments(true);
addUnwrappedLine();
}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48539.152649.patch
Type: text/x-patch
Size: 1800 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180625/9bf82252/attachment.bin>
More information about the cfe-commits
mailing list