Class Positions

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

public final class Positions extends Object
Набор методов для удобства работы с позициями (LSP Position).

ANTLR-координаты токена (line 1-based, charPositionInLine) приводятся к LSP-модели (line 0-based) в одном месте, без промежуточного Range.

  • Method Details

    • create

      public static Position create(int line, int character)
      Создать позицию по координатам LSP.
      Parameters:
      line - строка (0-based)
      character - символ
      Returns:
      созданная позиция
    • create

      public static Position create(Token token)
      Начальная позиция токена.
      Parameters:
      token - токен
      Returns:
      позиция начала токена
    • create

      public static Position create(@Nullable TerminalNode terminalNode)
      Начальная позиция терминального узла.
      Parameters:
      terminalNode - терминальный узел; null трактуется как пустая позиция (0,0)
      Returns:
      позиция начала узла
    • create

      public static Position create(ParserRuleContext ruleContext)
      Начальная позиция контекста правила парсера (по стартовому токену).
      Parameters:
      ruleContext - контекст правила
      Returns:
      позиция начала контекста
    • createEnd

      public static Position createEnd(Token token)
      Конечная позиция токена. Соответствует концу Ranges.create(Token): charPositionInLine + длина текста токена.
      Parameters:
      token - токен
      Returns:
      позиция конца токена
    • createEnd

      public static Position createEnd(@Nullable TerminalNode terminalNode)
      Конечная позиция терминального узла.
      Parameters:
      terminalNode - терминальный узел; null трактуется как пустая позиция (0,0)
      Returns:
      позиция конца узла