Class SemanticTokensHelper
java.lang.Object
com.github._1c_syntax.bsl.languageserver.semantictokens.SemanticTokensHelper
Вспомогательные методы для создания семантических токенов.
Предоставляет методы для добавления токенов в список с учетом легенды семантических токенов.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddContextRange(List<SemanticTokenEntry> entries, @Nullable ParserRuleContext ctx, String type, String... modifiers) Добавить токен из ParserRuleContext (от начала до конца контекста).voidaddEntry(List<SemanticTokenEntry> entries, int line, int start, int length, String type) Добавить токен по позиции и длине без модификаторов.voidaddEntry(List<SemanticTokenEntry> entries, int line, int start, int length, String type, String... modifiers) Добавить токен по позиции и длине с модификаторами.voidaddRange(List<SemanticTokenEntry> entries, Range range, int explicitLength, String type, String[] modifiers) Добавить токен с явно указанной длиной (для многострочных токенов).voidaddRange(List<SemanticTokenEntry> entries, Range range, String type) Добавить токен с заданным типом без модификаторов.voidДобавить токен с заданным типом и модификаторами.voidaddTerminalNodeRange(List<SemanticTokenEntry> entries, @Nullable TerminalNode node, String type, String... modifiers) Добавить токен из TerminalNode с явно указанным типом и модификаторами.voidaddTokenRange(List<SemanticTokenEntry> entries, @Nullable Token token, String type, String... modifiers) Добавить токен из ANTLR токена с явно указанным типом и модификаторами.voidaddTokenRange(List<SemanticTokenEntry> entries, Token token, String type) Добавить токен из ANTLR токена с явно указанным типом.intcomputeModifierMask(String... modifiers) Вычислить битовую маску модификаторов.intgetTypeIndex(String type) Получить индекс типа токена в легенде.
-
Constructor Details
-
SemanticTokensHelper
-
-
Method Details
-
addRange
Добавить токен с заданным типом без модификаторов.- Parameters:
entries- Список токенов для наполненияrange- Диапазон токенаtype- Тип токена (из SemanticTokenTypes)
-
addRange
public void addRange(List<SemanticTokenEntry> entries, Range range, String type, String... modifiers) Добавить токен с заданным типом и модификаторами.- Parameters:
entries- Список токенов для наполненияrange- Диапазон токенаtype- Тип токена (из SemanticTokenTypes)modifiers- Модификаторы токена (из SemanticTokenModifiers)
-
addRange
public void addRange(List<SemanticTokenEntry> entries, Range range, int explicitLength, String type, String[] modifiers) Добавить токен с явно указанной длиной (для многострочных токенов).- Parameters:
entries- Список токенов для наполненияrange- Диапазон токенаexplicitLength- Явная длина токенаtype- Тип токена (из SemanticTokenTypes)modifiers- Модификаторы токена (из SemanticTokenModifiers)
-
addEntry
public void addEntry(List<SemanticTokenEntry> entries, int line, int start, int length, String type) Добавить токен по позиции и длине без модификаторов.- Parameters:
entries- Список токенов для наполненияline- Номер строки (0-индексированный)start- Начальная позиция в строкеlength- Длина токенаtype- Тип токена (из SemanticTokenTypes)
-
addEntry
public void addEntry(List<SemanticTokenEntry> entries, int line, int start, int length, String type, String... modifiers) Добавить токен по позиции и длине с модификаторами.- Parameters:
entries- Список токенов для наполненияline- Номер строки (0-индексированный)start- Начальная позиция в строкеlength- Длина токенаtype- Тип токена (из SemanticTokenTypes)modifiers- Модификаторы токена (из SemanticTokenModifiers)
-
addTokenRange
Добавить токен из ANTLR токена с явно указанным типом.- Parameters:
entries- Список токенов для наполненияtoken- ANTLR токенtype- Тип семантического токена (из SemanticTokenTypes)
-
addTokenRange
public void addTokenRange(List<SemanticTokenEntry> entries, @Nullable Token token, String type, String... modifiers) Добавить токен из ANTLR токена с явно указанным типом и модификаторами.- Parameters:
entries- Список токенов для наполненияtoken- ANTLR токенtype- Тип семантического токена (из SemanticTokenTypes)modifiers- Модификаторы токена (из SemanticTokenModifiers)
-
addTerminalNodeRange
public void addTerminalNodeRange(List<SemanticTokenEntry> entries, @Nullable TerminalNode node, String type, String... modifiers) Добавить токен из TerminalNode с явно указанным типом и модификаторами.- Parameters:
entries- Список токенов для наполненияnode- Терминальный узел ASTtype- Тип семантического токена (из SemanticTokenTypes)modifiers- Модификаторы токена (из SemanticTokenModifiers)
-
addContextRange
public void addContextRange(List<SemanticTokenEntry> entries, @Nullable ParserRuleContext ctx, String type, String... modifiers) Добавить токен из ParserRuleContext (от начала до конца контекста).- Parameters:
entries- Список токенов для наполненияctx- Контекст парсераtype- Тип семантического токена (из SemanticTokenTypes)modifiers- Модификаторы токена (из SemanticTokenModifiers)
-
getTypeIndex
Получить индекс типа токена в легенде.- Parameters:
type- Тип токена (из SemanticTokenTypes)- Returns:
- Индекс типа в легенде или -1, если тип не найден
-
computeModifierMask
Вычислить битовую маску модификаторов.- Parameters:
modifiers- Модификаторы токена (из SemanticTokenModifiers)- Returns:
- Битовая маска модификаторов
-