Nathan James via llvm-dev
2020-Dec-29 19:31 UTC
[llvm-dev] Creating my own “clang-format” style that can be used across multiple projects with the “BasedOnStyle” setting
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
Timothy Wrona via llvm-dev
2020-Dec-29 22:18 UTC
[llvm-dev] Creating my own “clang-format” style that can be used across multiple projects with the “BasedOnStyle” setting
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>