dsanders11 added a comment.

Cool stuff! Chiming in randomly here, but I've been keeping a loose eye on the 
progress of IncludeCleaner.

I've been using IncludeCleaner to power include cleanup in the Chromium code 
base for the past few months, and have built Python scripts around it so I can 
more efficiently use it at a code base level. You can find all that fun stuff 
on my repo: https://github.com/dsanders11/chromium-include-cleanup

In my usages, I've found there are three categories of ignores I need (you can 
see my ongoing list of them in the config file: 
https://github.com/dsanders11/chromium-include-cleanup/blob/main/configs/chromium.json):

- Skip over a file entirely and don't provide any diagnostics for it. This is 
useful to ignore umbrella headers, without needing to ignore the headers 
included in that umbrella header.
- Ignore diagnostics for a particular header, which is what is implemented here 
so far.
- Ignore an include edge (filename, header). This is useful for cases where 
it's a spurious diagnostic, like when the usage is inside of a macro 
definition, so IncludeCleaner thinks it is unused but it is not.

This isn't entirely applicable here, but could be insightful: I initially I had 
my filtering mechanism in the script which ran clangd over the source files, 
but I found that it was better for my needs to decouple the filtering from the 
generating the diagnostics. Main reason being that generating the diagnostics 
for all 80k files in the Chromium code base takes hours to run, so if I found 
some new ignores I wanted to add, I'd have to do another 7 hour run (on the 
hardware I'm using), which wasn't efficient. So I let the many script output 
all diagnostics, and then I filter after the fact, letting me tweak the 
filtering without needing to re-run the whole thing. So for my own needs I'll 
probably stick with doing the filtering after the fact, even if it's built-in. 
Not too applicable for IncludeCleaner usage through say VS Code, but there are 
different challenges when doing it at code base level.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D123488

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

Reply via email to