Class DefinitionProvider

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

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

Обрабатывает запросы textDocument/definition.

See Also:
  • Constructor Details

  • Method Details

    • handleInitializeEvent

      @EventListener(LanguageServerInitializeRequestReceivedEvent.class) public void handleInitializeEvent()
      Обработчик события LanguageServerInitializeRequestReceivedEvent.

      Кэширует клиентскую возможность textDocument.definition.linkSupport, влияющую на формат ответа навигации: при её отсутствии ответ LocationLink понижается до Location.

    • getDefinition

      public Either<List<? extends Location>, List<? extends LocationLink>> getDefinition(DocumentContext documentContext, DefinitionParams params)
      Получить местоположение определения символа в формате, согласованном с клиентскими возможностями.

      По спецификации LSP 3.14+ ответ типа LocationLink допустим, только если клиент заявил textDocument.definition.linkSupport. При наличии поддержки возвращается правая сторона (LocationLink); иначе результат понижается до левой стороны (Location) с targetUri и targetSelectionRange каждой связи.

      Parameters:
      documentContext - Контекст документа
      params - Параметры запроса
      Returns:
      Either со списком LocationLink при поддержке связей либо со списком Location при её отсутствии