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)
HighlightsContainer visitTokens (const QQmlJS::Dom::DomItem &item, const std::optional< HighlightsRange > &range)
void addHighlight (HighlightsContainer &out, const QQmlJS::SourceLocation &loc, QmlHighlightKind, QmlHighlightModifiers=QmlHighlightModifier::None)
void applyDiffs (HighlightsContainer &highlights, const QList< QQmlLSUtils::Diff > &diffs)
HighlightsContainer shiftHighlights (const HighlightsContainer &cachedHighlights, const QString &lastValidCode, const QString &currentCode)

Function Documentation

◆ addHighlight()

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

Definition at line 1058 of file qqmlsemantictokens.cpp.

◆ addModifier()

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

◆ applyDiffs()

void QmlHighlighting::Utils::applyDiffs ( HighlightsContainer & highlights,
const QList< QQmlLSUtils::Diff > & diffs )

Definition at line 1381 of file qqmlsemantictokens.cpp.

◆ computeDiff()

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

Definition at line 1031 of file qqmlsemantictokens.cpp.

◆ encodeSemanticTokens()

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

Definition at line 948 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 999 of file qqmlsemantictokens.cpp.

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

◆ shiftHighlights()

HighlightsContainer QmlHighlighting::Utils::shiftHighlights ( const HighlightsContainer & cachedHighlights,
const QString & lastValidCode,
const QString & currentCode )

Definition at line 1080 of file qqmlsemantictokens.cpp.

◆ 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 900 of file qqmlsemantictokens.cpp.

◆ updateResultID()

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

Definition at line 1011 of file qqmlsemantictokens.cpp.

◆ visitTokens()

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

Definition at line 1072 of file qqmlsemantictokens.cpp.