clang-tools
15.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. More... | |
Public Attributes | |
bool | EnableSnippets = false |
When true, completion items will contain expandable code snippets in completion (e.g. More... | |
bool | IncludeIneligibleResults = false |
Include results that are not legal completions in the current context. More... | |
llvm::Optional< bool > | BundleOverloads |
Combine overloads into a single completion item where possible. More... | |
size_t | Limit = 0 |
Limit the number of results returned (0 means no limit). More... | |
MarkupKind | DocumentationFormat = MarkupKind::PlainText |
Whether to present doc comments as plain-text or markdown. More... | |
enum clang::clangd::CodeCompleteOptions::IncludeInsertion | InsertIncludes = IncludeInsertion::IWYU |
struct clang::clangd::CodeCompleteOptions::IncludeInsertionIndicator | IncludeIndicator |
bool | ShowOrigins = false |
Expose origins of completion items in the label (for debugging). More... | |
const SymbolIndex * | Index = nullptr |
If Index is set, it is used to augment the code completion results. More... | |
const ASTSignals * | MainFileSignals = nullptr |
bool | IncludeFixIts = false |
Include completions that require small corrections, e.g. More... | |
bool | EnableFunctionArgSnippets = true |
Whether to generate snippets for function arguments on code-completion. More... | |
bool | AllScopes = false |
Whether to include index symbols that are not defined in the scopes visible from the code completion point. More... | |
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). More... | |
enum clang::clangd::CodeCompleteOptions::CodeCompletionRankingModel | RankingModel = DecisionForest |
std::function< DecisionForestScores(const SymbolQualitySignals &, const SymbolRelevanceSignals &, float Base)> | DecisionForestScorer = &evaluateDecisionForest |
Callback used to score a CompletionCandidate if DecisionForest ranking model is enabled. More... | |
float | DecisionForestBase = 1.3f |
Weight for combining NameMatch and Prediction of DecisionForest. More... | |
Definition at line 41 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 107 of file CodeComplete.h.
Model to use for ranking code completion candidates.
Enumerator | |
---|---|
Heuristics | |
DecisionForest |
Definition at line 129 of file CodeComplete.h.
Enumerator | |
---|---|
IWYU | |
NeverInsert |
Definition at line 67 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 1908 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 103 of file CodeComplete.h.
llvm::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 58 of file CodeComplete.h.
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 Prediciton is [-20, 20] then a Base in [1.2, 1.7] works fine. Semantics: E.g. For Base = 1.3, if the Prediciton score reduces by 2.6 points then completion score reduces by 50% or 1.3^(-2.6).
Definition at line 149 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 140 of file CodeComplete.h.
MarkupKind clang::clangd::CodeCompleteOptions::DocumentationFormat = MarkupKind::PlainText |
Whether to present doc comments as plain-text or markdown.
Definition at line 65 of file CodeComplete.h.
bool clang::clangd::CodeCompleteOptions::EnableFunctionArgSnippets = true |
Whether to generate snippets for function arguments on code-completion.
Needs snippets to be enabled as well.
Definition at line 96 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 48 of file CodeComplete.h.
bool clang::clangd::CodeCompleteOptions::IncludeFixIts = false |
Include completions that require small corrections, e.g.
change '.' to '->' on member access etc.
Definition at line 92 of file CodeComplete.h.
struct clang::clangd::CodeCompleteOptions::IncludeInsertionIndicator clang::clangd::CodeCompleteOptions::IncludeIndicator |
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 52 of file CodeComplete.h.
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 87 of file CodeComplete.h.
enum clang::clangd::CodeCompleteOptions::IncludeInsertion clang::clangd::CodeCompleteOptions::InsertIncludes = IncludeInsertion::IWYU |
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 62 of file CodeComplete.h.
const ASTSignals* clang::clangd::CodeCompleteOptions::MainFileSignals = nullptr |
Definition at line 89 of file CodeComplete.h.
enum clang::clangd::CodeCompleteOptions::CodeCompletionRankingModel clang::clangd::CodeCompleteOptions::RankingModel = DecisionForest |
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 126 of file CodeComplete.h.
enum clang::clangd::CodeCompleteOptions::CodeCompletionParse clang::clangd::CodeCompleteOptions::RunParser = ParseIfReady |
bool clang::clangd::CodeCompleteOptions::ShowOrigins = false |
Expose origins of completion items in the label (for debugging).
Definition at line 80 of file CodeComplete.h.