LLVM 22.0.0git
llvm::lsp::DocumentSymbol Struct Reference

Represents programming constructs like variables, classes, interfaces etc. More...

#include "llvm/Support/LSP/Protocol.h"

Public Member Functions

 DocumentSymbol ()=default
 DocumentSymbol (DocumentSymbol &&)=default
 DocumentSymbol (const Twine &name, SymbolKind kind, Range range, Range selectionRange)

Public Attributes

std::string name
 The name of this symbol.
std::string detail
 More detail for this symbol, e.g the signature of a function.
SymbolKind kind
 The kind of this symbol.
Range range
 The range enclosing this symbol not including leading/trailing whitespace but everything else like comments.
Range selectionRange
 The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.
std::vector< DocumentSymbolchildren
 Children of this symbol, e.g. properties of a class.

Detailed Description

Represents programming constructs like variables, classes, interfaces etc.

that appear in a document. Document symbols can be hierarchical and they have two ranges: one that encloses its definition and one that points to its most interesting range, e.g. the range of an identifier.

Definition at line 603 of file Protocol.h.

Constructor & Destructor Documentation

◆ DocumentSymbol() [1/3]

llvm::lsp::DocumentSymbol::DocumentSymbol ( )
default

Referenced by DocumentSymbol().

◆ DocumentSymbol() [2/3]

llvm::lsp::DocumentSymbol::DocumentSymbol ( DocumentSymbol && )
default

References DocumentSymbol().

◆ DocumentSymbol() [3/3]

llvm::lsp::DocumentSymbol::DocumentSymbol ( const Twine & name,
SymbolKind kind,
Range range,
Range selectionRange )
inline

Definition at line 606 of file Protocol.h.

References kind, name, range, and selectionRange.

Member Data Documentation

◆ children

std::vector<DocumentSymbol> llvm::lsp::DocumentSymbol::children

Children of this symbol, e.g. properties of a class.

Definition at line 631 of file Protocol.h.

◆ detail

std::string llvm::lsp::DocumentSymbol::detail

More detail for this symbol, e.g the signature of a function.

Definition at line 615 of file Protocol.h.

◆ kind

SymbolKind llvm::lsp::DocumentSymbol::kind

The kind of this symbol.

Definition at line 618 of file Protocol.h.

Referenced by DocumentSymbol().

◆ name

std::string llvm::lsp::DocumentSymbol::name

The name of this symbol.

Definition at line 612 of file Protocol.h.

Referenced by DocumentSymbol().

◆ range

Range llvm::lsp::DocumentSymbol::range

The range enclosing this symbol not including leading/trailing whitespace but everything else like comments.

This information is typically used to determine if the clients cursor is inside the symbol to reveal in the symbol in the UI.

Definition at line 624 of file Protocol.h.

Referenced by DocumentSymbol().

◆ selectionRange

Range llvm::lsp::DocumentSymbol::selectionRange

The range that should be selected and revealed when this symbol is being picked, e.g the name of a function.

Must be contained by the range.

Definition at line 628 of file Protocol.h.

Referenced by DocumentSymbol().


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