diff options
Diffstat (limited to 'platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java')
-rw-r--r-- | platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java | 53 |
1 files changed, 2 insertions, 51 deletions
diff --git a/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java b/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java index b5edb7fa3282..d71261c5286b 100644 --- a/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java +++ b/platform/script-debugger/backend/src/org/jetbrains/debugger/ValueModifierUtil.java @@ -5,6 +5,7 @@ import com.intellij.openapi.util.AsyncResult; import com.intellij.util.Consumer; import org.jetbrains.annotations.NotNull; import org.jetbrains.debugger.values.Value; +import org.jetbrains.io.JsonUtil; import java.util.Collections; import java.util.List; @@ -12,21 +13,6 @@ import java.util.regex.Pattern; public final class ValueModifierUtil { private static final Pattern KEY_NOTATION_PROPERTY_NAME_PATTERN = Pattern.compile("[\\p{L}_$]+[\\d\\p{L}_$]*"); - private static final String[] REPLACEMENT_CHARS; - - static { - REPLACEMENT_CHARS = new String[128]; - for (int i = 0; i <= 31; i++) { - REPLACEMENT_CHARS[i] = String.format("\\u%04x", (int)i); - } - REPLACEMENT_CHARS['"'] = "\\\""; - REPLACEMENT_CHARS['\\'] = "\\\\"; - REPLACEMENT_CHARS['\t'] = "\\t"; - REPLACEMENT_CHARS['\b'] = "\\b"; - REPLACEMENT_CHARS['\n'] = "\\n"; - REPLACEMENT_CHARS['\r'] = "\\r"; - REPLACEMENT_CHARS['\f'] = "\\f"; - } public static ActionCallback setValue(@NotNull final Variable variable, String newValue, @NotNull final EvaluateContext evaluateContext, @NotNull final ValueModifier modifier) { final ActionCallback callback = new ActionCallback(); @@ -77,44 +63,9 @@ public final class ValueModifierUtil { builder.append(name); } else { - escape(name, builder); + JsonUtil.escape(name, builder); } builder.append(']'); } } - - public static void escape(CharSequence value, StringBuilder sb) { - int length = value.length(); - sb.ensureCapacity(sb.capacity() + length + 2); - sb.append('"'); - int last = 0; - for (int i = 0; i < length; i++) { - char c = value.charAt(i); - String replacement; - if (c < 128) { - replacement = REPLACEMENT_CHARS[c]; - if (replacement == null) { - continue; - } - } - else if (c == '\u2028') { - replacement = "\\u2028"; - } - else if (c == '\u2029') { - replacement = "\\u2029"; - } - else { - continue; - } - if (last < i) { - sb.append(value, last, i); - } - sb.append(replacement); - last = i + 1; - } - if (last < length) { - sb.append(value, last, length); - } - sb.append('"'); - } }
\ No newline at end of file |