diff --git a/platform/util/src/com/intellij/openapi/diff/impl/ComparisonPolicy.java b/platform/util/src/com/intellij/openapi/diff/impl/ComparisonPolicy.java index 308b3ec65bec..0f6f273b5e5a 100644 --- a/platform/util/src/com/intellij/openapi/diff/impl/ComparisonPolicy.java +++ b/platform/util/src/com/intellij/openapi/diff/impl/ComparisonPolicy.java @@ -90,10 +90,10 @@ public abstract class ComparisonPolicy { boolean atBeginning = true; for (int i = 0; i < strings.length; i++) { String string = strings[i]; - String wrapper = atBeginning ? trimLeading(string) : string; + String wrapper = atBeginning ? StringUtil.trimLeading(string) : string; if (StringUtil.endsWithChar(wrapper, '\n')) { atBeginning = true; - wrapper = trimTrailing(wrapper); + wrapper = StringUtil.trimTrailing(wrapper); } else { atBeginning = false; @@ -103,17 +103,7 @@ public abstract class ComparisonPolicy { return result; } - private String trimLeading(String string) { - int index = 0; - while (index < string.length() && Character.isWhitespace(string.charAt(index))) index++; - return string.substring(index); - } - private String trimTrailing(String string) { - int index = string.length() - 1; - while (index >= 0 && Character.isWhitespace(string.charAt(index))) index--; - return string.substring(0, index + 1); - } @SuppressWarnings({"HardCodedStringLiteral"}) public String toString() { diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index 259b54ec86dc..d7917a5a1ac4 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -237,10 +237,10 @@ public class StringUtil { if (convertBreaks) { html = html.replaceAll("
", "\n\n"); } - + return html.replaceAll("<(.|\n)*?>", ""); } - + @Nullable public static String toLowerCase(@Nullable final String str) { return str == null ? null : str.toLowerCase(); @@ -294,8 +294,7 @@ public class StringUtil { @NotNull public static String convertLineSeparators(@NotNull String text, @NotNull String newSeparator, @Nullable int[] offsetsToKeep, - boolean keepCarriageReturn) - { + boolean keepCarriageReturn) { StringBuilder buffer = null; int intactLength = 0; final boolean newSeparatorIsSlashN = "\n".equals(newSeparator); @@ -899,6 +898,20 @@ public class StringUtil { return text; } + @NotNull + public static String trimLeading(@NotNull String string) { + int index = 0; + while (index < string.length() && Character.isWhitespace(string.charAt(index))) index++; + return string.substring(index); + } + + @NotNull + public static String trimTrailing(@NotNull String string) { + int index = string.length() - 1; + while (index >= 0 && Character.isWhitespace(string.charAt(index))) index--; + return string.substring(0, index + 1); + } + public static boolean startsWithChar(@Nullable CharSequence s, char prefix) { return s != null && s.length() != 0 && s.charAt(0) == prefix; } @@ -968,7 +981,8 @@ public class StringUtil { public static String nullize(final @Nullable String s, boolean nullizeSpaces) { if (nullizeSpaces) { if (isEmpty(s)) return null; - } else { + } + else { if (isEmptyOrSpaces(s)) return null; } return s; @@ -980,14 +994,14 @@ public class StringUtil { /** * Allows to answer if given symbol is white space, tabulation or line feed. - * - * @param c symbol to check - * @return true if given symbol is white space, tabulation or line feed; false otherwise + * + * @param c symbol to check + * @return true if given symbol is white space, tabulation or line feed; false otherwise */ public static boolean isWhiteSpace(char c) { return c == '\n' || c == '\t' || c == ' '; } - + @NotNull public static String getThrowableText(@NotNull Throwable aThrowable) { return ExceptionUtil.getThrowableText(aThrowable); @@ -1466,7 +1480,8 @@ public class StringUtil { return true; } - public static boolean startsWith(@NotNull CharSequence text, int startIndex,@NotNull CharSequence prefix) { + + public static boolean startsWith(@NotNull CharSequence text, int startIndex, @NotNull CharSequence prefix) { int l1 = text.length() - startIndex; int l2 = prefix.length(); if (l1 < l2) return false; @@ -1665,7 +1680,7 @@ public class StringUtil { idx += 2; } } - + public static String unescapeSlashes(@NotNull final String str) { final StringBuilder buf = StringBuilderSpinAllocator.alloc(); try { @@ -1673,7 +1688,7 @@ public class StringUtil { return buf.toString(); } finally { - StringBuilderSpinAllocator.dispose(buf); + StringBuilderSpinAllocator.dispose(buf); } } @@ -1695,7 +1710,7 @@ public class StringUtil { public static void quote(@NotNull final StringBuilder builder) { quote(builder, '\"'); } - + public static void quote(@NotNull final StringBuilder builder, final char quotingChar) { builder.insert(0, quotingChar); builder.append(quotingChar); @@ -2088,7 +2103,7 @@ public class StringUtil { private static int naturalCompare(String string1, String string2, boolean caseSensitive) { final int string1Length = string1.length(); final int string2Length = string2.length(); - for(int i = 0, j = 0; i < string1Length && j < string2Length; i++, j++) { + for (int i = 0, j = 0; i < string1Length && j < string2Length; i++, j++) { char ch1 = string1.charAt(i); char ch2 = string2.charAt(j); if ((isDigit(ch1) || ch1 == ' ') && (isDigit(ch2) || ch2 == ' ')) { @@ -2118,10 +2133,12 @@ public class StringUtil { return diff; } } - } else { + } + else { if (caseSensitive) { return ch1 - ch2; - } else { + } + else { // similar logic to charsMatch() below if (ch1 != ch2) { final int diff1 = Character.toUpperCase(ch1) - Character.toUpperCase(ch2); @@ -2163,7 +2180,7 @@ public class StringUtil { } public static boolean equals(@Nullable CharSequence s1, @Nullable CharSequence s2) { - if (s1 == null ^ s2 == null) { + if (s1 == null ^ s2 == null) { return false; }