Shiakaron wrote:

> > > While I absolutely share this sorting, it is already possible with the 
> > > regexes and the priorities without any doubt or confusion.
> > 
> > 
> > @HazardyKnusperkeks I have tried to achieve this using regexes and 
> > priorities but could only go far due to the iterative nature of this 
> > sorting. This is what we have, which fails to replicate the desired logic:
> > ```
> > IncludeCategories:
> >   - Regex: '^[^/]*$'
> >     SortPriority: 0
> >   - Regex: '^[^/]*/[^/]*$'
> >     SortPriority: 1
> >   - Regex: '^[^/]*(/[^/]*){2}$'
> >     SortPriority: 2
> >   - Regex: '^[^/]*(/[^/]*){3}$'
> >     SortPriority: 3
> >   - Regex: '^[^/]*(/[^/]*){4}$'
> >     SortPriority: 4
> >   - Regex: '^[^/]*(/[^/]*){5}$'
> >     SortPriority: 5
> > ```
> > 
> > 
> >     
> >       
> >     
> > 
> >       
> >     
> > 
> >     
> >   
> > Is it possible for you to share your clang format settings? I would be so 
> > happy if this is really possible with the regexes and sort priorities
> 
> This is what I have for that priority:
> 
> ```
>   - Regex:           '^"\.\./\.\./.*'
>     Priority:        10
>     SortPriority:    14
>     CaseSensitive:   false
>   - Regex:           '^"\.\./[^/]+/.*'
>     Priority:        10
>     SortPriority:    13
>     CaseSensitive:   false
>   - Regex:           '^"\.\./.*'
>     Priority:        10
>     SortPriority:    12
>     CaseSensitive:   false
>   - Regex:           '^".*/'
>     Priority:        10
>     SortPriority:    11
>     CaseSensitive:   false
>   - Regex:           '^".*'
>     Priority:        10
>     SortPriority:    10
>     CaseSensitive:   false
> ```
> 
> Yeah of course that is repetitive, depending on how many levels you want to 
> support. But on any given code base the levels are finite, you could even 
> write a small script to generate the needed configuration.

@HazardyKnusperkeks Ok it seems we have gone for the same sort of approach, 
just a bit different since we don't use `../` in our paths. 

However, I would still argue the sorting I am going for in this change is 
substantially different and it cannot be achieved using the 
`IncludeCategories`, because, irrespective on the levels in your project, you 
can have an "unlimited" number of categories. I will come back with a concrete 
example that will make my case much more clearer.

https://github.com/llvm/llvm-project/pull/208954
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to