Class ModuleReference

java.lang.Object
com.github._1c_syntax.bsl.languageserver.utils.ModuleReference

public final class ModuleReference extends Object
Утилитный класс для работы со ссылками на общие модули.

Предоставляет методы для анализа конструкций получения ссылки на общий модуль через ОбщегоНазначения.ОбщийМодуль("ИмяМодуля"), ОбщегоНазначенияКлиент.ОбщийМодуль("ИмяМодуля") и других вариантов.

  • Method Details

    • parseAccessors

      public static ModuleReference.ParsedAccessors parseAccessors(List<String> commonModuleAccessors)
      Разбирает список паттернов доступа к общим модулям один раз.

      Вызывается один раз при инициализации и результат кэшируется.

      Parameters:
      commonModuleAccessors - Список паттернов "Модуль.Метод" или "Метод" для локального вызова
      Returns:
      Предварительно разобранные паттерны
    • isCommonModuleExpression

      public static boolean isCommonModuleExpression(BSLParser.ExpressionContext expression, ModuleReference.ParsedAccessors parsedAccessors)
      Проверить, является ли expression вызовом получения ссылки на общий модуль. Использует предварительно разобранные паттерны.
      Parameters:
      expression - Контекст выражения
      parsedAccessors - Предварительно разобранные паттерны
      Returns:
      true, если это вызов метода получения общего модуля
    • extractCommonModuleName

      public static Optional<String> extractCommonModuleName(BSLParser.ExpressionContext expression, ModuleReference.ParsedAccessors parsedAccessors)
      Извлечь имя общего модуля из expression.
      Parameters:
      expression - Контекст выражения
      parsedAccessors - Предварительно разобранные паттерны
      Returns:
      Имя модуля, если удалось извлечь