Hello, I have tried to make a clang format configuration to use, but I have the same problem where there are a couple style items that clang format has no options for. Things like enforcing lowercase hex or putting curly braces indented on a separate line after static initializers.
On Mon, Mar 17, 2025, 8:52 AM Mark Stevens <m...@thepcsite.co.uk> wrote: > Has anyone looked at using a custom .clang-format file to see if we can > get close to the NuttX style? > > I’ve used this route in a couple of projects. I did have to compromise on > one or two rules as I could not get the exact format I wanted. I thought > this was worth it as it saved me writing my own tool to do the job. I then > used a docker script to run the checks on every PR. > > Just wondering if it would save some effort. > > Regards, > Mark > ------------------------------------------- > Mark Stevens > Blog: blog.mark-stevens.co.uk > > > > On 17 Mar 2025, at 11:31, Luchian Mihai <luchiann.mi...@gmail.com> > wrote: > > > > Hello Nuttx, > > > > *--- Summary ---* > > I've been in the habit of fixing small issues regarding nxstyle. > > > > One of the last conclusions drawn was that it does not tokenize the file, > > which leads to limitations in checking syntax. > > Please check https://github.com/apache/nuttx/pull/15847 for further > details. > > > > I am working on a new implementation of nxstyle using python and > > tree-sitter for parsing and checking the source code. > > Treesitter is getting more traction in the past years. Some editors are > > making use of treesitter, such as zed, neovim, helix, and others. > > GitHub uses if for code navigation > > > https://docs.github.com/en/repositories/working-with-files/using-files/navigating-code-on-github > > So, I think it may be a suitable solution for nuttx as well. > > > > This will take a lot of work, but you can track my progress at > > https://github.com/LuchianMihai/nuttx/tree/nxtool. > > Please feel free to add any suggestions you may see fit. > > > > *--- Questions ---* > > > > 1. > > I've also set up the work for an new tool, calling it nxtool (at the > time I > > did not know that is not a new name/concept), > > Mostly, it's a "boilerplate" to add more subcommands under a common > command > > called nxtool. > > Currently only a single subcommand is present, checkpatch, equivalent to > > the present checkpatch.sh so basically call > > *nxtool checkpatch file* > > Now I've dug the mailing archive and found that nxtool, or similar > projects > > were proposed in the past, such as > > https://gitlab.com/nuttx-upm/upm or > > https://gitlab.com/nuttx_projects/nuttx_workspace_manager > > But both of them seem abandoned or not actively worked on. > > I feel like I'm missing some info regarding the work I'm doing. > > Why did the work stop, what was the issue with them? > > I saw mentions of zephyr meta-tool west, and they weren't bad, or against > > tools alike. > > > > So my question basically is, what is the take of the nuttx community > python > > based meta-tool? > > > > 2. > > Although I've already started investing time in this, I'm not sure how > much > > effort the nuttx community is willing to invest for enforcing > > this custom coding style in favor of using clang-format and gnu style. > > If I'm to add a new tool for enforcing nuttx coding style, I'd like to > know > > that there is no talk about deprecating this work. > > > > *--- Cosing words ---* > > > > As mentioned previously, please reply with any proposals, ideas, thoughts > > you have for such a tool, if any, > > or any counter arguments you may have. > >