splitTokens method

  1. @visibleForTesting
(List<String>, String) splitTokens(
  1. String text
)

Implementation

@visibleForTesting
(List<String> tokens, String content) splitTokens(String text) {
  if (text.isEmpty) {
    return ([], '');
  }
  final String noBraces = text.replaceAll("{", "").replaceAll("}", "");
  final List<String> parts = noBraces.split(" ").toList();
  final Set<String> tokens = {};
  int contentStartIndex = 0;

  for (int i = 0; i < parts.length; i++) {
    final String part = parts[i];
    if (!tokens.contains(part) && (defaultTokens.containsKey(part) || styles.containsKey(part) || colors.containsKey(part) || actions.containsKey(part))) {
      tokens.add(part);
    } else {
      contentStartIndex = i;
      break;
    }
  }

  final String content = parts.sublist(contentStartIndex).join(" ");
  return (tokens.toList(), content);
}