Class SemanticTokensProvider
java.lang.Object
com.github._1c_syntax.bsl.languageserver.providers.SemanticTokensProvider
Провайдер для предоставления семантических токенов.
Обрабатывает запросы textDocument/semanticTokens/full, textDocument/semanticTokens/full/delta
и textDocument/semanticTokens/range.
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionSemanticTokensProvider(List<SemanticTokensSupplier> suppliers, ExecutorService executor, ClientCapabilitiesHolder clientCapabilitiesHolder, LanguageClientHolder clientHolder) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidclearCache(URI uri) Очищает кэшированные данные токенов для указанного документа.getSemanticTokensFull(DocumentContext documentContext, SemanticTokensParams params) Получить семантические токены для всего документа.getSemanticTokensFullDelta(DocumentContext documentContext, SemanticTokensDeltaParams params) Получить дельту семантических токенов относительно предыдущего результата.getSemanticTokensRange(DocumentContext documentContext, SemanticTokensRangeParams params) Получить семантические токены для указанного диапазона документа.voidОбрабатывает событие закрытия документа в контексте сервера.voidОбрабатывает событие удаления документа из контекста сервера.voidОбрабатывает событие завершения наполнения контекста сервера.voidОтправить запрос на обновление семантических токенов.
-
Constructor Details
-
SemanticTokensProvider
@ConstructorProperties({"suppliers","executor","clientCapabilitiesHolder","clientHolder"}) public SemanticTokensProvider(List<SemanticTokensSupplier> suppliers, @Qualifier("semanticTokensExecutor") ExecutorService executor, ClientCapabilitiesHolder clientCapabilitiesHolder, LanguageClientHolder clientHolder)
-
-
Method Details
-
getSemanticTokensFull
public SemanticTokens getSemanticTokensFull(DocumentContext documentContext, SemanticTokensParams params) Получить семантические токены для всего документа.- Parameters:
documentContext- Контекст документаparams- Параметры запроса- Returns:
- Семантические токены в дельта-кодированном формате
-
getSemanticTokensFullDelta
public Either<SemanticTokens, SemanticTokensDelta> getSemanticTokensFullDelta(DocumentContext documentContext, SemanticTokensDeltaParams params) Получить дельту семантических токенов относительно предыдущего результата.- Parameters:
documentContext- Контекст документаparams- Параметры запроса с previousResultId- Returns:
- Либо дельту токенов, либо полные токены, если предыдущий результат недоступен
-
getSemanticTokensRange
public SemanticTokens getSemanticTokensRange(DocumentContext documentContext, SemanticTokensRangeParams params) Получить семантические токены для указанного диапазона документа.- Parameters:
documentContext- Контекст документаparams- Параметры запроса с диапазоном- Returns:
- Семантические токены для указанного диапазона в дельта-кодированном формате
-
handleDocumentClosed
Обрабатывает событие закрытия документа в контексте сервера.При закрытии документа очищает кэшированные данные семантических токенов.
- Parameters:
event- событие закрытия документа
-
handleDocumentRemoved
Обрабатывает событие удаления документа из контекста сервера.При удалении документа очищает кэшированные данные семантических токенов.
- Parameters:
event- событие удаления документа
-
handleServerContextPopulated
Обрабатывает событие завершения наполнения контекста сервера.Часть сапплаеров (например, подсветка вызовов методов) опирается на индекс ссылок, который наполняется только после
populateContext. Если клиент запросил токены до наполнения индекса, подсветка остаётся устаревшей до следующей правки файла. Поэтому по завершении наполнения контекста инициируется запросworkspace/semanticTokens/refresh.- Parameters:
event- Событие завершения наполнения контекста сервера.
-
refreshSemanticTokens
public void refreshSemanticTokens()Отправить запрос на обновление семантических токенов.Запрос отправляется только в случае поддержки клиентом возможности
workspace.semanticTokens.refreshSupport. -
clearCache
Очищает кэшированные данные токенов для указанного документа.- Parameters:
uri- URI документа, для которого нужно очистить кэш
-