Class Ranges

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

public final class Ranges extends Object
Набор методов для удобства работы с областями текста (ренджами)
  • Method Summary

    Modifier and Type
    Method
    Description
    static int
    compare(int startLine1, int startChar1, int endLine1, int endChar1, int startLine2, int startChar2, int endLine2, int endChar2)
    Натуральный порядок сравнения двух диапазонов, заданных деконструированными координатами.
    static int
    compare(Position pos1, Position pos2)
    Натуральный порядок сравнения Position
    static int
    compare(Range o1, Range o2)
    Натуральный порядок сравнения Range
    static boolean
    containsPosition(int startLine, int startCharacter, int endLine, int endCharacter, int line, int character)
    Проверяет, содержит ли диапазон указанную позицию.
    static boolean
    containsPosition(int startLine, int startCharacter, int endLine, int endCharacter, Position position)
    Проверяет, содержит ли диапазон указанную позицию.
    static boolean
    containsPosition(Range range, Position position)
     
    static boolean
    containsRange(Range bigger, Range smaller)
     
    static Range
    Создать пустой диапазон (0,0,0,0).
    static Range
    create(int lineNo, int startChar, int endChar)
    Создание Range для линии
    static Range
    create(int startLine, int startChar, int endLine, int endChar)
    Создать диапазон с указанными координатами.
    static Range
    create(List<Token> tokens)
    Создать диапазон из списка токенов.
    static Range
    Создать диапазон из контекста правила парсера.
    static Range
    Создать диапазон от начала одного контекста до конца другого.
    static Range
    create(Token token)
    Создать диапазон из токена.
    static Range
    create(Token startToken, @Nullable Token endToken)
    Создать диапазон из токенов.
    static Range
    Создание Range для узла дерева разбора.
    static Range
    create(TerminalNode terminalNode)
    Создать диапазон из терминального узла.
    static Range
    create(TerminalNode startTerminalNode, TerminalNode stopTerminalNode)
    Создать диапазон между двумя терминальными узлами.
    static boolean
    isEmpty(Range range)
    Проверяет переданную область на пустоту

    Methods inherited from class Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • isEmpty

      public static boolean isEmpty(Range range)
      Проверяет переданную область на пустоту
      Parameters:
      range - Проверяемая область
      Returns:
      Признак пустоты
    • create

      public static Range create()
      Создать пустой диапазон (0,0,0,0).
      Returns:
      Пустой диапазон
    • create

      public static Range create(int startLine, int startChar, int endLine, int endChar)
      Создать диапазон с указанными координатами.
      Parameters:
      startLine - Начальная строка
      startChar - Начальный символ
      endLine - Конечная строка
      endChar - Конечный символ
      Returns:
      Созданный диапазон
    • create

      public static Range create(int lineNo, int startChar, int endChar)
      Создание Range для линии
      Parameters:
      lineNo - - номер строки
      startChar - - номер первого символа
      endChar - - номер последнего символа
      Returns:
      - полученный Range
    • create

      public static Range create(ParserRuleContext ruleContext)
      Создать диапазон из контекста правила парсера.
      Parameters:
      ruleContext - Контекст правила
      Returns:
      Диапазон, покрывающий весь контекст
    • create

      public static Range create(ParserRuleContext startCtx, ParserRuleContext endCtx)
      Создать диапазон от начала одного контекста до конца другого.
      Parameters:
      startCtx - Начальный контекст
      endCtx - Конечный контекст
      Returns:
      Диапазон между контекстами
    • create

      public static Range create(Token startToken, @Nullable Token endToken)
      Создать диапазон из токенов.
      Parameters:
      startToken - Начальный токен
      endToken - Конечный токен
      Returns:
      Диапазон между токенами
    • create

      public static Range create(List<Token> tokens)
      Создать диапазон из списка токенов.
      Parameters:
      tokens - Список токенов
      Returns:
      Диапазон от первого до последнего токена
    • create

      public static Range create(TerminalNode terminalNode)
      Создать диапазон из терминального узла.
      Parameters:
      terminalNode - Терминальный узел
      Returns:
      Диапазон узла
    • create

      public static Range create(TerminalNode startTerminalNode, TerminalNode stopTerminalNode)
      Создать диапазон между двумя терминальными узлами.
      Parameters:
      startTerminalNode - Начальный узел
      stopTerminalNode - Конечный узел
      Returns:
      Диапазон между узлами
    • create

      public static Range create(Token token)
      Создать диапазон из токена.
      Parameters:
      token - Токен
      Returns:
      Диапазон токена
    • create

      public static Range create(ParseTree tree)
      Создание Range для узла дерева разбора.
      Parameters:
      tree - - дерево разбора.
      Returns:
      - полученный Range.
    • containsRange

      public static boolean containsRange(Range bigger, Range smaller)
    • containsPosition

      public static boolean containsPosition(Range range, Position position)
    • containsPosition

      public static boolean containsPosition(int startLine, int startCharacter, int endLine, int endCharacter, Position position)
      Проверяет, содержит ли диапазон указанную позицию.
      Parameters:
      startLine - - начальная строка диапазона
      startCharacter - - начальный символ диапазона
      endLine - - конечная строка диапазона
      endCharacter - - конечный символ диапазона
      position - - позиция для проверки
      Returns:
      true, если позиция находится внутри диапазона (включая начало, исключая конец)
    • containsPosition

      public static boolean containsPosition(int startLine, int startCharacter, int endLine, int endCharacter, int line, int character)
      Проверяет, содержит ли диапазон указанную позицию.
      Parameters:
      startLine - - начальная строка диапазона
      startCharacter - - начальный символ диапазона
      endLine - - конечная строка диапазона
      endCharacter - - конечный символ диапазона
      line - - строка позиции
      character - - символ позиции
      Returns:
      true, если позиция находится внутри диапазона (включая начало, исключая конец)
    • compare

      public static int compare(Range o1, Range o2)
      Натуральный порядок сравнения Range
      Parameters:
      o1 - - левый\меньший операнд
      o2 - - правый\больший операнд
      Returns:
      0 - равно, 1 - больше, -1 - меньше
    • compare

      public static int compare(Position pos1, Position pos2)
      Натуральный порядок сравнения Position
      Parameters:
      pos1 - - левый\меньший операнд
      pos2 - - правый\больший операнд
      Returns:
      0 - равно, 1 - больше, -1 - меньше
    • compare

      public static int compare(int startLine1, int startChar1, int endLine1, int endChar1, int startLine2, int startChar2, int endLine2, int endChar2)
      Натуральный порядок сравнения двух диапазонов, заданных деконструированными координатами.
      Parameters:
      startLine1 - - начальная строка первого диапазона
      startChar1 - - начальный символ первого диапазона
      endLine1 - - конечная строка первого диапазона
      endChar1 - - конечный символ первого диапазона
      startLine2 - - начальная строка второго диапазона
      startChar2 - - начальный символ второго диапазона
      endLine2 - - конечная строка второго диапазона
      endChar2 - - конечный символ второго диапазона
      Returns:
      0 - равно, 1 - больше, -1 - меньше