diff --git a/platform/structuralsearch/source/com/intellij/structuralsearch/StructuralSearchProfileBase.java b/platform/structuralsearch/source/com/intellij/structuralsearch/StructuralSearchProfileBase.java index e6ffe43ca59a..47222f932714 100644 --- a/platform/structuralsearch/source/com/intellij/structuralsearch/StructuralSearchProfileBase.java +++ b/platform/structuralsearch/source/com/intellij/structuralsearch/StructuralSearchProfileBase.java @@ -481,7 +481,7 @@ public abstract class StructuralSearchProfileBase extends StructuralSearchProfil private void visitLiteral(PsiElement literal) { String value = literal.getText(); - if (value.length() > 2 && StringUtil.isQuotedString(value)) { + if (StringUtil.isQuotedString(value)) { if (mySubstitutionPatterns == null) { final String[] prefixes = myGlobalVisitor.getContext().getPattern().getTypedVarPrefixes(); mySubstitutionPatterns = createPatterns(prefixes); 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 bc37f673bb03..802f90bff155 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -1331,6 +1331,7 @@ public class StringUtil extends StringUtilRt { } public static boolean isQuotedString(@NotNull String text) { + if (text.length() < 2) return false; return startsWithChar(text, '\"') && endsWithChar(text, '\"') || startsWithChar(text, '\'') && endsWithChar(text, '\''); } diff --git a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java index 383c07f2a87e..d2f593d13ff1 100644 --- a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java +++ b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -178,6 +178,16 @@ public class StringUtilTest extends TestCase { assertEquals("foo|", StringUtil.unquoteString("foo|", '|')); } + public void testIsQuotedString() { + assertFalse(StringUtil.isQuotedString("")); + assertFalse(StringUtil.isQuotedString("'")); + assertFalse(StringUtil.isQuotedString("\"")); + assertTrue(StringUtil.isQuotedString("\"\"")); + assertTrue(StringUtil.isQuotedString("''")); + assertTrue(StringUtil.isQuotedString("'ab'")); + assertTrue(StringUtil.isQuotedString("\"foo\"")); + } + public void testJoin() { assertEquals("foo,,bar", StringUtil.join(Arrays.asList("foo", "", "bar"), ",")); assertEquals("foo,,bar", StringUtil.join(new String[]{"foo", "", "bar"}, ","));