[libcamera-devel] [PATCH] utils: checkstyle.py: Add Doxygen formatter

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jul 3 23:13:58 CEST 2019


Add a formatter for doxygen comments. In its initial implementation the
formatter ensures that the first word of a \return statement starts with
an uppercase letter.

Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
---
 utils/checkstyle.py | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/utils/checkstyle.py b/utils/checkstyle.py
index bc631d405007..fab4b116d2ff 100755
--- a/utils/checkstyle.py
+++ b/utils/checkstyle.py
@@ -350,6 +350,34 @@ class CLangFormatter(Formatter):
         return ret.stdout.decode('utf-8')
 
 
+class DoxygenFormatter(Formatter):
+    patterns = ('*.c', '*.cpp')
+
+    return_regex = re.compile(' +\\* +\\\\return +[a-z]')
+
+    @classmethod
+    def format(cls, filename, data):
+        lines = []
+        in_doxygen = False
+
+        for line in data.split('\n'):
+            if line.find('/**') != -1:
+                in_doxygen = True
+
+            if not in_doxygen:
+                lines.append(line)
+                continue
+
+            line = cls.return_regex.sub(lambda m: m.group(0)[:-1] + m.group(0)[-1].upper(), line)
+
+            if line.find('*/') != -1:
+                in_doxygen = False
+
+            lines.append(line)
+
+        return '\n'.join(lines)
+
+
 class StripTrailingSpaceFormatter(Formatter):
     patterns = ('*.c', '*.cpp', '*.h', '*.py', 'meson.build')
 
-- 
Regards,

Laurent Pinchart



More information about the libcamera-devel mailing list