clang-tools 20.0.0git
|
#include <CodeComplete.h>
Classes | |
struct | IncludeInsertionIndicator |
A visual indicator to prepend to the completion label to indicate whether completion result would trigger an #include insertion or not. More... | |
Public Types | |
enum | IncludeInsertion { IWYU , NeverInsert } |
enum | CodeCompletionParse { AlwaysParse , ParseIfReady , NeverParse } |
Whether to use the clang parser, or fallback to text-based completion (using identifiers in the current file and symbol indexes). More... | |
enum | CodeCompletionRankingModel { Heuristics , DecisionForest } |
Model to use for ranking code completion candidates. More... | |
Public Member Functions | |
clang::CodeCompleteOptions | getClangCompleteOpts () const |
Returns options that can be passed to clang's completion engine. | |
Public Attributes | |
bool | EnableSnippets = false |
When true, completion items will contain expandable code snippets in completion (e.g. | |
bool | IncludeIneligibleResults = false |
Include results that are not legal completions in the current context. | |
bool | ForceLoadPreamble = false |
Force sema to load decls from preamble even if an index is provided. | |
std::optional< bool > | BundleOverloads |
Combine overloads into a single completion item where possible. | |
size_t | Limit = 0 |
Limit the number of results returned (0 means no limit). | |
MarkupKind | DocumentationFormat = MarkupKind::PlainText |
Whether to present doc comments as plain-text or markdown. | |
enum clang::clangd::CodeCompleteOptions::IncludeInsertion | InsertIncludes = IncludeInsertion::IWYU |
bool | ImportInsertions = false |
Whether include insertions for Objective-C code should use #import instead of #include. | |
struct clang::clangd::CodeCompleteOptions::IncludeInsertionIndicator | IncludeIndicator |
bool | ShowOrigins = false |
Expose origins of completion items in the label (for debugging). | |
const SymbolIndex * | Index = nullptr |
If Index is set, it is used to augment the code completion results. | |
const ASTSignals * | MainFileSignals = nullptr |
bool | IncludeFixIts = false |
Include completions that require small corrections, e.g. | |
bool | AllScopes = false |
Whether to include index symbols that are not defined in the scopes visible from the code completion point. | |
Config::ArgumentListsPolicy | ArgumentLists |
The way argument list on calls '()' and generics '<>' are handled. | |
enum clang::clangd::CodeCompleteOptions::CodeCompletionParse | RunParser = ParseIfReady |
std::function< void(const CodeCompletion &, const SymbolQualitySignals &, const SymbolRelevanceSignals &, float Score)> | RecordCCResult |
Callback invoked on all CompletionCandidate after they are scored and before they are ranked (by -Score). | |
CodeCompletionRankingModel | RankingModel = DefaultRankingModel |
std::function< DecisionForestScores(const SymbolQualitySignals &, const SymbolRelevanceSignals &, float Base)> | DecisionForestScorer = &evaluateDecisionForest |
Callback used to score a CompletionCandidate if DecisionForest ranking model is enabled. | |
float | DecisionForestBase = 1.3f |
Weight for combining NameMatch and Prediction of DecisionForest. | |
Static Public Attributes | |
static const CodeCompletionRankingModel | DefaultRankingModel = CodeCompleteOptions::Heuristics |
Definition at line 43 of file CodeComplete.h.
Whether to use the clang parser, or fallback to text-based completion (using identifiers in the current file and symbol indexes).
Definition at line 118 of file CodeComplete.h.
Model to use for ranking code completion candidates.
Enumerator | |
---|---|
Heuristics | |
DecisionForest |
Definition at line 140 of file CodeComplete.h.
Enumerator | |
---|---|
IWYU | |
NeverInsert |
Definition at line 74 of file CodeComplete.h.
clang::CodeCompleteOptions clang::clangd::CodeCompleteOptions::getClangCompleteOpts | ( | ) | const |
Returns options that can be passed to clang's completion engine.
Definition at line 2124 of file CodeComplete.cpp.
bool clang::clangd::CodeCompleteOptions::AllScopes = false |
Whether to include index symbols that are not defined in the scopes visible from the code completion point.
This applies in contexts without explicit scope qualifiers.
Such completions can insert scope qualifiers.
Definition at line 110 of file CodeComplete.h.
Config::ArgumentListsPolicy clang::clangd::CodeCompleteOptions::ArgumentLists |
The way argument list on calls '()' and generics '<>' are handled.
Definition at line 113 of file CodeComplete.h.
std::optional<bool> clang::clangd::CodeCompleteOptions::BundleOverloads |
Combine overloads into a single completion item where possible.
If none, the implementation may choose an appropriate behavior. (In practice, ClangdLSPServer enables bundling if the client claims to supports signature help).
Definition at line 65 of file CodeComplete.h.
Referenced by clang::clangd::clangdMain().
float clang::clangd::CodeCompleteOptions::DecisionForestBase = 1.3f |
Weight for combining NameMatch and Prediction of DecisionForest.
CompletionScore is NameMatch * pow(Base, Prediction). The optimal value of Base largely depends on the semantics of the model and prediction score (e.g. algorithm used during training, number of trees, etc.). Usually if the range of Prediction is [-20, 20] then a Base in [1.2, 1.7] works fine. Semantics: E.g. For Base = 1.3, if the Prediction score reduces by 2.6 points then completion score reduces by 50% or 1.3^(-2.6).
Definition at line 162 of file CodeComplete.h.
std::function<DecisionForestScores( const SymbolQualitySignals &, const SymbolRelevanceSignals &, float Base)> clang::clangd::CodeCompleteOptions::DecisionForestScorer = &evaluateDecisionForest |
Callback used to score a CompletionCandidate if DecisionForest ranking model is enabled.
This allows us to inject experimental models and compare them with baseline model using A/B testing.
Definition at line 153 of file CodeComplete.h.
|
static |
Definition at line 144 of file CodeComplete.h.
MarkupKind clang::clangd::CodeCompleteOptions::DocumentationFormat = MarkupKind::PlainText |
Whether to present doc comments as plain-text or markdown.
Definition at line 72 of file CodeComplete.h.
bool clang::clangd::CodeCompleteOptions::EnableSnippets = false |
When true, completion items will contain expandable code snippets in completion (e.g.
return ${1:expression}
or `foo(${1:int a}, ${2:int b})).
Definition at line 50 of file CodeComplete.h.
Referenced by LLVMFuzzerTestOneInput().
bool clang::clangd::CodeCompleteOptions::ForceLoadPreamble = false |
Force sema to load decls from preamble even if an index is provided.
This is helpful for cases the index can't provide symbols, e.g. with experimental c++20 modules
Definition at line 59 of file CodeComplete.h.
Referenced by clang::clangd::clangdMain().
bool clang::clangd::CodeCompleteOptions::ImportInsertions = false |
Whether include insertions for Objective-C code should use #import instead of #include.
Definition at line 81 of file CodeComplete.h.
Referenced by clang::clangd::clangdMain().
bool clang::clangd::CodeCompleteOptions::IncludeFixIts = false |
Include completions that require small corrections, e.g.
change '.' to '->' on member access etc.
Definition at line 103 of file CodeComplete.h.
struct clang::clangd::CodeCompleteOptions::IncludeInsertionIndicator clang::clangd::CodeCompleteOptions::IncludeIndicator |
Referenced by clang::clangd::clangdMain().
bool clang::clangd::CodeCompleteOptions::IncludeIneligibleResults = false |
Include results that are not legal completions in the current context.
For example, private members are usually inaccessible.
Definition at line 54 of file CodeComplete.h.
Referenced by clang::clangd::clangdMain().
const SymbolIndex* clang::clangd::CodeCompleteOptions::Index = nullptr |
If Index
is set, it is used to augment the code completion results.
FIXME(ioeric): we might want a better way to pass the index around inside clangd.
Definition at line 98 of file CodeComplete.h.
enum clang::clangd::CodeCompleteOptions::IncludeInsertion clang::clangd::CodeCompleteOptions::InsertIncludes = IncludeInsertion::IWYU |
Referenced by clang::clangd::clangdMain().
size_t clang::clangd::CodeCompleteOptions::Limit = 0 |
Limit the number of results returned (0 means no limit).
If more results are available, we set CompletionList.isIncomplete.
Definition at line 69 of file CodeComplete.h.
Referenced by clang::clangd::clangdMain().
const ASTSignals* clang::clangd::CodeCompleteOptions::MainFileSignals = nullptr |
Definition at line 100 of file CodeComplete.h.
CodeCompletionRankingModel clang::clangd::CodeCompleteOptions::RankingModel = DefaultRankingModel |
Definition at line 145 of file CodeComplete.h.
Referenced by clang::clangd::clangdMain().
std::function<void(const CodeCompletion &, const SymbolQualitySignals &, const SymbolRelevanceSignals &, float Score)> clang::clangd::CodeCompleteOptions::RecordCCResult |
Callback invoked on all CompletionCandidate after they are scored and before they are ranked (by -Score).
Thus the results are yielded in arbitrary order.
This callbacks allows capturing various internal structures used by clangd during code completion. Eg: Symbol quality and relevance signals.
Definition at line 137 of file CodeComplete.h.
enum clang::clangd::CodeCompleteOptions::CodeCompletionParse clang::clangd::CodeCompleteOptions::RunParser = ParseIfReady |
Referenced by clang::clangd::clangdMain().
bool clang::clangd::CodeCompleteOptions::ShowOrigins = false |
Expose origins of completion items in the label (for debugging).
Definition at line 91 of file CodeComplete.h.
Referenced by clang::clangd::clangdMain().