//===--- CodeCompletionStrings.h ---------------------------------*- C++-*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===---------------------------------------------------------------------===// // // Functions for retrieving code completion information from // `CodeCompletionString`. // //===---------------------------------------------------------------------===// #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANGD_CODECOMPLETIONSTRINGS_H #define LLVM_CLANG_TOOLS_EXTRA_CLANGD_CODECOMPLETIONSTRINGS_H #include "clang/Sema/CodeCompleteConsumer.h" namespace clang { namespace clangd { /// Gets label and insert text for a completion item. For example, for function /// `Foo`, this returns <"Foo(int x, int y)", "Foo"> without snippts enabled. /// /// If \p EnableSnippets is true, this will try to use snippet for the insert /// text. Otherwise, the insert text will always be plain text. void getLabelAndInsertText(const CodeCompletionString &CCS, std::string *Label, std::string *InsertText, bool EnableSnippets); /// Gets the documentation for a completion item. For example, comment for the /// a class declaration. std::string getDocumentation(const CodeCompletionString &CCS); /// Gets detail to be used as the detail field in an LSP completion item. This /// is usually the return type of a function. std::string getDetail(const CodeCompletionString &CCS); /// Gets the piece of text that the user is expected to type to match the /// code-completion string, typically a keyword or the name of a declarator or /// macro. std::string getFilterText(const CodeCompletionString &CCS); } // namespace clangd } // namespace clang #endif