From 73963b2c7d73da44a6d470a5504447dd4b77778b Mon Sep 17 00:00:00 2001 From: Alexander Zolotov Date: Fri, 8 Feb 2013 17:58:54 +0400 Subject: [PATCH] WEB-6561 Emmet, bem filter: multiple element prefixes work incorrecly when class names contain '-' --- .../template/emmet/filters/BemEmmetFilter.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/xml/impl/src/com/intellij/codeInsight/template/emmet/filters/BemEmmetFilter.java b/xml/impl/src/com/intellij/codeInsight/template/emmet/filters/BemEmmetFilter.java index f106d7843a85..f226864dd2c1 100644 --- a/xml/impl/src/com/intellij/codeInsight/template/emmet/filters/BemEmmetFilter.java +++ b/xml/impl/src/com/intellij/codeInsight/template/emmet/filters/BemEmmetFilter.java @@ -60,7 +60,16 @@ public class BemEmmetFilter extends ZenCodingFilter { private static final Function CLASS_NAME_NORMALIZER = new Function() { @Override public String apply(@NotNull String input) { - return input.replaceAll("^" + Pattern.quote(SHORT_ELEMENT_PREFIX), ELEMENT_SEPARATOR); + if(!input.startsWith(SHORT_ELEMENT_PREFIX)) { + return input; + } + + StringBuilder result = new StringBuilder(); + while (input.startsWith(SHORT_ELEMENT_PREFIX)) { + input = input.substring(SHORT_ELEMENT_PREFIX.length()); + result.append(ELEMENT_SEPARATOR); + } + return result.append(input).toString(); } };