@Nullable
  private JavaElementArrangementEntry createNewEntry(
      @NotNull PsiElement element,
      @NotNull TextRange range,
      @NotNull ArrangementSettingsToken type,
      @Nullable String name,
      boolean canArrange) {
    if (!isWithinBounds(range)) {
      return null;
    }
    DefaultArrangementEntry current = getCurrent();
    JavaElementArrangementEntry entry;
    if (canArrange) {
      TextRange expandedRange =
          myDocument == null ? null : ArrangementUtil.expandToLine(range, myDocument);
      TextRange rangeToUse = expandedRange == null ? range : expandedRange;
      entry = new JavaElementArrangementEntry(current, rangeToUse, type, name, true);
    } else {
      entry = new JavaElementArrangementEntry(current, range, type, name, false);
    }
    myEntries.put(element, entry);
    if (current == null) {
      myInfo.addEntry(entry);
    } else {
      current.addChild(entry);
    }

    return entry;
  }