added lint reflection

This commit is contained in:
Paul Gauthier 2024-05-17 16:58:04 -07:00
parent fe65b7d11f
commit 4b0c38254e
2 changed files with 27 additions and 2 deletions

View file

@ -20,6 +20,7 @@ from aider import __version__, models, prompts, utils
from aider.commands import Commands
from aider.history import ChatSummary
from aider.io import InputOutput
from aider.linter import Linter
from aider.litellm import litellm
from aider.mdstream import MarkdownStream
from aider.repo import GitRepo
@ -287,6 +288,8 @@ class Coder:
self.verbose,
)
self.linter = Linter(root=self.root, encoding=io.encoding)
if max_chat_history_tokens is None:
max_chat_history_tokens = self.main_model.max_chat_history_tokens
self.summarizer = ChatSummary(
@ -721,8 +724,16 @@ class Coder:
edited, edit_error = self.apply_updates()
if edit_error:
self.update_cur_messages(set())
self.reflected_message = edit_error
self.update_cur_messages(set())
return
if edited:
lint_errors = self.lint_edited(edited)
if lint_errors:
self.reflected_message = lint_errors
self.update_cur_messages(set())
return
self.update_cur_messages(edited)
@ -744,6 +755,20 @@ class Coder:
else:
self.reflected_message = add_rel_files_message
def lint_edited(self, fnames):
res = ""
for fname in fnames:
errors = self.linter.lint(fname)
if errors:
res += "\n"
res += errors
res += "\n"
if res:
self.io.tool_error(res)
return res
def update_cur_messages(self, edited):
if self.partial_response_content:
self.cur_messages += [dict(role="assistant", content=self.partial_response_content)]