njames93 marked 6 inline comments as done.
njames93 added inline comments.

================
Comment at: clang-tools-extra/clangd/ParsedAST.cpp:303
       E.instantiate()->addCheckFactories(CTFactories);
-    CTContext.emplace(std::make_unique<tidy::DefaultOptionsProvider>(
-        tidy::ClangTidyGlobalOptions(), Inputs.Opts.ClangTidyOpts));
+    CTContext.emplace(asClangTidyOptionsProvider(
+        Inputs.ClangTidyProvider ? Inputs.ClangTidyProvider : 
emptyTidyProvider,
----------------
sammccall wrote:
> do you think we should just directly/eagerly create the clang-tidy config 
> here, and wrap it in a provider that always returns it?
> (with a check that the requested filename matches, see other comment)
> 
> Now that I understand why CTContext is lazy, I'm not sure we're benefitting 
> from it.
Kind of how it is set already out with a DefaultOptionsProvider?


================
Comment at: clang-tools-extra/clangd/TidyProvider.h:25
+                                   /*Priority=*/unsigned &,
+                                   /*CWD*/ PathRef);
+} // namespace detail
----------------
sammccall wrote:
> njames93 wrote:
> > sammccall wrote:
> > > we should always be passing an absolute path, so CWD shouldn't be needed.
> > > 
> > > I'm a bit surprised that ParsedAST::build doesn't assert that (though it 
> > > calls PreamblePatch::create, which does). Feel free to add it!
> > While clangd may always use absolute paths, clang-tidy may not. Checks are 
> > able to query the context and get options for other files.
> > When I put asserts on the Filename being absolute, things started failing.
> Ah, learn something new and horrifying every day!
> 
> AFAICT the only thing that actually does this is is 
> readability/IdentifierNamingCheck, which looks like it uses the style of the 
> file where an identifier is declared to check its name.
> Our intent is very much that we're running clang-tidy strictly limited to the 
> current file. The clangd config certainly doesn't support querying config for 
> other files.
> 
> I think we should really only expose the current file config, and return 
> empty config when asked for any other file.
> We can have the TidyConfigAdapter do this, I think.
> (Slight catch: we want getConfigForFile("rel/path/to/current/file.cpp") to 
> work, for IdentifierNamingCheck. I think if it's a relative path, we can just 
> check whether the basename matches - shouldn't have too many matches)
That option in IdentifierNamingCheck is itself controlled by an option, we 
could just subvert that option in disableUnusableChecks as a, somewhat dirty, 
fix.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D91029

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

Reply via email to