This commit is contained in:
Paul Gauthier 2023-04-11 11:32:35 -07:00
parent f588881779
commit 8b5c2dc23d
2 changed files with 47 additions and 75 deletions

View file

@ -74,17 +74,56 @@ class Coder:
print() print()
print('='*60) print('='*60)
inp = '' inp = ''
num_control_c = 0
while not inp.strip(): while not inp.strip():
try: try:
inp = input('> ') inp = input('> ')
except EOFError: except EOFError:
return return
except KeyboardInterrupt:
num_control_c += 1
print()
if num_control_c >= 2:
return
print('^C again to quit')
print() print()
#readline.add_history(inp) #readline.add_history(inp)
readline.write_history_file(history_file) readline.write_history_file(history_file)
if inp == 'fix':
inp = '''
It looks like you returned code. Try again using ORIGINAL/UPDATED format.
For each change to the code, describe it using the ORIGINAL/UPDATED format shown in the examples below.
First line is the full filename, including path
Next line is exactly: <<<<<<< ORIGINAL
Followed by a chunk of lines from the original file which need to change
Next line is exactly: =======
Followed by the new lines to replace the original chunk
Last line is exactly: >>>>>>> UPDATED
Here are examples:
path/to/filename.ext
<<<<<<< ORIGINAL
original lines
to search for
=======
new lines to replace
the original chunk
>>>>>>> UPDATED
example.py
<<<<<<< ORIGINAL
# Function to multiply two numbers
=======
# Function to multiply two numbers using the standard algorithm
>>>>>>> UPDATED
'''
return inp return inp
def run(self): def run(self):
@ -182,14 +221,6 @@ class Coder:
in_diff = False in_diff = False
diff_lines = [] diff_lines = []
def print_lines():
if not diff_lines:
return
code = '\n'.join(diff_lines)
lexer = lexers.guess_lexer(code)
code = highlight(code, lexer, formatter)
print(code, end='')
partial_line = '' partial_line = ''
for chunk in completion: for chunk in completion:
try: try:

View file

@ -6,9 +6,13 @@ I want you to act as an expert software engineer and pair programmer.
You are an expert at understanding code and proposing code changes in response to user requests. You are an expert at understanding code and proposing code changes in response to user requests.
For each change to the code, describe it using the ORIGINAL/UPDATED format shown in the examples below. For each change to the code, describe it using the ORIGINAL/UPDATED format shown in the examples below.
This format is a way of specifying a line oriented search and replace.
It will find the chunk of lines in the ORIGINAL block and replace them with the chunk of lines in the UPDATED block. First line is the full filename, including path
The ORIGINAL block must be a chunk of lines which currently exist in the file! Next line is exactly: <<<<<<< ORIGINAL
Followed by a chunk of lines from the original file which need to change
Next line is exactly: =======
Followed by the new lines to replace the original chunk
Last line is exactly: >>>>>>> UPDATED
Here are examples: Here are examples:
@ -23,72 +27,9 @@ the original chunk
example.py example.py
<<<<<<< ORIGINAL <<<<<<< ORIGINAL
def subtract(x, y):
return x - y
# Function to multiply two numbers # Function to multiply two numbers
def multiply(x, y):
return x * y
======= =======
def subtract(x, y): # Function to multiply two numbers using the standard algorithm
return x - y
# Function to multiply two numbers!
def multiply(x, y):
return x * y
>>>>>>> UPDATED
example.py
<<<<<<< ORIGINAL
def square_root(x):
return x ** 0.5
# Main function
def main():
print("Welcome to the calculator program!")
print("Please select an operation:")
=======
def square_root(x):
return x ** 0.5
def main():
print("Welcome to the calculator program!")
print("Please select an operation:")
>>>>>>> UPDATED
example.py
<<<<<<< ORIGINAL
print("5. Power")
print("6. Square Root")
# Take input from the user
choice = input("Enter choice (1/2/3/4/5/6): ")
# Check if choice is one of the options
=======
print("5. Power")
print("6. Square Root")
# this is the main input
# where the user gets to choose
choice = input("Enter choice (1/2/3/4/5/6): ")
# Check if choice is one of the options
>>>>>>> UPDATED
example.py
<<<<<<< ORIGINAL
# Call the main function
if __name__ == '__main__':
main()
=======
# Call the main function
if __name__ == '__main__':
main()
# the end
>>>>>>> UPDATED >>>>>>> UPDATED
''' '''