Class Ranges
java.lang.Object
com.github._1c_syntax.bsl.languageserver.utils.Ranges
Набор методов для удобства работы с областями текста (ренджами)
-
Method Summary
Modifier and TypeMethodDescriptionstatic intНатуральный порядок сравнения Positionstatic intНатуральный порядок сравнения Rangestatic booleancontainsPosition(Range range, Position position) static booleancontainsRange(Range bigger, Range smaller) static Rangecreate()Создать пустой диапазон (0,0,0,0).static Rangecreate(int lineNo, int startChar, int endChar) Создание Range для линииstatic Rangecreate(int startLine, int startChar, int endLine, int endChar) Создать диапазон с указанными координатами.static RangeСоздать диапазон из списка токенов.static Rangecreate(ParserRuleContext ruleContext) Создать диапазон из контекста правила парсера.static Rangecreate(ParserRuleContext startCtx, ParserRuleContext endCtx) Создать диапазон от начала одного контекста до конца другого.static RangeСоздать диапазон из токена.static RangeСоздать диапазон из токенов.static RangeСоздание Range для узла дерева разбора.static Rangecreate(TerminalNode terminalNode) Создать диапазон из терминального узла.static Rangecreate(TerminalNode startTerminalNode, TerminalNode stopTerminalNode) Создать диапазон между двумя терминальными узлами.getFirstSignificantTokenRange(Collection<Token> tokens) Deprecated.Для совместимости метод оставлен, но будет удален в будущих версиях.static booleanПроверяет переданную область на пустоту
-
Method Details
-
isEmpty
Проверяет переданную область на пустоту- Parameters:
range- Проверяемая область- Returns:
- Признак пустоты
-
create
Создать пустой диапазон (0,0,0,0).- Returns:
- Пустой диапазон
-
create
Создать диапазон с указанными координатами.- Parameters:
startLine- Начальная строкаstartChar- Начальный символendLine- Конечная строкаendChar- Конечный символ- Returns:
- Созданный диапазон
-
create
Создание Range для линии- Parameters:
lineNo- - номер строкиstartChar- - номер первого символаendChar- - номер последнего символа- Returns:
- - полученный Range
-
create
Создать диапазон из контекста правила парсера.- Parameters:
ruleContext- Контекст правила- Returns:
- Диапазон, покрывающий весь контекст
-
create
Создать диапазон от начала одного контекста до конца другого.- Parameters:
startCtx- Начальный контекстendCtx- Конечный контекст- Returns:
- Диапазон между контекстами
-
create
Создать диапазон из токенов.- Parameters:
startToken- Начальный токенendToken- Конечный токен- Returns:
- Диапазон между токенами
-
create
Создать диапазон из списка токенов.- Parameters:
tokens- Список токенов- Returns:
- Диапазон от первого до последнего токена
-
create
Создать диапазон из терминального узла.- Parameters:
terminalNode- Терминальный узел- Returns:
- Диапазон узла
-
create
Создать диапазон между двумя терминальными узлами.- Parameters:
startTerminalNode- Начальный узелstopTerminalNode- Конечный узел- Returns:
- Диапазон между узлами
-
create
Создать диапазон из токена.- Parameters:
token- Токен- Returns:
- Диапазон токена
-
create
Создание Range для узла дерева разбора.- Parameters:
tree- - дерево разбора.- Returns:
- - полученный Range.
-
containsRange
-
containsPosition
-
compare
Натуральный порядок сравнения Range- Parameters:
o1- - левый\меньший операндo2- - правый\больший операнд- Returns:
- 0 - равно, 1 - больше, -1 - меньше
-
compare
Натуральный порядок сравнения Position- Parameters:
pos1- - левый\меньший операндpos2- - правый\больший операнд- Returns:
- 0 - равно, 1 - больше, -1 - меньше
-
getFirstSignificantTokenRange
@Deprecated(since="0.20") public static Optional<Range> getFirstSignificantTokenRange(Collection<Token> tokens) Deprecated.Для совместимости метод оставлен, но будет удален в будущих версиях. Вместо него стоит использовать методModuleSymbol.getSelectionRange()
-