getSearchReadSummaryText static method

String getSearchReadSummaryText({
  1. required int searchCount,
  2. required int readCount,
  3. required bool isActive,
  4. int replCount = 0,
  5. int memorySearchCount = 0,
  6. int memoryReadCount = 0,
  7. int memoryWriteCount = 0,
  8. int teamMemorySearchCount = 0,
  9. int teamMemoryReadCount = 0,
  10. int teamMemoryWriteCount = 0,
  11. int listCount = 0,
})

Generate a summary text for search/read/REPL counts.

Implementation

static String getSearchReadSummaryText({
  required int searchCount,
  required int readCount,
  required bool isActive,
  int replCount = 0,
  int memorySearchCount = 0,
  int memoryReadCount = 0,
  int memoryWriteCount = 0,
  int teamMemorySearchCount = 0,
  int teamMemoryReadCount = 0,
  int teamMemoryWriteCount = 0,
  int listCount = 0,
}) {
  final parts = <String>[];

  // Memory operations first.
  if (memoryReadCount > 0) {
    final verb = isActive
        ? (parts.isEmpty ? 'Recalling' : 'recalling')
        : (parts.isEmpty ? 'Recalled' : 'recalled');
    parts.add(
      '$verb $memoryReadCount ${memoryReadCount == 1 ? 'memory' : 'memories'}',
    );
  }
  if (memorySearchCount > 0) {
    final verb = isActive
        ? (parts.isEmpty ? 'Searching' : 'searching')
        : (parts.isEmpty ? 'Searched' : 'searched');
    parts.add('$verb memories');
  }
  if (memoryWriteCount > 0) {
    final verb = isActive
        ? (parts.isEmpty ? 'Writing' : 'writing')
        : (parts.isEmpty ? 'Wrote' : 'wrote');
    parts.add(
      '$verb $memoryWriteCount ${memoryWriteCount == 1 ? 'memory' : 'memories'}',
    );
  }

  if (searchCount > 0) {
    final verb = isActive
        ? (parts.isEmpty ? 'Searching for' : 'searching for')
        : (parts.isEmpty ? 'Searched for' : 'searched for');
    parts.add(
      '$verb $searchCount ${searchCount == 1 ? 'pattern' : 'patterns'}',
    );
  }

  if (readCount > 0) {
    final verb = isActive
        ? (parts.isEmpty ? 'Reading' : 'reading')
        : (parts.isEmpty ? 'Read' : 'read');
    parts.add('$verb $readCount ${readCount == 1 ? 'file' : 'files'}');
  }

  if (listCount > 0) {
    final verb = isActive
        ? (parts.isEmpty ? 'Listing' : 'listing')
        : (parts.isEmpty ? 'Listed' : 'listed');
    parts.add(
      '$verb $listCount ${listCount == 1 ? 'directory' : 'directories'}',
    );
  }

  if (replCount > 0) {
    final replVerb = isActive ? "REPL'ing" : "REPL'd";
    parts.add('$replVerb $replCount ${replCount == 1 ? 'time' : 'times'}');
  }

  final text = parts.join(', ');
  return isActive ? '$text...' : text;
}