Skip to content

Commit

Permalink
In cpplint, permit Dodxygen C++ annotations, which come after members…
Browse files Browse the repository at this point in the history
…, 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 <[email protected]>.
  • Loading branch information
[email protected] committed Oct 31, 2013
1 parent 2aa5998 commit 6d8d983
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 0 deletions.
5 changes: 5 additions & 0 deletions cpplint/cpplint.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
10 changes: 10 additions & 0 deletions cpplint/cpplint_unittest.py
Original file line number Diff line number Diff line change
Expand Up @@ -2202,9 +2202,19 @@ def testSpaceAfterCommentMarker(self):
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('//!<x', 'Should have a space between // and comment'
' [whitespace/comments] [4]')
self.TestLint('///<x', 'Should have a space between // and comment'
' [whitespace/comments] [4]')
self.TestLint('//!<', 'Should have a space between // and comment'
' [whitespace/comments] [4]')
self.TestLint('///<', 'Should have a space between // and comment'
' [whitespace/comments] [4]')

# Test a line preceded by empty or comment lines. There was a bug
# that caused it to print the same warning N times if the erroneous
Expand Down

0 comments on commit 6d8d983

Please sign in to comment.