[clang-tools-extra] [clangd] [C++20] [Modules] Support code complete for C++20 modules (PR #110083)
via cfe-commits
cfe-commits at lists.llvm.org
Wed Sep 25 22:53:38 PDT 2024
github-actions[bot] wrote:
<!--LLVM CODE FORMAT COMMENT: {clang-format}-->
:warning: C/C++ code formatter, clang-format found issues in your code. :warning:
<details>
<summary>
You can test this locally with the following command:
</summary>
``````````bash
git-clang-format --diff 2b0a708f41dd6291ee744704d43febc975e3d026 e35e600159c99736de7d2bc735c738002f592988 --extensions h,cpp -- clang-tools-extra/clangd/CodeComplete.cpp clang-tools-extra/clangd/CodeComplete.h clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/clang-tools-extra/clangd/CodeComplete.cpp b/clang-tools-extra/clangd/CodeComplete.cpp
index f6f0d9a1be..96851ff901 100644
--- a/clang-tools-extra/clangd/CodeComplete.cpp
+++ b/clang-tools-extra/clangd/CodeComplete.cpp
@@ -891,8 +891,7 @@ static bool isExcludedMember(const NamedDecl &D) {
// Generally the fields and methods of this object should only be used from
// within the callback.
struct CompletionRecorder : public CodeCompleteConsumer {
- CompletionRecorder(const CodeCompleteOptions &Opts,
- bool ForceLoadExternal,
+ CompletionRecorder(const CodeCompleteOptions &Opts, bool ForceLoadExternal,
llvm::unique_function<void()> ResultsCallback)
: CodeCompleteConsumer(Opts.getClangCompleteOpts(ForceLoadExternal)),
CCContext(CodeCompletionContext::CCC_Other), Opts(Opts),
@@ -1411,7 +1410,8 @@ bool semaCodeComplete(std::unique_ptr<CodeCompleteConsumer> Consumer,
Clang->setCodeCompletionConsumer(Consumer.release());
if (Input.Preamble.RequiredModules)
- Input.Preamble.RequiredModules->adjustHeaderSearchOptions(Clang->getHeaderSearchOpts());
+ Input.Preamble.RequiredModules->adjustHeaderSearchOptions(
+ Clang->getHeaderSearchOpts());
SyntaxOnlyAction Action;
if (!Action.BeginSourceFile(*Clang, Clang->getFrontendOpts().Inputs[0])) {
@@ -1633,15 +1633,16 @@ public:
SpecFuzzyFind->Result = startAsyncFuzzyFind(*Opts.Index, *SpecReq);
}
- // FIXME: If we're using C++20 modules, force the lookup process to load external decls,
- // since currently the index doesn't support C++20 modules.
+ // FIXME: If we're using C++20 modules, force the lookup process to load
+ // external decls, since currently the index doesn't support C++20 modules.
bool ForceLoadExternal = (bool)SemaCCInput.Preamble.RequiredModules;
// We run Sema code completion first. It builds an AST and calculates:
// - completion results based on the AST.
// - partial identifier and context. We need these for the index query.
CodeCompleteResult Output;
- auto RecorderOwner = std::make_unique<CompletionRecorder>(Opts, ForceLoadExternal, [&]() {
+ auto RecorderOwner = std::make_unique<
+ CompletionRecorder>(Opts, ForceLoadExternal, [&]() {
assert(Recorder && "Recorder is not set");
CCContextKind = Recorder->CCContext.getKind();
IsUsingDeclaration = Recorder->CCContext.isUsingDeclaration();
@@ -1699,8 +1700,9 @@ public:
Recorder = RecorderOwner.get();
- semaCodeComplete(std::move(RecorderOwner), Opts.getClangCompleteOpts(ForceLoadExternal),
- SemaCCInput, &Includes);
+ semaCodeComplete(std::move(RecorderOwner),
+ Opts.getClangCompleteOpts(ForceLoadExternal), SemaCCInput,
+ &Includes);
logResults(Output, Tracer);
return Output;
}
@@ -2116,7 +2118,8 @@ private:
} // namespace
-clang::CodeCompleteOptions CodeCompleteOptions::getClangCompleteOpts(bool ForceLoadExternal) const {
+clang::CodeCompleteOptions
+CodeCompleteOptions::getClangCompleteOpts(bool ForceLoadExternal) const {
clang::CodeCompleteOptions Result;
Result.IncludeCodePatterns = EnableSnippets;
Result.IncludeMacros = true;
diff --git a/clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp b/clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
index f1cdf9e899..d7f26f1020 100644
--- a/clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
+++ b/clang-tools-extra/clangd/unittests/PrerequisiteModulesTest.cpp
@@ -435,7 +435,7 @@ void func() {
/*Callback=*/nullptr);
EXPECT_TRUE(Preamble);
EXPECT_TRUE(Preamble->RequiredModules);
-
+
auto Result = codeComplete(getFullPath("Use.cpp"), Test.point(),
Preamble.get(), Use, {});
EXPECT_FALSE(Result.Completions.empty());
``````````
</details>
https://github.com/llvm/llvm-project/pull/110083
More information about the cfe-commits
mailing list