Hi Iurii,

I wanted to double check, as we had previously looked into clang-format, and it 
showed some gaps with what it can be used for in Xen coding styles.  Which is 
why we tried to get agreement - and got it - to upstream Xen related changes 
into clang–format


== Indentation: ok ==

[+] Indent using spaces = ok with clang-format

[+] Indent level = 4 spaces = ok with clang-format

[+] Code within blocks is indented by one extra indent level = ok with 
clang-format

[+] The enclosing braces of a block are indented the same as the code _outside_ 
the block = ok with clang-format


== Whitespace: partly ok ==

[?] spread out logical statements = so no complete support (to do that we have 
add spaces before and after parenthesis but they apply to all others 
parenthesis as well)

[?] spaces are placed between the keyword and the brackets surrounding the 
condition, between the 40 brackets and the condition itself = same as above

[+] around binary operators (except the structure access operators, '.' and 
'->') = ok

[-] There should be no trailing white space at the end of lines = no support


== Line length: partly ok ==

[+] Lines should be less than 80 characters in length = ok with clang-format

[-] Split at "sensible places" = no tool can do that

[-] Trailing portions indented = no support in clang-format

[-] User visible strings (e.g., printk() messages) should not be split = no 
support in clang-format (it splits everything)


== Brackets: partly ok ==

[+] Usually placed on a line of their own = ok

[-] Except for the do/while loop = no support

[-] Brackets should be omitted for blocks with a single statement = no support


== Comments: no support ==

[-] Only C style /* ... */ comments are to be used = no support

[-] Multi-word comments should begin with a capital letter. = no support

[-] Comments containing a single sentence may end with a full stop; = no support

[-] Comments containing several sentences must have a full stop after each 
sentence = no support

[-] Multi-line comment blocks should start and end with comment markers on 
separate lines and each line should begin with a leading '*'. = No support


Emacs local variables = no support


I was wondering how you deal with the gaps. I suppose these gaps could possibly 
be covered in clang-format-diff.py

Of course this info may be out-of-date


Regards

Lars

From: Iurii Artemenko 
<iurii_arteme...@epam.com<mailto:iurii_arteme...@epam.com>>
Date: Monday, 24 July 2017 at 17:55
To: Juergen Gross <jgr...@suse.com<mailto:jgr...@suse.com>>
Cc: Lars Kurth <lars.ku...@citrix.com<mailto:lars.ku...@citrix.com>>, Wei Liu 
<wei.l...@citrix.com<mailto:wei.l...@citrix.com>>, Andrew Cooper 
<andrew.coop...@citrix.com<mailto:andrew.coop...@citrix.com>>, Ian Jackson 
<ian.jack...@citrix.com<mailto:ian.jack...@citrix.com>>, 'Jan Beulich' 
<jbeul...@suse.com<mailto:jbeul...@suse.com>>, xen-devel 
<xen-de...@lists.xenproject.org<mailto:xen-de...@lists.xenproject.org>>, cardoe 
<car...@cardoe.com<mailto:car...@cardoe.com>>, Andrii Anisov 
<andrii_ani...@epam.com<mailto:andrii_ani...@epam.com>>, Lars Kurth 
<lars.kurth....@gmail.com<mailto:lars.kurth....@gmail.com>>
Subject: Re: [Xen-devel] Xen checkpatch infrastructure design


Hello Juergen,


I've started to work on checkpatch-like python script. I make it based on  
clang-format-diff.py and it works as pre-commit hook.

> The easiest way to accomplish that is a file in the repository's root
> directory containing the necessary information. It will be named
> "STYLES" and contains lines in the format:

I will follow this approach.


> Remains the question how to design the style checker itself. It could
> be:
>
> (a) a monolithic script (perl, python, whatever) being capable of
>    handling all the different coding styles
> (b) a main script checking the patch header and calling a code style
>    specific script for each source file modified by the patch

It seems like specific script for style checking is not needed. Because 
clang-format tool does style checking by itself.
All we need is just to provide appropriate coding style description file for 
each.
Clang-format is a bit specific tool, so we can not specify explicitly file with 
coding style description.
It just looks for a .clang-format file in one of a parent directories of a file 
being checked.
As we got at least three coding-styles we have to substitute needed file in 
sources top directory for each check.
It could be done by generating .clang-format file dynamically depending on 
style/path from the STYLES file.
Another way could be using appropriate symlink on existing .clang-format file 
which is located somewhere in  tools/clang-format/coding-style-file like:
tools/clang-format/xen-style
tools/clang-format/linux-style
tools/clang-format/xl-style


Regards
Iurii
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel

Reply via email to