substringMatch function

RankResult? substringMatch(
  1. String text,
  2. String pattern
)

Standard substring matcher with scoring.

Returns null if pattern not found, otherwise returns score and indices.

Implementation

RankResult? substringMatch(String text, String pattern) {
  if (pattern.isEmpty) return const RankResult(0, []);

  final idx = text.toLowerCase().indexOf(pattern.toLowerCase());
  if (idx == -1) return null;

  // Score based on position (earlier = better)
  final score = 100000 - idx * 100;
  final indices = List<int>.generate(pattern.length, (i) => idx + i);

  return RankResult(score, indices);
}