From d2fbc92507cd30614c7f65b37362b45b71672e73 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Thu, 26 Sep 2024 10:28:03 -0500 Subject: [PATCH] feat: include non-repo files for completing /read --- aider/coders/base_coder.py | 11 +++++++---- aider/commands.py | 5 ++++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/aider/coders/base_coder.py b/aider/coders/base_coder.py index 23cc0f7ec..00d241c91 100755 --- a/aider/coders/base_coder.py +++ b/aider/coders/base_coder.py @@ -1651,11 +1651,14 @@ class Coder: except OSError: return - def get_all_relative_files(self): - if self.repo: - files = self.repo.get_tracked_files() + def get_all_relative_files(self, include_nonrepo=False): + if not self.repo or include_nonrepo: + files = [] + for root, _, fnames in os.walk(self.root): + for fname in fnames: + files.append(os.path.relpath(os.path.join(root, fname), self.root)) else: - files = self.get_inchat_relative_files() + files = self.repo.get_tracked_files() # This is quite slow in large repos # files = [fname for fname in files if self.is_file_safe(fname)] diff --git a/aider/commands.py b/aider/commands.py index 40daf2719..18065c265 100644 --- a/aider/commands.py +++ b/aider/commands.py @@ -570,7 +570,10 @@ class Commands: return fname def completions_read_only(self): - return self.completions_add() + files = set(self.coder.get_all_relative_files(include_nonrepo=True)) + files = files - set(self.coder.get_inchat_relative_files()) + files = [self.quote_fname(fn) for fn in files] + return files def completions_add(self): files = set(self.coder.get_all_relative_files())