feat: include non-repo files for completing /read

This commit is contained in:
Jonathan Ellis 2024-09-26 10:28:03 -05:00
parent 75e1d519da
commit d2fbc92507
2 changed files with 11 additions and 5 deletions

View file

@ -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)]

View file

@ -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())