Class GlobalScopeSemanticTokensSupplier

java.lang.Object
com.github._1c_syntax.bsl.languageserver.semantictokens.GlobalScopeSemanticTokensSupplier
All Implemented Interfaces:
SemanticTokensSupplier

@Component public class GlobalScopeSemanticTokensSupplier extends Object implements SemanticTokensSupplier
Сапплаер семантических токенов для идентификаторов, разрешающихся через global scope (GlobalScopeProvider.globalProperty(String, FileType)). Тип/модификатор токена выводится из типа-значения глобального свойства (а не из отдельного флага):
  • обычное платформенное свойство/коллекция (Справочники, Метаданные, ОбщегоНазначения) → Class + DefaultLibrary;
  • системное перечисление — тип-значение проходит isEnumType (КодировкаТекста) → Enum + DefaultLibrary; значение перечисления первого уровня (.UTF8) → EnumMember;
  • модульный тип (общий/library-модуль, есть в URI-индексе) → Namespace.
Идентификаторы, перекрытые локальной переменной/параметром, пропускаются — локальный символ имеет приоритет.

Цепочка после корня размечается целиком, пока резолвятся члены: имя объекта конфигурации (Справочники.Контрагенты, Метаданные.Справочники.Контрагенты) → Class, значение перечисления → EnumMember, остальные свойства (Метаданные.Справочники, ….Реквизиты, ….Тип) → Property + DefaultLibrary. Как только очередное имя не резолвится, разметка цепочки прекращается: выдуманный тип хуже отсутствия подсветки.