clang-tools 10.0.0

Classes | Public Types | Public Member Functions | Public Attributes | List of all members
clang::clangd::CodeCompleteOptions Struct Reference

`#include <CodeComplete.h>`

Collaboration diagram for clang::clangd::CodeCompleteOptions:
[legend]

## 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...

## 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 | IncludeCodePatterns = true
| Add code patterns to completion results. More...
bool | IncludeMacros = true
| Add macros to code completion results. More...
bool | IncludeComments = true
| Add comments to code completion results, if available. 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...
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...
bool | SpeculativeIndexRequest = false
| If set to true, this will send an asynchronous speculative index request, based on the index request for the last code completion on the same file and the filter text typed before the cursor, before sema code completion is invoked. More...
const SymbolIndex * | Index = nullptr
| If `Index` is set, it is used to augment the code completion results. More...
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

## Detailed Description

Definition at line 39 of file CodeComplete.h.

## Member Enumeration Documentation

## ◆ CodeCompletionParse

enum clang::clangd::CodeCompleteOptions::CodeCompletionParse

Whether to use the clang parser, or fallback to text-based completion (using identifiers in the current file and symbol indexes).

Enumerator
AlwaysParse | Block until we can run the parser (e.g. preamble is built). Return an error if this fails.
ParseIfReady | Run the parser if inputs (preamble) are ready. Otherwise, use text-based completion.
NeverParse | Always use text-based completion.

Definition at line 122 of file CodeComplete.h.

## ◆ IncludeInsertion

enum clang::clangd::CodeCompleteOptions::IncludeInsertion

Enumerator
IWYU |
NeverInsert |

Definition at line 73 of file CodeComplete.h.

## Member Function Documentation

## ◆ getClangCompleteOpts()

clang::CodeCompleteOptions clang::clangd::CodeCompleteOptions::getClangCompleteOpts | ( |  | ) | const

Returns options that can be passed to clang's completion engine.

Definition at line 1688 of file CodeComplete.cpp.

## Member Data Documentation

## ◆ AllScopes

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 118 of file CodeComplete.h.

## ◆ BundleOverloads

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 67 of file CodeComplete.h.

## ◆ EnableFunctionArgSnippets

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 111 of file CodeComplete.h.

## ◆ EnableSnippets

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 46 of file CodeComplete.h.

## ◆ IncludeCodePatterns

bool clang::clangd::CodeCompleteOptions::IncludeCodePatterns = true

Add code patterns to completion results.

If EnableSnippets is false, this options is ignored and code patterns will always be omitted.

Definition at line 51 of file CodeComplete.h.

## ◆ IncludeComments

bool clang::clangd::CodeCompleteOptions::IncludeComments = true

Add comments to code completion results, if available.

Definition at line 57 of file CodeComplete.h.

## ◆ IncludeFixIts

bool clang::clangd::CodeCompleteOptions::IncludeFixIts = false

Include completions that require small corrections, e.g.

change '.' to '->' on member access etc.

Definition at line 107 of file CodeComplete.h.

## ◆ IncludeIndicator

struct clang::clangd::CodeCompleteOptions::IncludeInsertionIndicator clang::clangd::CodeCompleteOptions::IncludeIndicator

## ◆ IncludeIneligibleResults

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 61 of file CodeComplete.h.

## ◆ IncludeMacros

bool clang::clangd::CodeCompleteOptions::IncludeMacros = true

Add macros to code completion results.

Definition at line 54 of file CodeComplete.h.

## ◆ Index

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 103 of file CodeComplete.h.

## ◆ InsertIncludes

enum clang::clangd::CodeCompleteOptions::IncludeInsertion clang::clangd::CodeCompleteOptions::InsertIncludes = IncludeInsertion::IWYU

## ◆ Limit

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 71 of file CodeComplete.h.

## ◆ RunParser

enum clang::clangd::CodeCompleteOptions::CodeCompletionParse clang::clangd::CodeCompleteOptions::RunParser = ParseIfReady

## ◆ ShowOrigins

bool clang::clangd::CodeCompleteOptions::ShowOrigins = false

Expose origins of completion items in the label (for debugging).

Definition at line 86 of file CodeComplete.h.

## ◆ SpeculativeIndexRequest

bool clang::clangd::CodeCompleteOptions::SpeculativeIndexRequest = false

If set to true, this will send an asynchronous speculative index request, based on the index request for the last code completion on the same file and the filter text typed before the cursor, before sema code completion is invoked.

This can reduce the code completion latency (by roughly latency of sema code completion) if the speculative request is the same as the one generated for the ongoing code completion from sema. As a sequence of code completions often have the same scopes and proximity paths etc, this should be effective for a number of code completions.

Definition at line 96 of file CodeComplete.h.

The documentation for this struct was generated from the following files:

- CodeComplete.h
- CodeComplete.cpp