diff options
author | David Goldman <davg@google.com> | 2023-06-27 14:16:13 -0400 |
---|---|---|
committer | David Goldman <davg@google.com> | 2023-06-27 16:25:40 -0400 |
commit | a42ce094d90341f88a845740b2e5783060f23e3e (patch) | |
tree | d4b72a2d04353147f1e29a9f48a988c101f66143 /clang/lib/Sema/SemaCodeComplete.cpp | |
parent | 9fdde69f72f6145d220645d1b218b4c6f2be2c13 (diff) | |
download | llvm-a42ce094d90341f88a845740b2e5783060f23e3e.zip llvm-a42ce094d90341f88a845740b2e5783060f23e3e.tar.gz llvm-a42ce094d90341f88a845740b2e5783060f23e3e.tar.bz2 |
[clang][Sema] Add CodeCompletionContext::CCC_ObjCClassForwardDecl
- Use this new context in Sema to limit completions to seen ObjC class
names
- Use this new context in clangd to disable include insertions when
completing ObjC forward decls
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D150978
Diffstat (limited to 'clang/lib/Sema/SemaCodeComplete.cpp')
-rw-r--r-- | clang/lib/Sema/SemaCodeComplete.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/lib/Sema/SemaCodeComplete.cpp b/clang/lib/Sema/SemaCodeComplete.cpp index 8c16657..b5d29b2 100644 --- a/clang/lib/Sema/SemaCodeComplete.cpp +++ b/clang/lib/Sema/SemaCodeComplete.cpp @@ -8460,6 +8460,24 @@ void Sema::CodeCompleteObjCInterfaceDecl(Scope *S) { Results.data(), Results.size()); } +void Sema::CodeCompleteObjCClassForwardDecl(Scope *S) { + ResultBuilder Results(*this, CodeCompleter->getAllocator(), + CodeCompleter->getCodeCompletionTUInfo(), + CodeCompletionContext::CCC_ObjCClassForwardDecl); + Results.EnterNewScope(); + + if (CodeCompleter->includeGlobals()) { + // Add all classes. + AddInterfaceResults(Context.getTranslationUnitDecl(), CurContext, false, + false, Results); + } + + Results.ExitScope(); + + HandleCodeCompleteResults(this, CodeCompleter, Results.getCompletionContext(), + Results.data(), Results.size()); +} + void Sema::CodeCompleteObjCSuperclass(Scope *S, IdentifierInfo *ClassName, SourceLocation ClassNameLoc) { ResultBuilder Results(*this, CodeCompleter->getAllocator(), |