Class PlatformMemberPropertyAccessSemanticTokensSupplier
- All Implemented Interfaces:
SemanticTokensSupplier
receiver.property без скобок,
где receiver — типизированное выражение, чей тип резолвится через
ExpressionTypeInferencer).
Свойство резолвится через TypeService.memberAt(DocumentContext, Position).
Имя свойства получает SemanticTokenTypes.Property +
SemanticTokenModifiers.DefaultLibrary.
Симметричен PlatformMemberMethodCallSemanticTokensSupplier (вызовы методов
через accessCall) — общий каркас в AbstractPlatformMemberSemanticTokensSupplier.
Цепочки, начинающиеся с глобального synthetic-имени (Справочники.Контрагенты,
Перечисления.Пол.Мужской, КодировкаТекста.UTF8), целиком красит
GlobalScopeSemanticTokensSupplier (метаобъекты → Class, значения
перечислений → EnumMember). Такие цепочки пропускаются по базовому
идентификатору — это ровно домен GlobalScope, и только там возникал конфликт
Property vs Class/EnumMember. Обращения к свойствам
локально-типизированных переменных (Объект.Ссылка, Строка.Родитель)
GlobalScope не трогает — их подсвечиваем мы.
-
Field Summary
Fields inherited from class AbstractPlatformMemberSemanticTokensSupplier
DEFAULT_LIBRARY_MODIFIERS, helper, typeService -
Constructor Summary
ConstructorsConstructorDescriptionPlatformMemberPropertyAccessSemanticTokensSupplier(TypeService typeService, GlobalScopeProvider globalScopeProvider, SemanticTokensHelper helper) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidemit(List<SemanticTokenEntry> entries, DocumentContext documentContext, Range range) Резолвит член в позиции и при успехе добавляет токен вentries.Диапазон имени члена в узле; empty, если имени нет.protected intИндекс rule-узла AST для обхода (напримерBSLParser.RULE_accessProperty).protected BiPredicate<BSLParser.AccessPropertyContext, Range> skipFilter(DocumentContext documentContext) Предикат «пропустить узел» — позиции, которые уже красит другой сапплаер.Methods inherited from class AbstractPlatformMemberSemanticTokensSupplier
getSemanticTokens, getSemanticTokens
-
Constructor Details
-
PlatformMemberPropertyAccessSemanticTokensSupplier
public PlatformMemberPropertyAccessSemanticTokensSupplier(TypeService typeService, GlobalScopeProvider globalScopeProvider, SemanticTokensHelper helper)
-
-
Method Details
-
ruleIndex
protected int ruleIndex()Description copied from class:AbstractPlatformMemberSemanticTokensSupplierИндекс rule-узла AST для обхода (напримерBSLParser.RULE_accessProperty).- Specified by:
ruleIndexin classAbstractPlatformMemberSemanticTokensSupplier<BSLParser.AccessPropertyContext>
-
nameRange
Description copied from class:AbstractPlatformMemberSemanticTokensSupplierДиапазон имени члена в узле; empty, если имени нет.- Specified by:
nameRangein classAbstractPlatformMemberSemanticTokensSupplier<BSLParser.AccessPropertyContext>
-
skipFilter
protected BiPredicate<BSLParser.AccessPropertyContext, Range> skipFilter(DocumentContext documentContext) Description copied from class:AbstractPlatformMemberSemanticTokensSupplierПредикат «пропустить узел» — позиции, которые уже красит другой сапплаер. Считается один раз на документ (можно предвычислить тяжёлое состояние).- Specified by:
skipFilterin classAbstractPlatformMemberSemanticTokensSupplier<BSLParser.AccessPropertyContext>
-
emit
Description copied from class:AbstractPlatformMemberSemanticTokensSupplierРезолвит член в позиции и при успехе добавляет токен вentries.- Specified by:
emitin classAbstractPlatformMemberSemanticTokensSupplier<BSLParser.AccessPropertyContext>
-