@ApiStatus.Internal
  public @Nullable Runnable reparseFile(@NotNull PsiFile file, @NotNull FileElement treeElement, @NotNull CharSequence newText) {
    TextRange changedPsiRange = ChangedPsiRangeUtil.getChangedPsiRange(file, treeElement, newText);
    if (changedPsiRange == null) return null;

    ProgressIndicator indicator = EmptyProgressIndicator.notNullize(ProgressIndicatorProvider.getGlobalProgressIndicator());
    DiffLog log = BlockSupport.getInstance(myProject).reparseRange(file, treeElement, changedPsiRange, newText, indicator,
                                                                   treeElement.getText());
    return () -> runTransaction(new PomTransactionBase(file) {
      @Override
      public @NotNull PomModelEvent runInner() throws IncorrectOperationException {
        return new PomModelEvent(PomModelImpl.this, log.performActualPsiChange(file));
      }
    });
  }
@ApiStatus.Internal
  public @Nullable Runnable reparseFile(@NotNull PsiFile file, @NotNull FileElement treeElement, @NotNull CharSequence newText)