Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Add a mode which preserves carriage returns

Abierto
#2 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
25/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
kotlin
Área
testing

Línea de trabajo

Comienza trazando cómo se cargan, analizan y escriben los archivos .ss y el formato .ss.asar, incluida la normalización de retornos de carro descrita aquí. Define el comportamiento del modo en torno a conservar \r y hacer round-trip de los archivos sin cambiar otras reglas de escape; se considera terminado cuando los snapshots .ss.asar conservan los retornos de carro, mientras que los snapshots normales mantienen el comportamiento actual.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement

Here are two important properties of the .ss snapshot files:

  • exactly character-for-character accurate, no slop around leading or trailing whitespace, no forbidden characters
  • what you see in the snapshot file is exactly what you get, except for the following escaping rules which preserve the above
    • the following characters are escaped: 𐝃 -> 𐝃𐝃, 𐝁 -> 𐝃𐝁 (they are from an untranslated dead language)
    • if the first character on a line within a snapshot is ╔ then it is replaced with 𐝁 (this preserves ASCII art within snapshots)

This combination of character-accurate + WYSIWYG breaks down in only one place - line endings. You can't see them, and git's complex and poorly understood line-ending-mutation rules mean that most teams can't reliably do source control that differentiates between \n and \r\n.

Rather than randomly punch users in the face with this triviality, we do the following:

  • Internally, every text-based snapshot in spotless-snapshot has a .replace("\r", ""), so snapshots will never fail because of line-ending differences
  • New .ss files are always written using \n line endings
  • If an .ss file is loaded from disk with \r\n, it is converted and parsed using \n, but will be written back to disk as \r\n

However, this means that the snapshots are not exactly character-for-character accurate because they do not preserve \r. For users that want to preserve \r, we could add a mode which preserves the \r character if the user uses the .ss.asar format

  • #1

Adding support for storing \r within .ss files might be possible (maybe encode them as 𐝃r?), but doesn't seem like a good idea.

Lenguaje dominante
Kotlin
Estrellas
101
Forks
18
Merge medio
6 d 11 h
PR fusionados (30 d)
5

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de diffplug/selfie

Todos los issues de diffplug/selfie

Issues similares

Más issues de Kotlin

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.