__terminal__ output reappears after clearing the element
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 84/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, python
Línea de trabajo
Comienza en transcrypt/modules/org/transcrypt/runtime.py, en la implementación de Terminal y los bindings de print/input a nivel de módulo vinculados en el issue. Comprueba cómo init establece el elemento y cómo output lo vuelve a escribir a partir de self.buffer. Se considera terminado cuando un método clear() restablece tanto buffer como el contenido mostrado, de modo que las salidas posteriores no restauren texto obsoleto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
Output written to __terminal__ cannot be cleared. Clearing the target element from application code removes the rendered text only. The next print puts everything back.
Cause
__Terminal__ keeps the output history in self.buffer and rewrites the whole element from that buffer on every call:
The class offers no method to reset self.buffer. Replacing the module-level instance does not help either, because print and input are bound to the original instance when the runtime module is loaded:
Proposed fix
Add a clear() method that resets buffer and element together, so the buffer cannot restore stale output:
def clear (self):
self.buffer = ''
if self.element:
self.element.innerHTML = '_'
'_' is the initial content written by __init__, so clear() returns the terminal to its start state.
Workaround
Reset both parts by hand:
__terminal__.buffer = ''
__terminal__.element.innerHTML = ''
Version
Transcrypt 3.9.5
Contribution
I am happy to write the pull request for this change if the proposed approach is acceptable.
- Lenguaje dominante
- Python
- Estrellas
- 2.9k
- Forks
- 218
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TranscryptOrg/Transcrypt
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
TranscryptOrg/Transcrypt#911 · 2 comentarios ·
-
IS: bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
TranscryptOrg/Transcrypt#908 ·
-
SUB: documentation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 62/100
TranscryptOrg/Transcrypt#656 · 7 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 76/100
TranscryptOrg/Transcrypt#914 ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 45/100
TranscryptOrg/Transcrypt#910 ·
Todos los issues de TranscryptOrg/Transcrypt
Issues similares
-
New InternshipAbiertonew_internship
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
-
[BUG] Reports tab: "Unban" button tooltip shows raw `{{ip}}` placeholder instead of the IP addressAbiertobug javascript ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
bunkerity/bunkerweb#4001 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
PedestrianDynamics/pyFDS-Evac#476 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
google/differential-privacy#516 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
adobe-fonts/source-serif#153 ·