From 6d8d983b11ec775598afa30d2b00496d2b00f505 Mon Sep 17 00:00:00 2001 From: "erg@google.com" Date: Thu, 31 Oct 2013 19:46:18 +0000 Subject: [PATCH] In cpplint, permit Dodxygen C++ annotations, which come after members, e.g. int var; //!< Brief description after the member or int var; ///< Brief description after the member Cf. http://www.stack.nl/~dimitri/doxygen/manual/docblocks.html#memberdoc Currently, cpplint accepts comments after members, cf. http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Implementation_Comments#Implementation_Comments and it accepts also the doxygen comments of the type "///" (followed by a new line) and "/// " (followed by a comment). Only the Doxygen annotations, which come after members are rejected, which is fixed by this patch. Review URL: https://codereview.appspot.com/14607044 Patch from Tobias Burnus . --- cpplint/cpplint.py | 5 +++++ cpplint/cpplint_unittest.py | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/cpplint/cpplint.py b/cpplint/cpplint.py index 70912e2..84cc1cd 100755 --- a/cpplint/cpplint.py +++ b/cpplint/cpplint.py @@ -2627,10 +2627,15 @@ def CheckSpacing(filename, clean_lines, linenum, nesting_state, error): # //---------------------------------------------------------- # or are an empty C++ style Doxygen comment, like: # /// + # or C++ style Doxygen comments placed after the variable: + # ///< Header comment + # //!< Header comment # or they begin with multiple slashes followed by a space: # //////// Header comment match = (Search(r'[=/-]{4,}\s*$', line[commentend:]) or Search(r'^/$', line[commentend:]) or + Search(r'^!< ', line[commentend:]) or + Search(r'^/< ', line[commentend:]) or Search(r'^/+ ', line[commentend:])) if not match: error(filename, linenum, 'whitespace/comments', 4, diff --git a/cpplint/cpplint_unittest.py b/cpplint/cpplint_unittest.py index 457ee9d..3426323 100755 --- a/cpplint/cpplint_unittest.py +++ b/cpplint/cpplint_unittest.py @@ -2202,9 +2202,19 @@ class CpplintTest(CpplintTestBase): self.TestLint('//////', '') self.TestLint('////// x', '') self.TestLint('/// x', '') + self.TestLint('///< x', '') # After-member Doxygen comment + self.TestLint('//!< x', '') # After-member Doxygen comment self.TestLint('///', '') # Empty Doxygen comment self.TestLint('////x', 'Should have a space between // and comment' ' [whitespace/comments] [4]') + self.TestLint('//!