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

Niklas Söderlund niklas.soderlund at ragnatech.se
Thu Jul 4 00:59:45 CEST 2019


Hi Laurent,

Thanks for your work.

On 2019-07-04 00:13:58 +0300, Laurent Pinchart wrote:
> 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>

Regexp and lambda function, reviewing is fun!

Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>

> ---
>  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
> 
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

-- 
Regards,
Niklas Söderlund


More information about the libcamera-devel mailing list