public void truncatePrefix(boolean preserveSelection, int hideOffset, boolean refreshUi) {
    if (!myOffsets.truncatePrefix()) {
      myArranger.prefixTruncated(this, hideOffset);
      return;
    }
    myPrefixChangeListeners.forEach((listener -> listener.beforeTruncate()));

    if (preserveSelection) {
      markSelectionTouched();
    }

    myPresentableArranger.prefixChanged(this);
    requestResize();
    if (refreshUi && myPresentableArranger == myArranger) {
      refreshUi(false, true);
      ensureSelectionVisible(true);
    }

    for (PrefixChangeListener listener : myPrefixChangeListeners) {
      listener.afterTruncate();
    }
  }
public void truncatePrefix(boolean preserveSelection, int hideOffset, boolean refreshUi)