From 0c743ce8e80c7ffa61aa86967b00ead7ec21bf04 Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 4 Oct 2024 11:17:47 -0700 Subject: [PATCH] feat: sort completions in completions_raw_read_only method --- aider/commands.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/aider/commands.py b/aider/commands.py index 4f9b1d753..c1958ac79 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -603,27 +603,41 @@ class Commands: # Adjust the start_position to replace all of 'after_command' adjusted_start_position = -len(after_command) + # Collect all completions + all_completions = [] + # Iterate over the completions and modify them for completion in path_completer.get_completions(new_document, complete_event): quoted_text = self.quote_fname(after_command + completion.text) - yield Completion( - text=quoted_text, - start_position=adjusted_start_position, - display=completion.display, - style=completion.style, - selected_style=completion.selected_style, + all_completions.append( + Completion( + text=quoted_text, + start_position=adjusted_start_position, + display=completion.display, + style=completion.style, + selected_style=completion.selected_style, + ) ) # Add completions from the 'add' command add_completions = self.completions_add() for completion in add_completions: if after_command in completion: - yield Completion( - text=completion, - start_position=adjusted_start_position, - display=completion, + all_completions.append( + Completion( + text=completion, + start_position=adjusted_start_position, + display=completion, + ) ) + # Sort all completions based on their text + sorted_completions = sorted(all_completions, key=lambda c: c.text) + + # Yield the sorted completions + for completion in sorted_completions: + yield completion + def completions_add(self): files = set(self.coder.get_all_relative_files()) files = files - set(self.coder.get_inchat_relative_files())