Class SemanticTokensProvider

java.lang.Object
com.github._1c_syntax.bsl.languageserver.providers.SemanticTokensProvider

@Component public class SemanticTokensProvider extends Object
Провайдер для предоставления семантических токенов.

Обрабатывает запросы textDocument/semanticTokens/full, textDocument/semanticTokens/full/delta и textDocument/semanticTokens/range.

See Also:
  • Constructor Details

  • 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

      @EventListener public void handleDocumentClosed(ServerContextDocumentClosedEvent event)
      Обрабатывает событие закрытия документа в контексте сервера.

      При закрытии документа очищает кэшированные данные семантических токенов.

      Parameters:
      event - событие закрытия документа
    • handleDocumentRemoved

      @EventListener public void handleDocumentRemoved(ServerContextDocumentRemovedEvent event)
      Обрабатывает событие удаления документа из контекста сервера.

      При удалении документа очищает кэшированные данные семантических токенов.

      Parameters:
      event - событие удаления документа
    • clearCache

      protected void clearCache(URI uri)
      Очищает кэшированные данные токенов для указанного документа.
      Parameters:
      uri - URI документа, для которого нужно очистить кэш