From b930a1db406cd1d340c745a7a964764e8e23f06e Mon Sep 17 00:00:00 2001 From: "Paul Gauthier (aider)" Date: Fri, 27 Sep 2024 16:06:39 -0700 Subject: [PATCH] feat: Add raw completer for cmd_read_only command --- aider/commands.py | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/aider/commands.py b/aider/commands.py index e09760620..d282ff1d6 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -8,6 +8,7 @@ from pathlib import Path import pyperclip from PIL import Image, ImageGrab +from prompt_toolkit.completion import PathCompleter from aider import models, prompts, voice from aider.format_settings import format_settings @@ -574,8 +575,32 @@ class Commands: fname = f'"{fname}"' return fname - def completions_read_only(self): - return self.completions_add() + def completions_raw_read_only(self, document, complete_event): + # Extract the part of the input after the command + text = document.text[len("/read-only"):].lstrip() + + # Create a PathCompleter + path_completer = PathCompleter( + only_directories=False, + expanduser=True, + get_paths=lambda: [self.coder.root], + ) + + # Get completions from the PathCompleter + completions = path_completer.get_completions( + document.replace(text=text), + complete_event + ) + + # Yield the completions + for completion in completions: + # Adjust the start position to account for the command + yield Completion( + completion.text, + start_position=completion.start_position - len(document.text) + len(text), + display=completion.display, + display_meta=completion.display_meta + ) def completions_add(self): files = set(self.coder.get_all_relative_files())