@Override
  public @NotNull CharSequence substituteRecursively(@NotNull String text, boolean caseSensitive) {
    if (Strings.isEmpty(text)) {
      return text;
    }

    myMatcher.reset(text);
    while (myMatcher.find()) {
      myMacroMap.put(myMatcher.group(1), null);
    }

    return text;
  }
@Override
  public @NotNull CharSequence substituteRecursively(@NotNull String text, boolean caseSensitive)