Class PlatformMethodCallInlayHintSupplier

java.lang.Object
com.github._1c_syntax.bsl.languageserver.inlayhints.AbstractMethodCallInlayHintSupplier<DefaultInlayHintData>
com.github._1c_syntax.bsl.languageserver.inlayhints.PlatformMethodCallInlayHintSupplier
All Implemented Interfaces:
InlayHintSupplier<DefaultInlayHintData>

@Component public class PlatformMethodCallInlayHintSupplier extends AbstractMethodCallInlayHintSupplier<DefaultInlayHintData>
Inlay-hint'ы с именами параметров для вызовов ПЛАТФОРМЕННЫХ методов и глобальных функций (по аналогии с SourceDefinedMethodCallInlayHintSupplier, но для не-source-defined символов: СтрНайти("a","b","",1), Сообщение.Сообщить(), Новый Массив(5) и т.п.).

Резолв члена выполняется через TypeService.memberAt(DocumentContext, Position), что покрывает три кейса:

Source-defined вызовы покрываются другим supplier'ом и здесь фильтруются — TypeService.memberAt(DocumentContext, Position) для них возвращает MemberDescriptor с непустым sourceSymbol.

  • Constructor Details

  • Method Details

    • getInlayHintDataClass

      public Class<DefaultInlayHintData> getInlayHintDataClass()
      Получить класс для хранения данных хинта.

      При создании не-разрешённого хинта поле InlayHint.setData(Object) должно заполняться объектом данного класса.

      Платформенные методы не имеют исходного расположения, поэтому хинты не несут ссылок и ничего не откладывают на резолв — используется дефолтный дата-класс DefaultInlayHintData.

      Returns:
      Класс DefaultInlayHintData.
    • getInlayHints

      public List<InlayHint> getInlayHints(DocumentContext documentContext, InlayHintParams params)
      Description copied from interface: InlayHintSupplier
      Получить inlay hints, доступные в документе.
      Parameters:
      documentContext - Контекст документа, для которого надо рассчитать inlay hints.
      params - Параметры запроса.
      Returns:
      Список inlay hints в документе.