Class InlayHintProvider

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

@Component public class InlayHintProvider extends Object
Провайдер, обрабатывающий запросы textDocument/inlayHint и inlayHint/resolve.
See Also:
  • Constructor Details

  • Method Details

    • getInlayHint

      public List<InlayHint> getInlayHint(DocumentContext documentContext, InlayHintParams params)
      Получить список inlay hints в документе.
      Parameters:
      documentContext - Документ, для которого запрашиваются inlay hints.
      params - Параметры запроса.
      Returns:
      Список inlay hints в документе
    • resolveInlayHint

      public InlayHint resolveInlayHint(DocumentContext documentContext, InlayHint unresolved, InlayHintData data)
      Разрешить хинт (inlayHint/resolve) — дорассчитать его «тяжёлые» поля (tooltip и т.п.).

      По идентификатору сапплаера из данных хинта находит сапплаер-владельца и делегирует ему InlayHintSupplier.resolve(DocumentContext, InlayHint, T). После разрешения поле InlayHint.getData() очищается для экономии трафика.

      Parameters:
      documentContext - Контекст документа, к которому относится хинт.
      unresolved - Неразрешённый хинт.
      data - Данные хинта.
      Returns:
      Разрешённый хинт.
    • extractData

      public @Nullable InlayHintData extractData(InlayHint inlayHint)
      Извлечь данные хинта из хинта.

      Возвращает объект данных типа, с которым был зарегистрирован сапплаер хинта (параметр-тип класса сапплаера).

      Parameters:
      inlayHint - Хинт, из которого необходимо извлечь данные.
      Returns:
      Извлечённые данные хинта либо null, если хинт пришёл без поля InlayHint.getData() — резолвить такой хинт нечем.
    • handleEvent

      Обработчик события LanguageServerConfigurationChangedEvent.

      В случае поддержки запроса подключенным клиентом инициирует запрос workspace/inlayHint/refresh.

      Parameters:
      event - Событие
    • refreshInlayHints

      public void refreshInlayHints()
      Отправить запрос на обновление inlay hints.