getSuggestions method

  1. @override
Future<List<CompletionSuggestion>> getSuggestions(
  1. String query,
  2. SuggestionContext context
)
override

Implementation

@override
Future<List<CompletionSuggestion>> getSuggestions(
  String query,
  SuggestionContext context,
) async {
  final search = query.substring(1).toLowerCase(); // Remove '/'

  final commands = context.availableCommands;
  final suggestions = <CompletionSuggestion>[];

  for (final cmd in commands) {
    if (search.isEmpty || _fuzzyMatch(cmd, search)) {
      suggestions.add(
        CompletionSuggestion(
          value: '/$cmd',
          displayText: '/$cmd',
          description: _commandDescription(cmd),
          type: SuggestionType.command,
          icon: 'command',
          score: _fuzzyScore(cmd, search),
          insertText: '/$cmd ',
        ),
      );
    }
  }

  suggestions.sort((a, b) => b.score.compareTo(a.score));
  return suggestions.take(15).toList();
}