From 0e33e1bf0bb6e36b44efd57ffe640649edd7d03a Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Sat, 3 Mar 2012 17:11:15 +0400 Subject: [PATCH] EA-32861 - : StringPattern.matches --- .../plugins/intelliLang/Configuration.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java index febb332b874f..77fb936d1373 100644 --- a/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java +++ b/plugins/IntelliLang/src/org/intellij/plugins/intelliLang/Configuration.java @@ -31,10 +31,7 @@ import com.intellij.psi.PsiElement; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiLanguageInjectionHost; import com.intellij.psi.util.PsiUtilCore; -import com.intellij.util.FileContentUtil; -import com.intellij.util.Function; -import com.intellij.util.NullableFunction; -import com.intellij.util.PairProcessor; +import com.intellij.util.*; import com.intellij.util.containers.ConcurrentFactoryMap; import com.intellij.util.containers.ContainerUtil; import com.intellij.util.containers.Convertor; @@ -209,11 +206,26 @@ public class Configuration implements PersistentStateComponent, Modific final LanguageInjectionSupport support = supports.get(key); final BaseInjection injection = support == null ? new BaseInjection(key) : support.createInjection(child); injection.loadState(child); - myInjections.get(key).add(injection); + InjectionPlace[] places = dropKnownInvalidPlaces(injection.getInjectionPlaces()); + if (places != null) { // not all places were removed + injection.setInjectionPlaces(places); + myInjections.get(key).add(injection); + } } importPlaces(getDefaultInjections()); } + @Nullable + private static InjectionPlace[] dropKnownInvalidPlaces(InjectionPlace[] places) { + InjectionPlace[] result = places; + for (InjectionPlace place : places) { + if (place.getText().contains("matches(\"[^${}/\\\\]+\")")) { + result = ArrayUtil.remove(result, place); + } + } + return places.length != 0 && result.length == 0? null : result; + } + private void loadStateOld(Element element, final LanguageInjectionSupport xmlSupport, final LanguageInjectionSupport javaSupport) { if (xmlSupport != null) { final Element xmlTagMarker = new Element("XmlTagInjection");