@Override
    public void childReplaced(@NotNull final PsiTreeChangeEvent event) {
      final PsiElement oldChild = event.getOldChild();
      final PsiElement newChild = event.getNewChild();
      if (oldChild instanceof PsiWhiteSpace && newChild instanceof PsiWhiteSpace) return; //optimization
      childrenChanged();
    }
@Override
    public void childReplaced(@NotNull final PsiTreeChangeEvent event)