Class ImplementationProvider

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

@Component public class ImplementationProvider extends Object
Провайдер запроса textDocument/implementation для интерфейсов OneScript библиотеки extends.

Интерфейс объявляется аннотацией-маркером &Интерфейс на конструкторе класса-интерфейса; класс реализует его аннотацией &Реализует("Интерфейс") (повторяемой). Переход к реализациям:

  • курсор на экспортном методе интерфейса → одноимённые методы во всех реализующих классах;
  • курсор в любом другом месте файла-интерфейса → сами реализующие классы.
Сам разбор отношений &Реализует/&Расширяет (в т.ч. транзитивный обход через абстрактных родителей и иерархию интерфейсов) делегирован TypeRelations.implementors(DocumentContext).
See Also:
  • Constructor Details

  • Method Details

    • getImplementations

      public List<Location> getImplementations(DocumentContext documentContext, ImplementationParams params)
      Найти реализации интерфейса, представленного текущим документом.
      Parameters:
      documentContext - контекст документа (ожидается файл-интерфейс)
      params - параметры запроса (позиция курсора)
      Returns:
      локации реализующих методов/классов; пустой список, если документ не является интерфейсом