Class RenameWorkspaceEditBuilder

java.lang.Object
com.github._1c_syntax.bsl.languageserver.rename.RenameWorkspaceEditBuilder

@Component public class RenameWorkspaceEditBuilder extends Object
Сборщик WorkspaceEdit для переименования символа.

Инкапсулирует выбор формата результата по заявленным клиентом возможностям workspace.workspaceEdit: построение documentChanges (TextDocumentEdit с версионированным идентификатором документа), оборачивание правок в AnnotatedTextEdit со связыванием с ChangeAnnotation либо понижение результата до legacy changes-map для обратной совместимости.

  • Constructor Details

  • Method Details

    • handleInitializeEvent

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

      Кэширует клиентские возможности workspace.workspaceEdit.documentChanges и workspace.workspaceEdit.changeAnnotationSupport, влияющие на формат результата переименования: при их отсутствии результат понижается до legacy changes-map без аннотаций.

    • build

      public WorkspaceEdit build(Map<String, List<TextEdit>> changes, String oldName, String newName)
      Построить WorkspaceEdit с правками переименования символа.

      Если клиент заявил workspace.workspaceEdit.documentChanges, правки группируются по документам в documentChanges (TextDocumentEdit с версионированным идентификатором документа); при дополнительной поддержке workspace.workspaceEdit.changeAnnotationSupport правки оборачиваются в AnnotatedTextEdit и связываются с ChangeAnnotation, описывающей переименование. Иначе результат понижается до legacy changes-map для обратной совместимости.

      Parameters:
      changes - Правки, сгруппированные по uri документа.
      oldName - Прежнее имя символа, для текста аннотации.
      newName - Новое имя символа, для текста аннотации.
      Returns:
      Изменения документов