[PATCH] D114072: [clangd] Record IWYU pragma keep in the IncludeStructure
Kadir Cetinkaya via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Wed Dec 8 02:09:41 PST 2021
kadircet added inline comments.
================
Comment at: clang-tools-extra/clangd/Headers.cpp:126
+ bool HandleComment(Preprocessor &PP, SourceRange Range) override {
+ if (!isInsideMainFile(Range.getBegin(), SM) || Range.getBegin().isMacroID())
+ return false;
----------------
we're already keeping track of being inside builtinfile today, through `FileChanged` callbacks, can you also keep track of being inside main file rather than doing the check for each comment we hit?
================
Comment at: clang-tools-extra/clangd/Headers.cpp:149
+ // The last line "IWYU pragma: keep" was seen in the main file.
+ int PragmaKeepInMainFile = -1;
};
----------------
maybe `LastPragmaKeepInMainFileLine` also mention in the comments that this is 0-indexed?
================
Comment at: clang-tools-extra/clangd/Headers.h:130
+ // IWYU pragmas but it needs to be explicitly added to as a preprocessor
+ // comment handler. PP wants to own the PPCallbacks, so the typical way to
+ // do both is:
----------------
kbobyrev wrote:
> sammccall wrote:
> > Alternatively we could just give up on having a pure-ish API and say `void collect(Preprocessor&)`.
> > Again there's not really any other sensible way to use it.
> `PrecompiledPreamble.cpp` requires PPCallbacks being returned directly, so I think we can't easily have `void IncludeStructure::collect(PP &).
as discussed offline let's do that inside `BeforeExecute` callback.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D114072/new/
https://reviews.llvm.org/D114072
More information about the cfe-commits
mailing list