[edk2-devel] Uncrustify configuration file and file/function templates

Pedro Falcato pedro.falcato at gmail.com
Tue Nov 16 23:30:06 UTC 2021


Yes, I do.

Essentially, my changes make it so the function parameters are aligned and
there are always two spaces between the parameter's type and name; it also
adds spaces between control statements, as you mentioned.
"force" instead of "add" for sp_before_sparen is a good idea though.
I assume these are good additions to the "upstream" edk2.cfg?

On Tue, Nov 16, 2021 at 11:20 PM Michael Kubacki <
mikuback at linux.microsoft.com> wrote:

> Hi Pedro,
>
> By "new config", do you mean the config file in the latest branch
> https://github.com/makubacki/edk2/blob/uncrustify_poc_5/uncrustify.cfg)?
>
> The main difference I see from the diff in that gist and poc_5 is that
> "align_func_params_gap" and "align_func_params_span" are two instead of
> zero.
>
> The value "force" instead of "add" for "sp_before_sparen" will ensure a
> single space is always added between a control statement and the
> parenthesis.
>
> Thanks,
> Michael
>
> On 11/16/2021 6:05 PM, Pedro Falcato wrote:
> > Hi,
> >
> > RE: Uncrustify's configuration
> >
> > I had made a few changes to the config file, when trying out Uncrustify,
> > a few months ago, on Mike Kinney's suggestion. In my experience, the new
> > config file reflects the edk2 coding style better.
> >
> > In particular, it adds spaces between things like 'if' and the
> > parenthesis, and better aligns functions' parameters.
> > Feel free to check out the diff:
> > https://gist.github.com/heatd/5bb048a188726cb8bc9f5b4a844b0ec2
> > <https://gist.github.com/heatd/5bb048a188726cb8bc9f5b4a844b0ec2>.
> > There's a bit of diff noise due to it being based on
> > https://dev.azure.com/projectmu/_git/Uncrustify?path=/etc/edk2.cfg
> > <https://dev.azure.com/projectmu/_git/Uncrustify?path=/etc/edk2.cfg>
> but
> > diffed on
> >
> https://github.com/makubacki/edk2/blob/uncrustify_poc_2/.uncrustify/edk2.cfg
> > <
> https://github.com/makubacki/edk2/blob/uncrustify_poc_2/.uncrustify/edk2.cfg
> >.
> >
> > Thanks,
> > Pedro
> >
> > On Tue, Nov 16, 2021 at 7:26 PM Michael Kubacki
> > <mikuback at linux.microsoft.com <mailto:mikuback at linux.microsoft.com>>
> wrote:
> >
> >     I think that makes sense. I will look into it further and let you
> know
> >     if there's any downsides found.
> >
> >     On 11/16/2021 2:18 PM, Kinney, Michael D wrote:
> >      > Could we add this feature to the Uncrustify CI Plugin?
> >      >
> >      > Mike
> >      >
> >      >> -----Original Message-----
> >      >> From: Michael Kubacki <mikuback at linux.microsoft.com
> >     <mailto:mikuback at linux.microsoft.com>>
> >      >> Sent: Tuesday, November 16, 2021 10:54 AM
> >      >> To: devel at edk2.groups.io <mailto:devel at edk2.groups.io>; Kinney,
> >     Michael D <michael.d.kinney at intel.com
> >     <mailto:michael.d.kinney at intel.com>>
> >      >> Subject: Re: [edk2-devel] Uncrustify configuration file and
> >     file/function templates
> >      >>
> >      >> I would prefer to have a single version of the file if possible
> to
> >      >> reduce synchronization issues across the two copies.
> >      >>
> >      >> It seems that a CI plugin to read the contents of the template
> >     files and
> >      >> search incoming code for that text wouldn't be too difficult to
> >     add as a
> >      >> new plugin.
> >      >>
> >      >> Thanks,
> >      >> Michael
> >      >>
> >      >> On 11/16/2021 1:31 PM, Michael D Kinney wrote:
> >      >>> Hi Michael,
> >      >>>
> >      >>> Should we have 2 versions of the config file?
> >      >>>
> >      >>> One used by automation tools such as CI and git hooks that do
> >     not use the
> >      >>> templates.
> >      >>>
> >      >>> And another one that a developer can optionally use that will
> >     add the
> >      >>> templates for missing file/function headers that the developer
> >     then needs
> >      >>> to fill out.
> >      >>>
> >      >>> One concern I have about the templates is if they get used but
> >     a developer
> >      >>> does not fill in the missing information.  It would be best if
> >     a CI check
> >      >>> rejects a file/function header that has not been filled in.
> >      >>>
> >      >>> Mike
> >      >>>
> >      >>>> -----Original Message-----
> >      >>>> From: devel at edk2.groups.io <mailto:devel at edk2.groups.io>
> >     <devel at edk2.groups.io <mailto:devel at edk2.groups.io>> On Behalf Of
> >     Michael Kubacki
> >      >>>> Sent: Tuesday, November 16, 2021 10:25 AM
> >      >>>> To: devel at edk2.groups.io <mailto:devel at edk2.groups.io>;
> >     Kinney, Michael D <michael.d.kinney at intel.com
> >     <mailto:michael.d.kinney at intel.com>>
> >      >>>> Subject: Re: [edk2-devel] Uncrustify configuration file and
> >     file/function templates
> >      >>>>
> >      >>>> Hi Mike,
> >      >>>>
> >      >>>> Those were just disabled because I typically run a separate
> >     invocation
> >      >>>> of Uncrustify with them enabled to isolate code which is
> missing
> >      >>>> file/function headers. My thought was the templates are
> >     helpful but we
> >      >>>> would need to individually identify where they are placed to
> >     file TCBZs
> >      >>>> for maintainers to replace the template with the actual
> >     information.
> >      >>>>
> >      >>>> In some of my previous poc branches (like
> >      >>>>
> >
> https://github.com/makubacki/edk2/commits/uncrustify_poc_3_with_headers
> >     <
> https://github.com/makubacki/edk2/commits/uncrustify_poc_3_with_headers>),
> >     I
> >      >>>> also pushed a branch with those results.
> >      >>>>
> >      >>>> So I do think we would want them enabled in the final config
> >     file. We
> >      >>>> can also review the contents of the templates in the future
> >     patch series
> >      >>>> to see if any changes are recommended.
> >      >>>>
> >      >>>> I prefer using a .uncrustify directory to help group related
> >     collateral
> >      >>>> but I don't have a strong opinion there.
> >      >>>>
> >      >>>> Thanks,
> >      >>>> Michael
> >      >>>>
> >      >>>> On 11/16/2021 12:16 PM, Michael D Kinney wrote:
> >      >>>>> Hi Michael,
> >      >>>>>
> >      >>>>> In your POC branch
> >     (https://github.com/makubacki/edk2/tree/uncrustify_poc_5
> >     <https://github.com/makubacki/edk2/tree/uncrustify_poc_5>), I see
> the
> >      >>>>> uncrustify.cfg configuration file in the root.
> >      >>>>>
> >      >>>>>
> >
> https://github.com/makubacki/edk2/blob/uncrustify_poc_5/uncrustify.cfg
> >     <
> https://github.com/makubacki/edk2/blob/uncrustify_poc_5/uncrustify.cfg>
> >      >>>>>
> >      >>>>> However, in your Wiki, you provide examples where this
> >     configuration file is in an
> >      >>>>> .uncrustify directory
> >      >>>>>
> >      >>>>>
> >
> https://dev.azure.com/projectmu/Uncrustify/_wiki/wikis/Uncrustify.wiki/1/Project-Mu-(EDK-II)-Fork-Readme
> >     <
> https://dev.azure.com/projectmu/Uncrustify/_wiki/wikis/Uncrustify.wiki/1/Project-Mu-(EDK-II)-Fork-Readme
> >
> >      >>>>>
> >      >>>>> The uncrustify.cfg files also contains commented out settings
> >     for the file header
> >      >>>>> and function header templates.
> >      >>>>>
> >      >>>>>        # cmt_insert_file_header          =
> >     default_file_header.txt
> >      >>>>>        # cmt_insert_func_header          =
> >     default_function_header.txt
> >      >>>>>
> >      >>>>> Are these disabled on purpose?
> >      >>>>>
> >      >>>>> Do we want to enable them?  If so, should the uncrustify
> >     configuration file
> >      >>>>> and the templates go into a .uncrustify directory?
> >      >>>>>
> >      >>>>> Thanks,
> >      >>>>>
> >      >>>>> Mike
> >      >>>>>
> >      >>>>>
> >      >>>>>
> >      >>>>>
> >      >>>>>
> >      >>>>>
> >      >>>>>
> >      >>>>
> >      >>>>
> >      >>>>
> >      >>>>
> >      >>>
> >      >>>
> >      >>>
> >      >>>
> >      >>>
> >      >>>
> >
> >
> >
> >
> >
> >
> >
> > --
> > Pedro Falcato
> > 
>


-- 
Pedro Falcato


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#83796): https://edk2.groups.io/g/devel/message/83796
Mute This Topic: https://groups.io/mt/87100207/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/edk2-devel-archive/attachments/20211116/a00cd187/attachment.htm>


More information about the edk2-devel-archive mailing list