GenerationNode (final @NotNull GenerationNode node) { final Map<String, String> attributes = node.getTemplateToken().getAttributes(); String classAttributeName = HtmlUtil.CLASS_ATTRIBUTE_NAME; String classValue = attributes.get(classAttributeName); EmmetOptions emmetOptions = EmmetOptions.getInstance(); if (classValue != null && emmetOptions != null) { String elementSeparator = emmetOptions.getBemElementSeparator(); String modifierSeparator = emmetOptions.getBemModifierSeparator(); String shortElementPrefix = emmetOptions.getBemShortElementPrefix(); List<String> classNames = ContainerUtil.map(HtmlUtil.splitClassNames(classValue), (s) -> normalizeClassName(s, elementSeparator, shortElementPrefix)); BEM_STATE.set(node, new BemState(suggestBlockName(classNames), null, null)); Set<String> newClassNames = new LinkedHashSet<>(); for (String className : classNames) { ContainerUtil.addAll(newClassNames, processClassName(className, node, elementSeparator, modifierSeparator)); } attributes.put(classAttributeName, StringUtil.join(newClassNames, " ")); } return node; }