[llvm-dev] Creating my own “clang-format” style that can be used across multiple projects with the “BasedOnStyle” setting

Timothy Wrona via llvm-dev llvm-dev at lists.llvm.org
Tue Dec 29 14:18:01 PST 2020


Thanks Nathan, I believe that would suit my needs pretty well!

It still feels a bit rigid if it just expects files to be in specific
directories (C++ project structures tend to vary wildly haha). I would
ultimately like to be able to specify a relative path in my CMakeLists file
to tell it where to look for a .clang-format or .clang-tidy file. But
either way I think I can achieve what I need with the proposed enhancement.
:)

Thanks,
Tim

On Tue, Dec 29, 2020 at 2:31 PM Nathan James <n.james93 at hotmail.co.uk>
wrote:

> Hi Timothy,
>
> There is a patch in flight - https://reviews.llvm.org/D93844.
> It doesn't specifically address this problem, but it it lands, you
> could adapt it to work for your needs.
> You could have a `.clang-format` file in the common subdirectory of all
> your projects, then any `.clang-format` file in the individual
> projects, could Base themselves off that root style.
>
> Maybe this is merit for clang-format BasedOnStyle to also accept a path
> to another `.clang-format` file. Likely this could either be absolute
> or relative to either the `.clang-format` file or if the style was read
> from the command line, relative to the CWD.
>
> Before moving forward a strict set of semantics need establishing with
> how these features interop with each other.
> We would also need to ensure people don't try stupid things like
> BasedOnStyle referring to the same file, or 2 files BasedOnStyle
> pointing to each other. Both would likely result in an infinite loop
> and so instead should report an error to the user.
>
> ~Nathan James
>
> On Mon, 2020-12-28 at 18:18 -0800, David Blaikie via llvm-dev wrote:
> > +MyDeveloper Day  who seems to be contributing to/reviewing clang-
> > format patches these days
> >
> > Sounds like a nice to have feature - you can file feature requests in
> > the LLVM bugzilla (bugs.llvm.org). (perhaps it's already possible,
> > but I don't know enough about clang-format to say)
> >
> > On Sun, Dec 20, 2020 at 4:29 PM Timothy Wrona via llvm-dev <
> > llvm-dev at lists.llvm.org> wrote:
> > > Hi,
> > >
> > > This is my first time reaching out to the llvm mailing list so I
> > > apologize if this is not the correct place to ask a question like
> > > this. (If it isn't please let me know where I should post this
> > > question.)
> > >
> > > I have multiple projects that I want to share a similar clang-
> > > format style, but I also want to be able to make minor tweaks
> > > between each project so they can be slightly different from one
> > > another if needed. Currently each project just has the same .clang-
> > > format file copied and pasted into its own repository, but it feels
> > > wrong because all of the style options are just duplicated from
> > > project to project and if I need to change one option I need to go
> > > across all projects and manually change it in all of them.
> > >
> > > I would like to create my own style that can be used with the
> > > "BasedOnStyle" option. That way I can specify that I want all of
> > > these projects to be based on the same custom style that would be
> > > kept in a shared location, and then I could easily override any
> > > project specific options on a per-project basis.
> > >
> > > I looked through the documentation and as far as I can tell, there
> > > doesn't appear to be any way to create your own style and save it
> > > so other projects can be based on the same style. I feel like this
> > > is something a lot of users would need (for example if a company
> > > wanted to define their own master style that all projects should
> > > follow).
> > >
> > > Is there any way to do this? And if not, how could I go about
> > > requesting such a feature be added?
> > >
> > > Thanks,
> > >
> > > Tim
> > >
> > > _______________________________________________
> > > LLVM Developers mailing list
> > > llvm-dev at lists.llvm.org
> > > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
> >
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20201229/0b5ab604/attachment.html>


More information about the llvm-dev mailing list