Class NavigationCommandBuilder

java.lang.Object
com.github._1c_syntax.bsl.languageserver.codelenses.NavigationCommandBuilder

@Component public class NavigationCommandBuilder extends Object
Сборка LSP-команд навигации для линз (CodeLens) с учётом подключённого клиента.

Встроенные команды VS Code (editor.action.goToLocations / editor.action.showReferences) нельзя вызвать из линзы напрямую: сервер передаёт аргументы сырым JSON (URI строкой, Position/Location обычными объектами), а команды требуют нативных типов VS Code и отвергают такой вызов. Поэтому для VS Code и совместимых форков целью команды служит обёртка расширения language-1c-bsl, оживляющая аргументы; прочие клиенты (например, LSP4IJ, нативно эмулирующий editor.action.showReferences) получают стандартную команду редактора. Аргументы в обоих случаях одинаковы — различается только идентификатор команды.

See Also:
  • Constructor Details

  • Method Details

    • gotoCommand

      public Command gotoCommand(String title, URI uri, Position position, List<Location> targets)
      Команда перехода к производителю(-ям): прыжок к единственной цели, поповер при нескольких. Подходит прямой линзе «точка внедрения → производитель».
      Parameters:
      title - Заголовок линзы.
      uri - URI документа, из которого выполняется переход.
      position - Позиция курсора, от которой выполняется переход.
      targets - Цели перехода (объявления производителей).
      Returns:
      Команда с идентификатором, выбранным под клиента.
    • referencesCommand

      public Command referencesCommand(String title, URI uri, Position position, List<Location> locations)
      Команда показа списка использований в поповере. Подходит обратной линзе «производитель → точки внедрения».
      Parameters:
      title - Заголовок линзы.
      uri - URI документа, из которого выполняется показ.
      position - Позиция курсора, от которой выполняется показ.
      locations - Местоположения использований.
      Returns:
      Команда с идентификатором, выбранным под клиента.