public String truncateText()

in src/main/java/com/epam/aidial/util/TextUtils.java [7:33]


    public String truncateText(String text, int maxLines, int maxChars) {
        int stop = Math.min(maxChars, text.length());
        int lineCount = 0;
        boolean isLastLineEmpty = true;
        int lastLineStart = text.length();
        int lastPosition = lastLineStart;
        for (int i = 0; i < stop; ++i, --lastPosition) {
            char c = text.charAt(lastPosition - 1);
            if (c == '\n') {
                if (!isLastLineEmpty) {
                    isLastLineEmpty = true;
                    lastLineStart = lastPosition;
                    if (++lineCount >= maxLines) {
                        break;
                    }
                }
            } else if (c != '\r') {
                isLastLineEmpty = false;
            }
        }

        if (lastPosition == 0 && !isLastLineEmpty) {
            return text;
        }

        return text.substring(lastLineStart);
    }