clang-tools  8.0.0
Classes | Public Types | Public Attributes | List of all members
clang::clangd::Symbol Struct Reference

#include <Index.h>

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

Classes

struct  IncludeHeaderWithReferences
 

Public Types

enum  SymbolFlag : uint8_t {
  None = 0, IndexedForCodeCompletion = 1 << 0, Deprecated = 1 << 1, ImplementationDetail = 1 << 2,
  VisibleOutsideFile = 1 << 3
}
 

Public Attributes

SymbolID ID
 
index::SymbolInfo SymInfo
 
llvm::StringRef Name
 
llvm::StringRef Scope
 
SymbolLocation Definition
 
SymbolLocation CanonicalDeclaration
 
unsigned References = 0
 
SymbolOrigin Origin = SymbolOrigin::Unknown
 Where this symbol came from. Usually an index provides a constant value. More...
 
llvm::StringRef Signature
 A brief description of the symbol that can be appended in the completion candidate list. More...
 
llvm::StringRef CompletionSnippetSuffix
 What to insert when completing this symbol, after the symbol name. More...
 
llvm::StringRef Documentation
 Documentation including comment for the symbol declaration. More...
 
llvm::StringRef ReturnType
 Type when this symbol is used in an expression. More...
 
llvm::StringRef Type
 Raw representation of the OpaqueType of the symbol, used for scoring purposes. More...
 
llvm::SmallVector< IncludeHeaderWithReferences, 1 > IncludeHeaders
 One Symbol can potentially be incuded via different headers. More...
 
SymbolFlag Flags = SymbolFlag::None
 

Detailed Description

Definition at line 160 of file Index.h.

Member Enumeration Documentation

◆ SymbolFlag

Enumerator
None 
IndexedForCodeCompletion 

Whether or not this symbol is meant to be used for the code completion.

See also isIndexedForCodeCompletion(). Note that we don't store completion information (signature, snippet, type, inclues) if the symbol is not indexed for code completion.

Deprecated 

Indicates if the symbol is deprecated.

ImplementationDetail 
VisibleOutsideFile 

Definition at line 233 of file Index.h.

Member Data Documentation

◆ CanonicalDeclaration

SymbolLocation clang::clangd::Symbol::CanonicalDeclaration

◆ CompletionSnippetSuffix

llvm::StringRef clang::clangd::Symbol::CompletionSnippetSuffix

What to insert when completing this symbol, after the symbol name.

This is in LSP snippet syntax (e.g. "({$0})" for a no-args function). (When snippets are disabled, the symbol name alone is used). Only set when the symbol is indexed for completion.

Definition at line 194 of file Index.h.

Referenced by llvm::yaml::MappingTraits< Symbol >::mapping(), clang::clangd::mergeSymbol(), and clang::clangd::visitStrings().

◆ Definition

SymbolLocation clang::clangd::Symbol::Definition

◆ Documentation

llvm::StringRef clang::clangd::Symbol::Documentation

Documentation including comment for the symbol declaration.

Definition at line 196 of file Index.h.

Referenced by llvm::yaml::MappingTraits< Symbol >::mapping(), clang::clangd::mergeSymbol(), and clang::clangd::visitStrings().

◆ Flags

SymbolFlag clang::clangd::Symbol::Flags = SymbolFlag::None

◆ ID

SymbolID clang::clangd::Symbol::ID

◆ IncludeHeaders

llvm::SmallVector<IncludeHeaderWithReferences, 1> clang::clangd::Symbol::IncludeHeaders

One Symbol can potentially be incuded via different headers.

  • If we haven't seen a definition, this covers all declarations.
  • If we have seen a definition, this covers declarations visible from any definition. Only set when the symbol is indexed for completion.

Definition at line 231 of file Index.h.

Referenced by llvm::yaml::MappingTraits< Symbol >::mapping(), clang::clangd::mergeSymbol(), and clang::clangd::visitStrings().

◆ Name

llvm::StringRef clang::clangd::Symbol::Name

◆ Origin

SymbolOrigin clang::clangd::Symbol::Origin = SymbolOrigin::Unknown

Where this symbol came from. Usually an index provides a constant value.

Definition at line 185 of file Index.h.

Referenced by llvm::yaml::MappingTraits< Symbol >::mapping(), and clang::clangd::mergeSymbol().

◆ References

unsigned clang::clangd::Symbol::References = 0

◆ ReturnType

llvm::StringRef clang::clangd::Symbol::ReturnType

Type when this symbol is used in an expression.

(Short display form). e.g. return type of a function, or type of a variable. Only set when the symbol is indexed for completion.

Definition at line 200 of file Index.h.

Referenced by llvm::yaml::MappingTraits< Symbol >::mapping(), clang::clangd::mergeSymbol(), and clang::clangd::visitStrings().

◆ Scope

llvm::StringRef clang::clangd::Symbol::Scope

◆ Signature

llvm::StringRef clang::clangd::Symbol::Signature

A brief description of the symbol that can be appended in the completion candidate list.

For example, "(X x, Y y) const" is a function signature. Only set when the symbol is indexed for completion.

Definition at line 189 of file Index.h.

Referenced by llvm::yaml::MappingTraits< Symbol >::mapping(), clang::clangd::mergeSymbol(), and clang::clangd::visitStrings().

◆ SymInfo

index::SymbolInfo clang::clangd::Symbol::SymInfo

◆ Type

llvm::StringRef clang::clangd::Symbol::Type

Raw representation of the OpaqueType of the symbol, used for scoring purposes.

Only set when the symbol is indexed for completion.

Definition at line 205 of file Index.h.

Referenced by llvm::yaml::MappingTraits< Symbol >::mapping(), clang::clangd::mergeSymbol(), and clang::clangd::visitStrings().


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