Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QmlHighlighting::Utils Namespace Reference

Functions

QList< int > encodeSemanticTokens (const HighlightsContainer &highlights, HighlightingMode mode=HighlightingMode::Default)
QList< QQmlJS::SourceLocationsourceLocationsFromMultiLineToken (QStringView code, const QQmlJS::SourceLocation &tokenLocation)
 Returns multiple source locations for a given raw comment.
void addModifier (QLspSpecification::SemanticTokenModifiers modifier, int *baseModifier)
bool rangeOverlapsWithSourceLocation (const QQmlJS::SourceLocation &loc, const HighlightsRange &r)
QList< QLspSpecification::SemanticTokensEdit > computeDiff (const QList< int > &, const QList< int > &)
void updateResultID (QByteArray &resultID)
QList< int > collectTokens (const QQmlJS::Dom::DomItem &item, const std::optional< HighlightsRange > &range, HighlightingMode mode=HighlightingMode::Default)
HighlightsContainer visitTokens (const QQmlJS::Dom::DomItem &item, const std::optional< HighlightsRange > &range)
void addHighlight (HighlightsContainer &out, const QQmlJS::SourceLocation &loc, QmlHighlightKind, QmlHighlightModifiers=QmlHighlightModifier::None)

Function Documentation

◆ addHighlight()

void QmlHighlighting::Utils::addHighlight ( HighlightsContainer & out,
const QQmlJS::SourceLocation & loc,
QmlHighlightKind highlightKind,
QmlHighlightModifiers modifierKind = QmlHighlightModifier::None )

Definition at line 1037 of file qqmlsemantictokens.cpp.

◆ addModifier()

void QmlHighlighting::Utils::addModifier ( QLspSpecification::SemanticTokenModifiers modifier,
int * baseModifier )

◆ collectTokens()

QList< int > QmlHighlighting::Utils::collectTokens ( const QQmlJS::Dom::DomItem & item,
const std::optional< HighlightsRange > & range,
HighlightingMode mode = HighlightingMode::Default )

Definition at line 1059 of file qqmlsemantictokens.cpp.

◆ computeDiff()

QList< SemanticTokensEdit > QmlHighlighting::Utils::computeDiff ( const QList< int > & oldData,
const QList< int > & newData )

Definition at line 1010 of file qqmlsemantictokens.cpp.

◆ encodeSemanticTokens()

QList< int > QmlHighlighting::Utils::encodeSemanticTokens ( const HighlightsContainer & highlights,
HighlightingMode mode = HighlightingMode::Default )

Definition at line 927 of file qqmlsemantictokens.cpp.

◆ rangeOverlapsWithSourceLocation()

bool QmlHighlighting::Utils::rangeOverlapsWithSourceLocation ( const QQmlJS::SourceLocation & loc,
const HighlightsRange & r )

Check if the ranges overlap by ensuring that one range starts before the other ends

Definition at line 978 of file qqmlsemantictokens.cpp.

References QmlHighlighting::HighlightsRange::endOffset, and QmlHighlighting::HighlightsRange::startOffset.

◆ sourceLocationsFromMultiLineToken()

QList< QQmlJS::SourceLocation > QmlHighlighting::Utils::sourceLocationsFromMultiLineToken ( QStringView stringLiteral,
const QQmlJS::SourceLocation & locationInDocument )

Returns multiple source locations for a given raw comment.

Needed by semantic highlighting of comments. LSP clients usually don't support multiline tokens. In QML, we can have multiline tokens like string literals and comments. This method generates multiple source locations of sub-elements of token split by a newline delimiter.

Definition at line 879 of file qqmlsemantictokens.cpp.

◆ updateResultID()

void QmlHighlighting::Utils::updateResultID ( QByteArray & resultID)

Definition at line 990 of file qqmlsemantictokens.cpp.

Referenced by SemanticTokenDeltaHandler::process(), SemanticTokenFullHandler::process(), and SemanticTokenRangeHandler::process().

Here is the caller graph for this function:

◆ visitTokens()

HighlightsContainer QmlHighlighting::Utils::visitTokens ( const QQmlJS::Dom::DomItem & item,
const std::optional< HighlightsRange > & range )

Definition at line 1051 of file qqmlsemantictokens.cpp.