@Override
  public @NotNull GenerationNode filterNode(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;
  }
@Override
  public @NotNull GenerationNode filterNode(final @NotNull GenerationNode node)