mirror of
https://github.com/Aider-AI/aider.git
synced 2025-05-20 04:14:59 +00:00
refactor: Handle KeyboardInterrupt in get_repo_map
This commit is contained in:
parent
1b2eeaff56
commit
9d74e8c730
1 changed files with 31 additions and 27 deletions
|
@ -704,42 +704,46 @@ class Coder:
|
|||
if not self.repo_map:
|
||||
return
|
||||
|
||||
cur_msg_text = self.get_cur_message_text()
|
||||
mentioned_fnames = self.get_file_mentions(cur_msg_text)
|
||||
mentioned_idents = self.get_ident_mentions(cur_msg_text)
|
||||
try:
|
||||
cur_msg_text = self.get_cur_message_text()
|
||||
mentioned_fnames = self.get_file_mentions(cur_msg_text)
|
||||
mentioned_idents = self.get_ident_mentions(cur_msg_text)
|
||||
|
||||
mentioned_fnames.update(self.get_ident_filename_matches(mentioned_idents))
|
||||
mentioned_fnames.update(self.get_ident_filename_matches(mentioned_idents))
|
||||
|
||||
all_abs_files = set(self.get_all_abs_files())
|
||||
repo_abs_read_only_fnames = set(self.abs_read_only_fnames) & all_abs_files
|
||||
chat_files = set(self.abs_fnames) | repo_abs_read_only_fnames
|
||||
other_files = all_abs_files - chat_files
|
||||
all_abs_files = set(self.get_all_abs_files())
|
||||
repo_abs_read_only_fnames = set(self.abs_read_only_fnames) & all_abs_files
|
||||
chat_files = set(self.abs_fnames) | repo_abs_read_only_fnames
|
||||
other_files = all_abs_files - chat_files
|
||||
|
||||
repo_content = self.repo_map.get_repo_map(
|
||||
chat_files,
|
||||
other_files,
|
||||
mentioned_fnames=mentioned_fnames,
|
||||
mentioned_idents=mentioned_idents,
|
||||
force_refresh=force_refresh,
|
||||
)
|
||||
|
||||
# fall back to global repo map if files in chat are disjoint from rest of repo
|
||||
if not repo_content:
|
||||
repo_content = self.repo_map.get_repo_map(
|
||||
set(),
|
||||
all_abs_files,
|
||||
chat_files,
|
||||
other_files,
|
||||
mentioned_fnames=mentioned_fnames,
|
||||
mentioned_idents=mentioned_idents,
|
||||
force_refresh=force_refresh,
|
||||
)
|
||||
|
||||
# fall back to completely unhinted repo
|
||||
if not repo_content:
|
||||
repo_content = self.repo_map.get_repo_map(
|
||||
set(),
|
||||
all_abs_files,
|
||||
)
|
||||
# fall back to global repo map if files in chat are disjoint from rest of repo
|
||||
if not repo_content:
|
||||
repo_content = self.repo_map.get_repo_map(
|
||||
set(),
|
||||
all_abs_files,
|
||||
mentioned_fnames=mentioned_fnames,
|
||||
mentioned_idents=mentioned_idents,
|
||||
)
|
||||
|
||||
return repo_content
|
||||
# fall back to completely unhinted repo
|
||||
if not repo_content:
|
||||
repo_content = self.repo_map.get_repo_map(
|
||||
set(),
|
||||
all_abs_files,
|
||||
)
|
||||
|
||||
return repo_content
|
||||
except KeyboardInterrupt:
|
||||
self.keyboard_interrupt()
|
||||
return None
|
||||
|
||||
def get_repo_messages(self):
|
||||
repo_messages = []
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue