carlosgalvezp added a comment.

Thanks for the feedback!

> Can you explain the reasoning of why this approach is better than current 
> approach where checks can use global 
> options(`Options.getLocalOrGlobal("HeaderFileExtensions", 
> utils::defaultHeaderFileExtensions())`) to access the same information?

Nice, I wasn't aware of the  `getLocalOrGlobal` function. It's unclear to me 
why some arguments are available via both command line and config, and others 
only via config. If there is no use case for CLI interface I agree the global 
option is sufficient, but I would like to properly document it. There's for 
example the option `User: user` that is undocumented. Perhaps I can restructure 
a bit the section `Configuration files`?

> Some checks also have the global option `ImplementationFileExtensions`, 
> what's the proposal with that. Should checks that use this functionality 
> carry on like that, use a negative match of this proposed option or should we 
> also add that option to the `ClangTidyOptions`.

For consistency I believe it makes sense to add it as well as a global option.

> What is the migration plan for code-bases that currently use the old 
> check-based option? We can't break their existing configs, likewise we have 
> to be careful of projects with checked-in .clang-tidy files that make use of 
> this new option when maintainers may still have an older version of 
> clang-tidy.

We would follow a deprecation strategy. For example, we document in every check 
that the current options are deprecated, and users should instead use the 
global config. The local config can be removed after 2 clang releases (that 
would mean clang 18 here). Using `getLocalOrGlobal` should simplify the logic 
of supporting the transition I believe.

> Finally, Why would you make the option a semicolon delimited string. The only 
> reason that's used for the current `CheckOptions` is there isn't currently a 
> better alternative, For `ClangTidyOptions` we could set the type to be an 
> `Optional<std::vector<std::string>>`. This would be more natural when writing 
> the yaml file.

Absolutely! The current format is very strange to me, but I kept it to keep the 
patch as minimal as possible. A vector of strings looks great.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D141000/new/

https://reviews.llvm.org/D141000

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to