searchInText function

List<String> searchInText(
  1. String text,
  2. SearchType type
)

Implementation

List<String> searchInText(String text, SearchType type) {
  var trimmedText = text.trim();
  List<String> results = [];
  bool scanCompleted = false;
  int endIndex = -1;
  while (!scanCompleted) {
    if(!trimmedText.contains(' ') && !trimmedText.contains('\n')) {
      scanCompleted = true;
      if(_validateAsPerType(trimmedText, type)) {
        results.add(trimmedText);
      }
      return results;
    } else {
      final spaceIndex = trimmedText.indexOf(' ');
      final newLineIndex = trimmedText.indexOf('\n');
      if(spaceIndex < 0) {
        endIndex = newLineIndex;
      } else if(newLineIndex < 0) {
        endIndex = spaceIndex;
      } else {
        endIndex = min(spaceIndex, newLineIndex);
      }
      final word = trimmedText.substring(0, endIndex);
      if(_validateAsPerType(word, type)) {
        results.add(word);
      }
      trimmedText = trimmedText.substring(endIndex+1).trim();
    }
  }
  return results;
}