From ff8bd34fc412f87f4a883587698b570483953163 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Wed, 10 Aug 2011 22:07:45 +0400 Subject: [PATCH] parser-based completion 1 (single item) --- .../lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java | 2 ++ .../com/intellij/psi/impl/source/resolve/FileContextUtil.java | 1 + .../util/src/com/intellij/openapi/util/text/StringUtil.java | 3 ++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java b/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java index fc487e4f4263..50dc2df3d34a 100644 --- a/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java +++ b/platform/lang-impl/src/com/intellij/lang/impl/PsiBuilderImpl.java @@ -29,6 +29,7 @@ import com.intellij.psi.PsiErrorElement; import com.intellij.psi.PsiFile; import com.intellij.psi.TokenType; import com.intellij.psi.impl.source.CharTableImpl; +import com.intellij.psi.impl.source.resolve.FileContextUtil; import com.intellij.psi.impl.source.text.BlockSupportImpl; import com.intellij.psi.impl.source.text.DiffLog; import com.intellij.psi.impl.source.tree.*; @@ -1504,6 +1505,7 @@ public class PsiBuilderImpl extends UserDataHolderBase implements PsiBuilder { @Override public T getUserDataUnprotected(@NotNull final Key key) { + if (key == FileContextUtil.CONTAINING_FILE_KEY) return (T)myFile; //noinspection unchecked return myUserData != null ? (T)myUserData.get(key) : null; } diff --git a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/FileContextUtil.java b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/FileContextUtil.java index 1b572bd3e5ad..a7f0d87cded2 100644 --- a/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/FileContextUtil.java +++ b/platform/lang-impl/src/com/intellij/psi/impl/source/resolve/FileContextUtil.java @@ -27,6 +27,7 @@ import org.jetbrains.annotations.Nullable; */ public class FileContextUtil { public static final Key INJECTED_IN_ELEMENT = Key.create("injectedIn"); + public static final Key CONTAINING_FILE_KEY = Key.create("CONTAINING_FILE_KEY"); private FileContextUtil() { } 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 e1f5407da39f..3c89c2b801b8 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -614,7 +614,8 @@ public class StringUtil { @NotNull public static String unquoteString(@NotNull String s) { - if (s.length() <= 1 || s.charAt(0) != '"' || s.charAt(s.length() - 1) != '"') { + char c; + if (s.length() <= 1 || (c = s.charAt(0)) != '"' && c != '\'' || s.charAt(s.length() - 1) != c) { return s; } return s.substring(1, s.length() - 1);