Thanks Greg. I haven't tried indent, I will try it with the config you
suggest, if it can get close I'll try a pre-processor script with it too.

-adam

On Sun, Mar 8, 2020 at 2:21 PM Gregory Nutt <spudan...@gmail.com> wrote:

> The best pretty printer for NuttX that I am aware of is still
> tools/indent.sh.  It consistently screws up a few things (as listed in
> tools/README.txt).  But the screw-ups are relatively easy and probably
> could be postprocesses.  The astyle and uncrustify stuff in tools/ is
> pretty must useles.
>
> But none of the tools handle subtle things, like aligned of assignments
> on = operators like:
>
>        dog      = bat;       /* Assign dog */
>        pony     = lizard;    /* Assign pony */
>        aardvark = pangolin;  /* Assign aardvark */
>
> and none handle this awful case:
>
>     #ifdef HAVE_SOMETHINGELSE
>        if (something == somethingelse)
>          {
>             do(somethingelse);
>          }
>        else
>     #endif
>        if (something == nothing)
>          {
>            do(nothing);
>          }
>
> It is not clear what the indentation should be for the if outside of the
> #ifdef.. #endif.  Most code aligns that if as though the previous
> conditional logic did not exist.
>
> Another issue is the unconditional compound statement which breaks all
> of indentation rules (but this is an nxstyle problem).
>
>    {
>      int i
>     for (i = 0; i < n; i++)
>        {
>          handle(i);
>        }
>    }
>
> The outer {} is indented only by two which makes the indentation of all
> of the inner stuff appear wrong to nxstyle.
>
>
>

-- 
Adam Feuer <a...@starcat.io>

Reply via email to