Class PlatformMemberMethodCallSemanticTokensSupplier

java.lang.Object
com.github._1c_syntax.bsl.languageserver.semantictokens.AbstractPlatformMemberSemanticTokensSupplier<BSLParser.AccessCallContext>
com.github._1c_syntax.bsl.languageserver.semantictokens.PlatformMemberMethodCallSemanticTokensSupplier
All Implemented Interfaces:
SemanticTokensSupplier

@Component public class PlatformMemberMethodCallSemanticTokensSupplier extends AbstractPlatformMemberSemanticTokensSupplier<BSLParser.AccessCallContext>
Сапплаер семантических токенов для вызовов методов платформенных типов через accessCall (т.е. вызовов вида receiver.method(...), где receiver — типизированное выражение, чей тип резолвится через ExpressionTypeInferencer).

Метод резолвится через TypeService.memberAt(DocumentContext, Position). Если найден member с MemberKind.METHOD — имя метода получает SemanticTokenTypes.Method + SemanticTokenModifiers.DefaultLibrary, а для async-методов платформы (флаг MemberDescriptor.async()) добавляется ещё и SemanticTokenModifiers.Async.

Симметричен PlatformMemberPropertyAccessSemanticTokensSupplier (обращения к свойствам через accessProperty) — общий каркас в AbstractPlatformMemberSemanticTokensSupplier.

Source-defined вызовы (методы общих модулей, локальные методы, OScript-library) подсвечиваются через MethodCallSemanticTokensSupplier по ReferenceIndex — этот сапплаер их пропускает, чтобы не дублировать токены.