From 31b7a89cf04e1596ae86016d74f8e8e31e02bcd7 Mon Sep 17 00:00:00 2001 From: Paul Gauthier Date: Fri, 30 Aug 2024 13:31:05 -0700 Subject: [PATCH] sort the autocompletions --- aider/io.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/aider/io.py b/aider/io.py index d65c26194..91a4641e1 100644 --- a/aider/io.py +++ b/aider/io.py @@ -138,7 +138,7 @@ class AutoCompleter(Completer): if text[0] == "/": candidates = self.get_command_completions(text, words) if candidates is not None: - for candidate in candidates: + for candidate in sorted(candidates): yield Completion(candidate, start_position=-len(words[-1])) return @@ -147,16 +147,18 @@ class AutoCompleter(Completer): candidates = [word if type(word) is tuple else (word, word) for word in candidates] last_word = words[-1] + completions = [] for word_match, word_insert in candidates: if word_match.lower().startswith(last_word.lower()): - rel_fnames = self.fname_to_rel_fnames.get(word_match, []) - yield Completion(word_insert, start_position=-len(last_word), display=word_match) + completions.append((word_insert, -len(last_word), word_match)) + rel_fnames = self.fname_to_rel_fnames.get(word_match, []) if rel_fnames: for rel_fname in rel_fnames: - yield Completion( - rel_fname, start_position=-len(last_word), display=rel_fname - ) + completions.append((rel_fname, -len(last_word), rel_fname)) + + for ins, pos, match in sorted(completions): + yield Completion(ins, start_position=pos, display=match) class InputOutput: