Para modificar el formato de salida del REPL hay que modificar los dunder __str__
methods para cambiar su formato, pero hacer esto puede llevar a muchos fallos en los tests xD Además ya quiero empezar con el evaluador que es lo que más me da curiosidad OwO!!!
.
Por cierto, algo cursiodi es que en nuestro REPL no podemos usar las flechas de izquierda y derecha porque se imprimen caracteres raros, tampoco podemos navegar a través de la historia de los comandos que hemos escrito, muchos REPL’s si lo permiten usar.
.
Si quieren agregar este feature al REPL (que lo hace muuuuucho más elegante), solo tienen que agregar esto al inicio de repl.py
:
import readline
Con eso ya pueden usar las flechitas del teclado y navegar entre todas las líneas de código que han escrito en su REPL usando las flechitas de “arriba” y “abajo”.
Otra cosa importante dentro de cualquier REPL es poder limpiar la pantalla, para hacer eso, yo agregué esta función al repl.py
:
from os import system, name
def clear():
# for windows
if name == 'nt':
_ = system('cls')
# for mac and linux(here, os.name is 'posix')
else:
_ = system('clear')
...
while (source := input(">> ")) != "salir()":
if source == "limpiar()":
clear()
else:
lexer: Lexer = Lexer(source)
...
Y simplemente en el REPL en ejecución escribes limpiar()
y se limpia la pantalla 😄
.
Aquí dejo mi REPL completo hasta ahorita por si lo quieren copiar:
.
Adicion de clear y uso de flechas dentro del REPL
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?