splitAutoCompleting method

List<String> splitAutoCompleting(
  1. List<String> splitText,
  2. String stateName, {
  3. int matchMode = 3,
})

Implementation

List<String> splitAutoCompleting(List<String> splitText, String stateName,
    {int matchMode = 3}) {
  /// step1: find matches;
  var matches =
      splitAutoCompletingMatches(splitText, stateName, matchMode: matchMode);

  /// step2: sort
  /// 从左到右 -> 优先
  /// start 小 ->
  /// input.length 小 ->
  matches.sort((left, right) {
    if (left[0].input.length < right[0].input.length) {
      return -1;
    }
    return 1;
  });

  /// step3: 用 Set 去重
  return (<String>{}..addAll(matches
          .map<String>((m) => m[0].input)
          .where((element) => element != splitText.join())))
      .toList();
}