mirror of
https://github.com/qodo-ai/pr-agent.git
synced 2025-07-05 05:10:38 +08:00
Merge pull request #1412 from Codium-ai/tr/dedent_review
feat: add dedent option to code snippet formatting
This commit is contained in:
@ -1,5 +1,6 @@
|
|||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
|
from typing import Optional
|
||||||
|
|
||||||
|
|
||||||
class EDIT_TYPE(Enum):
|
class EDIT_TYPE(Enum):
|
||||||
@ -21,4 +22,5 @@ class FilePatchInfo:
|
|||||||
old_filename: str = None
|
old_filename: str = None
|
||||||
num_plus_lines: int = -1
|
num_plus_lines: int = -1
|
||||||
num_minus_lines: int = -1
|
num_minus_lines: int = -1
|
||||||
|
language: Optional[str] = None
|
||||||
ai_file_summary: str = None
|
ai_file_summary: str = None
|
||||||
|
@ -235,7 +235,7 @@ def convert_to_markdown_v2(output_data: dict,
|
|||||||
start_line = int(str(issue.get('start_line', 0)).strip())
|
start_line = int(str(issue.get('start_line', 0)).strip())
|
||||||
end_line = int(str(issue.get('end_line', 0)).strip())
|
end_line = int(str(issue.get('end_line', 0)).strip())
|
||||||
|
|
||||||
relevant_lines_str = extract_relevant_lines_str(end_line, files, relevant_file, start_line)
|
relevant_lines_str = extract_relevant_lines_str(end_line, files, relevant_file, start_line, dedent=True)
|
||||||
if git_provider:
|
if git_provider:
|
||||||
reference_link = git_provider.get_line_link(relevant_file, start_line, end_line)
|
reference_link = git_provider.get_line_link(relevant_file, start_line, end_line)
|
||||||
else:
|
else:
|
||||||
@ -288,7 +288,7 @@ def convert_to_markdown_v2(output_data: dict,
|
|||||||
|
|
||||||
return markdown_text
|
return markdown_text
|
||||||
|
|
||||||
def extract_relevant_lines_str(end_line, files, relevant_file, start_line):
|
def extract_relevant_lines_str(end_line, files, relevant_file, start_line, dedent=False):
|
||||||
try:
|
try:
|
||||||
relevant_lines_str = ""
|
relevant_lines_str = ""
|
||||||
if files:
|
if files:
|
||||||
@ -300,8 +300,12 @@ def extract_relevant_lines_str(end_line, files, relevant_file, start_line):
|
|||||||
return ""
|
return ""
|
||||||
relevant_file_lines = file.head_file.splitlines()
|
relevant_file_lines = file.head_file.splitlines()
|
||||||
relevant_lines_str = "\n".join(relevant_file_lines[start_line - 1:end_line])
|
relevant_lines_str = "\n".join(relevant_file_lines[start_line - 1:end_line])
|
||||||
|
if dedent and relevant_lines_str:
|
||||||
|
# Remove the longest leading string of spaces and tabs common to all lines.
|
||||||
|
relevant_lines_str = textwrap.dedent(relevant_lines_str)
|
||||||
relevant_lines_str = f"```{file.language}\n{relevant_lines_str}\n```"
|
relevant_lines_str = f"```{file.language}\n{relevant_lines_str}\n```"
|
||||||
break
|
break
|
||||||
|
|
||||||
return relevant_lines_str
|
return relevant_lines_str
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
get_logger().exception(f"Failed to extract relevant lines: {e}")
|
get_logger().exception(f"Failed to extract relevant lines: {e}")
|
||||||
|
Reference in New Issue
Block a user