private static void createSynchronizerFor(Editor editor) {
    Project project = editor.getProject();
    if (project == null || !(editor instanceof EditorImpl)) {
      return;
    }
    ReadAction.nonBlocking((Callable<Void>)() -> {
      if (editor.isDisposed() || project.isDisposed())
        return null;
      Document document = editor.getDocument();
      VirtualFile file = FileDocumentManager.getInstance().getFile(document);
      Language language = findXmlLikeLanguage(project, file);
      if (language != null) {
        new TagNameSynchronizer((EditorImpl)editor, project, language).listenForDocumentChanges();
      }
      return null;
    })
      .coalesceBy(Pair.create(editor, XmlTagNameSynchronizer.class))
      .submit(AppExecutorUtil.getAppExecutorService());
  }
private static void createSynchronizerFor(Editor editor)