Skip to content

Commit 914e63c

Browse files
committed
support code snippet completion
1 parent 2626cd4 commit 914e63c

File tree

1 file changed

+29
-2
lines changed

1 file changed

+29
-2
lines changed

clang/lib/Sema/SemaCodeComplete.cpp

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6753,12 +6753,39 @@ void SemaCodeCompletion::CodeCompleteIfConst(Scope *S) const {
67536753
ResultBuilder Results(SemaRef, CodeCompleter->getAllocator(),
67546754
CodeCompleter->getCodeCompletionTUInfo(),
67556755
CodeCompletionContext::CCC_Other);
6756+
CodeCompletionBuilder Builder(Results.getAllocator(), Results.getCodeCompletionTUInfo());
67566757
Results.EnterNewScope();
67576758
if (getLangOpts().CPlusPlus17) {
6758-
Results.AddResult(CodeCompletionResult("constexpr"));
6759+
if (Results.includeCodePatterns()) {
6760+
Builder.AddTypedTextChunk("constexpr");
6761+
Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace);
6762+
Builder.AddChunk(CodeCompletionString::CK_LeftParen);
6763+
Builder.AddPlaceholderChunk("condition");
6764+
Builder.AddChunk(CodeCompletionString::CK_RightParen);
6765+
Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace);
6766+
Builder.AddChunk(CodeCompletionString::CK_LeftBrace);
6767+
Builder.AddChunk(CodeCompletionString::CK_VerticalSpace);
6768+
Builder.AddPlaceholderChunk("statements");
6769+
Builder.AddChunk(CodeCompletionString::CK_VerticalSpace);
6770+
Builder.AddChunk(CodeCompletionString::CK_RightBrace);
6771+
Results.AddResult({Builder.TakeString()});
6772+
} else {
6773+
Results.AddResult({"constexpr"});
6774+
}
67596775
}
67606776
if (getLangOpts().CPlusPlus23) {
6761-
Results.AddResult(CodeCompletionResult("consteval"));
6777+
if (Results.includeCodePatterns()) {
6778+
Builder.AddTypedTextChunk("consteval");
6779+
Builder.AddChunk(CodeCompletionString::CK_HorizontalSpace);
6780+
Builder.AddChunk(CodeCompletionString::CK_LeftBrace);
6781+
Builder.AddChunk(CodeCompletionString::CK_VerticalSpace);
6782+
Builder.AddPlaceholderChunk("statements");
6783+
Builder.AddChunk(CodeCompletionString::CK_VerticalSpace);
6784+
Builder.AddChunk(CodeCompletionString::CK_RightBrace);
6785+
Results.AddResult({Builder.TakeString()});
6786+
} else {
6787+
Results.AddResult({"consteval"});
6788+
}
67626789
}
67636790
Results.ExitScope();
67646791

0 commit comments

Comments
 (0)