280 lines
14 KiB
Java
280 lines
14 KiB
Java
package kotlin.text;
|
|
|
|
import C.w;
|
|
import java.util.ArrayList;
|
|
import java.util.Iterator;
|
|
import java.util.List;
|
|
import kotlin.Metadata;
|
|
import kotlin.collections.CollectionsKt;
|
|
import kotlin.collections.CollectionsKt__IterablesKt;
|
|
import kotlin.collections.CollectionsKt___CollectionsKt;
|
|
import kotlin.internal.IntrinsicConstEvaluation;
|
|
import kotlin.internal.PlatformImplementationsKt;
|
|
import kotlin.jvm.functions.Function1;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlin.jvm.internal.SourceDebugExtension;
|
|
import kotlin.sequences.SequencesKt;
|
|
import kotlin.sequences.SequencesKt___SequencesKt;
|
|
|
|
@Metadata(d1 = {"\u0000\u001e\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010\u000e\n\u0002\b\u0003\n\u0002\u0010\b\n\u0002\b\u0003\n\u0002\u0010 \n\u0002\b\u000b\u001a!\u0010\u0000\u001a\u000e\u0012\u0004\u0012\u00020\u0002\u0012\u0004\u0012\u00020\u00020\u00012\u0006\u0010\u0003\u001a\u00020\u0002H\u0002¢\u0006\u0002\b\u0004\u001a\u0011\u0010\u0005\u001a\u00020\u0006*\u00020\u0002H\u0002¢\u0006\u0002\b\u0007\u001a\u0014\u0010\b\u001a\u00020\u0002*\u00020\u00022\b\b\u0002\u0010\u0003\u001a\u00020\u0002\u001aJ\u0010\t\u001a\u00020\u0002*\b\u0012\u0004\u0012\u00020\u00020\n2\u0006\u0010\u000b\u001a\u00020\u00062\u0012\u0010\f\u001a\u000e\u0012\u0004\u0012\u00020\u0002\u0012\u0004\u0012\u00020\u00020\u00012\u0014\u0010\r\u001a\u0010\u0012\u0004\u0012\u00020\u0002\u0012\u0006\u0012\u0004\u0018\u00010\u00020\u0001H\u0082\b¢\u0006\u0002\b\u000e\u001a\u0014\u0010\u000f\u001a\u00020\u0002*\u00020\u00022\b\b\u0002\u0010\u0010\u001a\u00020\u0002\u001a\u001e\u0010\u0011\u001a\u00020\u0002*\u00020\u00022\b\b\u0002\u0010\u0010\u001a\u00020\u00022\b\b\u0002\u0010\u0012\u001a\u00020\u0002\u001a\f\u0010\u0013\u001a\u00020\u0002*\u00020\u0002H\u0007\u001a\u0016\u0010\u0014\u001a\u00020\u0002*\u00020\u00022\b\b\u0002\u0010\u0012\u001a\u00020\u0002H\u0007¨\u0006\u0015"}, d2 = {"getIndentFunction", "Lkotlin/Function1;", "", "indent", "getIndentFunction$StringsKt__IndentKt", "indentWidth", "", "indentWidth$StringsKt__IndentKt", "prependIndent", "reindent", "", "resultSizeEstimate", "indentAddFunction", "indentCutFunction", "reindent$StringsKt__IndentKt", "replaceIndent", "newIndent", "replaceIndentByMargin", "marginPrefix", "trimIndent", "trimMargin", "kotlin-stdlib"}, k = 5, mv = {1, 9, 0}, xi = 49, xs = "kotlin/text/StringsKt")
|
|
@SourceDebugExtension({"SMAP\nIndent.kt\nKotlin\n*S Kotlin\n*F\n+ 1 Indent.kt\nkotlin/text/StringsKt__IndentKt\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n+ 3 _Collections.kt\nkotlin/collections/CollectionsKt___CollectionsKt\n+ 4 _Strings.kt\nkotlin/text/StringsKt___StringsKt\n*L\n1#1,123:1\n113#1,2:125\n115#1,4:140\n120#1,2:153\n113#1,2:162\n115#1,4:177\n120#1,2:184\n1#2:124\n1#2:150\n1#2:181\n1#2:205\n1569#3,11:127\n1864#3,2:138\n1866#3:151\n1580#3:152\n766#3:155\n857#3,2:156\n1549#3:158\n1620#3,3:159\n1569#3,11:164\n1864#3,2:175\n1866#3:182\n1580#3:183\n1569#3,11:192\n1864#3,2:203\n1866#3:206\n1580#3:207\n151#4,6:144\n151#4,6:186\n*S KotlinDebug\n*F\n+ 1 Indent.kt\nkotlin/text/StringsKt__IndentKt\n*L\n38#1:125,2\n38#1:140,4\n38#1:153,2\n78#1:162,2\n78#1:177,4\n78#1:184,2\n38#1:150\n78#1:181\n114#1:205\n38#1:127,11\n38#1:138,2\n38#1:151\n38#1:152\n74#1:155\n74#1:156,2\n75#1:158\n75#1:159,3\n78#1:164,11\n78#1:175,2\n78#1:182\n78#1:183\n114#1:192,11\n114#1:203,2\n114#1:206\n114#1:207\n39#1:144,6\n101#1:186,6\n*E\n"})
|
|
/* loaded from: classes3.dex */
|
|
public class StringsKt__IndentKt extends StringsKt__AppendableKt {
|
|
private static final Function1<String, String> getIndentFunction$StringsKt__IndentKt(final String str) {
|
|
return str.length() == 0 ? new Function1<String, String>() { // from class: kotlin.text.StringsKt__IndentKt$getIndentFunction$1
|
|
@Override // kotlin.jvm.functions.Function1
|
|
public final String invoke(String line) {
|
|
Intrinsics.checkNotNullParameter(line, "line");
|
|
return line;
|
|
}
|
|
} : new Function1<String, String>() { // from class: kotlin.text.StringsKt__IndentKt$getIndentFunction$2
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
{
|
|
super(1);
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function1
|
|
public final String invoke(String line) {
|
|
Intrinsics.checkNotNullParameter(line, "line");
|
|
return w.r(new StringBuilder(), str, line);
|
|
}
|
|
};
|
|
}
|
|
|
|
private static final int indentWidth$StringsKt__IndentKt(String str) {
|
|
int length = str.length();
|
|
int i = 0;
|
|
while (true) {
|
|
if (i >= length) {
|
|
i = -1;
|
|
break;
|
|
}
|
|
if (!CharsKt__CharJVMKt.isWhitespace(str.charAt(i))) {
|
|
break;
|
|
}
|
|
i++;
|
|
}
|
|
return i == -1 ? str.length() : i;
|
|
}
|
|
|
|
public static final String prependIndent(String str, final String indent) {
|
|
String joinToString$default;
|
|
Intrinsics.checkNotNullParameter(str, "<this>");
|
|
Intrinsics.checkNotNullParameter(indent, "indent");
|
|
joinToString$default = SequencesKt___SequencesKt.joinToString$default(SequencesKt.map(StringsKt__StringsKt.lineSequence(str), new Function1<String, String>() { // from class: kotlin.text.StringsKt__IndentKt$prependIndent$1
|
|
/* JADX WARN: 'super' call moved to the top of the method (can break code semantics) */
|
|
{
|
|
super(1);
|
|
}
|
|
|
|
@Override // kotlin.jvm.functions.Function1
|
|
public final String invoke(String it) {
|
|
Intrinsics.checkNotNullParameter(it, "it");
|
|
if (StringsKt__StringsJVMKt.isBlank(it)) {
|
|
return it.length() < indent.length() ? indent : it;
|
|
}
|
|
return w.r(new StringBuilder(), indent, it);
|
|
}
|
|
}), "\n", null, null, 0, null, null, 62, null);
|
|
return joinToString$default;
|
|
}
|
|
|
|
public static /* synthetic */ String prependIndent$default(String str, String str2, int i, Object obj) {
|
|
if ((i & 1) != 0) {
|
|
str2 = " ";
|
|
}
|
|
return prependIndent(str, str2);
|
|
}
|
|
|
|
private static final String reindent$StringsKt__IndentKt(List<String> list, int i, Function1<? super String, String> function1, Function1<? super String, String> function12) {
|
|
Appendable joinTo$default;
|
|
String invoke;
|
|
int lastIndex = CollectionsKt.getLastIndex(list);
|
|
ArrayList arrayList = new ArrayList();
|
|
int i4 = 0;
|
|
for (Object obj : list) {
|
|
int i5 = i4 + 1;
|
|
if (i4 < 0) {
|
|
if (!PlatformImplementationsKt.apiVersionIsAtLeast(1, 3, 0)) {
|
|
throw new ArithmeticException("Index overflow has happened.");
|
|
}
|
|
CollectionsKt.throwIndexOverflow();
|
|
}
|
|
String str = (String) obj;
|
|
if ((i4 == 0 || i4 == lastIndex) && StringsKt__StringsJVMKt.isBlank(str)) {
|
|
str = null;
|
|
} else {
|
|
String invoke2 = function12.invoke(str);
|
|
if (invoke2 != null && (invoke = function1.invoke(invoke2)) != null) {
|
|
str = invoke;
|
|
}
|
|
}
|
|
if (str != null) {
|
|
arrayList.add(str);
|
|
}
|
|
i4 = i5;
|
|
}
|
|
joinTo$default = CollectionsKt___CollectionsKt.joinTo$default(arrayList, new StringBuilder(i), "\n", null, null, 0, null, null, 124, null);
|
|
String sb = ((StringBuilder) joinTo$default).toString();
|
|
Intrinsics.checkNotNullExpressionValue(sb, "toString(...)");
|
|
return sb;
|
|
}
|
|
|
|
public static final String replaceIndent(String str, String newIndent) {
|
|
int collectionSizeOrDefault;
|
|
Comparable minOrNull;
|
|
Appendable joinTo$default;
|
|
String invoke;
|
|
Intrinsics.checkNotNullParameter(str, "<this>");
|
|
Intrinsics.checkNotNullParameter(newIndent, "newIndent");
|
|
List<String> lines = StringsKt__StringsKt.lines(str);
|
|
ArrayList arrayList = new ArrayList();
|
|
for (Object obj : lines) {
|
|
if (!StringsKt__StringsJVMKt.isBlank((String) obj)) {
|
|
arrayList.add(obj);
|
|
}
|
|
}
|
|
collectionSizeOrDefault = CollectionsKt__IterablesKt.collectionSizeOrDefault(arrayList, 10);
|
|
ArrayList arrayList2 = new ArrayList(collectionSizeOrDefault);
|
|
Iterator it = arrayList.iterator();
|
|
while (it.hasNext()) {
|
|
arrayList2.add(Integer.valueOf(indentWidth$StringsKt__IndentKt((String) it.next())));
|
|
}
|
|
minOrNull = CollectionsKt___CollectionsKt.minOrNull((Iterable<? extends Comparable>) ((Iterable) arrayList2));
|
|
Integer num = (Integer) minOrNull;
|
|
int i = 0;
|
|
int intValue = num != null ? num.intValue() : 0;
|
|
int size = (lines.size() * newIndent.length()) + str.length();
|
|
Function1<String, String> indentFunction$StringsKt__IndentKt = getIndentFunction$StringsKt__IndentKt(newIndent);
|
|
int lastIndex = CollectionsKt.getLastIndex(lines);
|
|
ArrayList arrayList3 = new ArrayList();
|
|
for (Object obj2 : lines) {
|
|
int i4 = i + 1;
|
|
if (i < 0) {
|
|
CollectionsKt.throwIndexOverflow();
|
|
}
|
|
String str2 = (String) obj2;
|
|
if ((i == 0 || i == lastIndex) && StringsKt__StringsJVMKt.isBlank(str2)) {
|
|
str2 = null;
|
|
} else {
|
|
String drop = StringsKt___StringsKt.drop(str2, intValue);
|
|
if (drop != null && (invoke = indentFunction$StringsKt__IndentKt.invoke(drop)) != null) {
|
|
str2 = invoke;
|
|
}
|
|
}
|
|
if (str2 != null) {
|
|
arrayList3.add(str2);
|
|
}
|
|
i = i4;
|
|
}
|
|
joinTo$default = CollectionsKt___CollectionsKt.joinTo$default(arrayList3, new StringBuilder(size), "\n", null, null, 0, null, null, 124, null);
|
|
String sb = ((StringBuilder) joinTo$default).toString();
|
|
Intrinsics.checkNotNullExpressionValue(sb, "toString(...)");
|
|
return sb;
|
|
}
|
|
|
|
public static /* synthetic */ String replaceIndent$default(String str, String str2, int i, Object obj) {
|
|
if ((i & 1) != 0) {
|
|
str2 = "";
|
|
}
|
|
return replaceIndent(str, str2);
|
|
}
|
|
|
|
public static final String replaceIndentByMargin(String str, String newIndent, String marginPrefix) {
|
|
Appendable joinTo$default;
|
|
String str2;
|
|
String invoke;
|
|
Intrinsics.checkNotNullParameter(str, "<this>");
|
|
Intrinsics.checkNotNullParameter(newIndent, "newIndent");
|
|
Intrinsics.checkNotNullParameter(marginPrefix, "marginPrefix");
|
|
if (StringsKt__StringsJVMKt.isBlank(marginPrefix)) {
|
|
throw new IllegalArgumentException("marginPrefix must be non-blank string.");
|
|
}
|
|
List<String> lines = StringsKt__StringsKt.lines(str);
|
|
int size = (lines.size() * newIndent.length()) + str.length();
|
|
Function1<String, String> indentFunction$StringsKt__IndentKt = getIndentFunction$StringsKt__IndentKt(newIndent);
|
|
int lastIndex = CollectionsKt.getLastIndex(lines);
|
|
ArrayList arrayList = new ArrayList();
|
|
int i = 0;
|
|
for (Object obj : lines) {
|
|
int i4 = i + 1;
|
|
if (i < 0) {
|
|
CollectionsKt.throwIndexOverflow();
|
|
}
|
|
String str3 = (String) obj;
|
|
String str4 = null;
|
|
if ((i == 0 || i == lastIndex) && StringsKt__StringsJVMKt.isBlank(str3)) {
|
|
str2 = marginPrefix;
|
|
str3 = null;
|
|
} else {
|
|
int length = str3.length();
|
|
int i5 = 0;
|
|
while (true) {
|
|
if (i5 >= length) {
|
|
i5 = -1;
|
|
break;
|
|
}
|
|
if (!CharsKt__CharJVMKt.isWhitespace(str3.charAt(i5))) {
|
|
break;
|
|
}
|
|
i5++;
|
|
}
|
|
if (i5 == -1) {
|
|
str2 = marginPrefix;
|
|
} else {
|
|
int i6 = i5;
|
|
str2 = marginPrefix;
|
|
if (StringsKt__StringsJVMKt.startsWith$default(str3, str2, i6, false, 4, null)) {
|
|
int length2 = str2.length() + i6;
|
|
Intrinsics.checkNotNull(str3, "null cannot be cast to non-null type java.lang.String");
|
|
str4 = str3.substring(length2);
|
|
Intrinsics.checkNotNullExpressionValue(str4, "substring(...)");
|
|
}
|
|
}
|
|
if (str4 != null && (invoke = indentFunction$StringsKt__IndentKt.invoke(str4)) != null) {
|
|
str3 = invoke;
|
|
}
|
|
}
|
|
if (str3 != null) {
|
|
arrayList.add(str3);
|
|
}
|
|
i = i4;
|
|
marginPrefix = str2;
|
|
}
|
|
joinTo$default = CollectionsKt___CollectionsKt.joinTo$default(arrayList, new StringBuilder(size), "\n", null, null, 0, null, null, 124, null);
|
|
String sb = ((StringBuilder) joinTo$default).toString();
|
|
Intrinsics.checkNotNullExpressionValue(sb, "toString(...)");
|
|
return sb;
|
|
}
|
|
|
|
public static /* synthetic */ String replaceIndentByMargin$default(String str, String str2, String str3, int i, Object obj) {
|
|
if ((i & 1) != 0) {
|
|
str2 = "";
|
|
}
|
|
if ((i & 2) != 0) {
|
|
str3 = "|";
|
|
}
|
|
return replaceIndentByMargin(str, str2, str3);
|
|
}
|
|
|
|
@IntrinsicConstEvaluation
|
|
public static String trimIndent(String str) {
|
|
Intrinsics.checkNotNullParameter(str, "<this>");
|
|
return replaceIndent(str, "");
|
|
}
|
|
|
|
@IntrinsicConstEvaluation
|
|
public static final String trimMargin(String str, String marginPrefix) {
|
|
Intrinsics.checkNotNullParameter(str, "<this>");
|
|
Intrinsics.checkNotNullParameter(marginPrefix, "marginPrefix");
|
|
return replaceIndentByMargin(str, "", marginPrefix);
|
|
}
|
|
|
|
public static /* synthetic */ String trimMargin$default(String str, String str2, int i, Object obj) {
|
|
if ((i & 1) != 0) {
|
|
str2 = "|";
|
|
}
|
|
return trimMargin(str, str2);
|
|
}
|
|
}
|