5#ifndef QQMLSEMANTICTOKENS_P_H
6#define QQMLSEMANTICTOKENS_P_H
19#include <QtLanguageServer/private/qlanguageserverspec_p.h>
20#include <QtQmlDom/private/qqmldomitem_p.h>
21#include <QtCore/qlist.h>
22#include <QtCore/qmap.h>
118Q_ENUM_NS(SemanticTokenProtocolTypes)
130 return lhs.loc == rhs.loc && lhs
.kind == rhs
.kind && lhs.modifiers == rhs.modifiers;
142
143
144
156 const QQmlJS::SourceLocation &tokenLocation);
157void addModifier(QLspSpecification::SemanticTokenModifiers modifier,
int *baseModifier);
161QList<
int> collectTokens(
const QQmlJS::Dom::DomItem &item,
163 HighlightingMode mode = HighlightingMode::Default);
164HighlightsContainer visitTokens(
const QQmlJS::Dom::DomItem &item,
173 HighlightingVisitor(
const QQmlJS::Dom::DomItem &item,
179 bool visitor(QQmlJS::Dom::Path,
const QQmlJS::Dom::DomItem &item,
bool);
180 void highlightComment(
const QQmlJS::Dom::DomItem &item);
181 void highlightImport(
const QQmlJS::Dom::DomItem &item);
182 void highlightBinding(
const QQmlJS::Dom::DomItem &item);
183 void highlightPragma(
const QQmlJS::Dom::DomItem &item);
184 void highlightEnumItem(
const QQmlJS::Dom::DomItem &item);
185 void highlightEnumDecl(
const QQmlJS::Dom::DomItem &item);
186 void highlightQmlObject(
const QQmlJS::Dom::DomItem &item);
187 void highlightComponent(
const QQmlJS::Dom::DomItem &item);
188 void highlightPropertyDefinition(
const QQmlJS::Dom::DomItem &item);
189 void highlightMethod(
const QQmlJS::Dom::DomItem &item);
190 void highlightScriptLiteral(
const QQmlJS::Dom::DomItem &item);
191 void highlightIdentifier(
const QQmlJS::Dom::DomItem &item);
192 void highlightBySemanticAnalysis(
const QQmlJS::Dom::DomItem &item, QQmlJS::SourceLocation loc);
193 void highlightScriptExpressions(
const QQmlJS::Dom::DomItem &item);
194 void highlightCallExpression(
const QQmlJS::Dom::DomItem &item);
195 void highlightFieldMemberAccess(
const QQmlJS::Dom::DomItem &item, QQmlJS::SourceLocation loc);
199 HighlightsContainer m_highlights;
Implements a server for the language server protocol.
void registerHandlers(QLanguageServer *server, QLanguageServerProtocol *protocol) override
QString name() const override
QQmlHighlightSupport(QmlLsp::QQmlCodeModelManager *codeModel)
void setupCapabilities(const QLspSpecification::InitializeParams &clientInfo, QLspSpecification::InitializeResult &) override
const HighlightsContainer & hightights() const
HighlightsContainer & highlights()
HIDE_UNUSED_OVERRIDES QmlHighlighting::HighlightingMode m_mode
void process(QQmlBaseModule< SemanticTokensDeltaRequest >::RequestPointerArgument req) override
SemanticTokenDeltaHandler(QmlLsp::QQmlCodeModelManager *codeModel)
void setHighlightingMode(QmlHighlighting::HighlightingMode mode)
void registerHandlers(QLanguageServer *, QLanguageServerProtocol *) override
void process(QQmlBaseModule< SemanticTokensRequest >::RequestPointerArgument req) override
void setHighlightingMode(QmlHighlighting::HighlightingMode mode)
SemanticTokenFullHandler(QmlLsp::QQmlCodeModelManager *codeModel)
void registerHandlers(QLanguageServer *, QLanguageServerProtocol *) override
HIDE_UNUSED_OVERRIDES QmlHighlighting::HighlightingMode m_mode
SemanticTokenRangeHandler(QmlLsp::QQmlCodeModelManager *codeModel)
void setHighlightingMode(QmlHighlighting::HighlightingMode mode)
void process(QQmlBaseModule< SemanticTokensRangeRequest >::RequestPointerArgument req) override
void registerHandlers(QLanguageServer *, QLanguageServerProtocol *) override
HIDE_UNUSED_OVERRIDES QmlHighlighting::HighlightingMode m_mode
Combined button and popup list for selecting options.
QList< int > encodeSemanticTokens(const HighlightsContainer &highlights, HighlightingMode mode=HighlightingMode::Default)
QList< QLspSpecification::SemanticTokensEdit > computeDiff(const QList< int > &, const QList< int > &)
void addHighlight(HighlightsContainer &out, const QQmlJS::SourceLocation &loc, QmlHighlightKind, QmlHighlightModifiers=QmlHighlightModifier::None)
void updateResultID(QByteArray &resultID)
QList< QQmlJS::SourceLocation > sourceLocationsFromMultiLineToken(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)
SemanticTokenProtocolTypes
@ QmlExternalObjectProperty
int(*)(QmlHighlightKind) QmlHighlightKindToLspKind
@ QmlExternalObjectProperty
QT_BEGIN_NAMESPACE Q_DECLARE_LOGGING_CATEGORY(lcEventDispatcher)
QList< QByteArray > extendedTokenTypesList()
QList< QByteArray > defaultTokenModifiersList()
static QList< QByteArray > enumToByteArray()
#define HIDE_UNUSED_OVERRIDES
HighlightToken(const QQmlJS::SourceLocation &loc, QmlHighlightKind, QmlHighlightModifiers=QmlHighlightModifier::None)
QQmlJS::SourceLocation loc
QmlHighlightModifiers modifiers
friend bool operator==(const HighlightToken &lhs, const HighlightToken &rhs)
This class sends a result or an error when going out of scope.