//===----- CodeCompletion.h - Code Completion for ClangRepl ---===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This file defines the classes which performs code completion at the REPL. // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_INTERPRETER_CODE_COMPLETION_H #define LLVM_CLANG_INTERPRETER_CODE_COMPLETION_H #include #include namespace llvm { class StringRef; } // namespace llvm namespace clang { class CodeCompletionResult; class CompilerInstance; struct ReplCodeCompleter { ReplCodeCompleter() = default; std::string Prefix; /// \param InterpCI [in] The compiler instance that is used to trigger code /// completion /// \param Content [in] The string where code completion is triggered. /// \param Line [in] The line number of the code completion point. /// \param Col [in] The column number of the code completion point. /// \param ParentCI [in] The running interpreter compiler instance that /// provides ASTContexts. /// \param CCResults [out] The completion results. void codeComplete(CompilerInstance *InterpCI, llvm::StringRef Content, unsigned Line, unsigned Col, const CompilerInstance *ParentCI, std::vector &CCResults); }; } // namespace clang #endif