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

Line Seperator issue between windows and unix

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

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
java
Área
tooling

Línea de trabajo

Reproduce la discrepancia usando google-java-format-1.10.0-all-deps.jar y el ejemplo MinimalExample.java con finales de línea LF y CRLF. Rastrea por qué el formateador produce saltos de línea diferentes y, a continuación, verifica que formatear el mismo código fuente produzca una salida coherente sin un salto de línea adicional en ambas plataformas.

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

Descripción

When applying GJF, some code is formatted differently between Unix-style line seperators (LF) and Windows-style line seperators (CRLF). With windows-style an extra linebreak is added, caused by the char difference between LF (\n) and CRLF (\r\n).

I changed the line-separator-style with Intellij (File>File Properties> Line Separators, while having the file opened) and got the following outputs:

Executing java -jar google-java-format-1.10.0-all-deps.jar MinimalExample.java when the file is formatted with Unix line endings:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import feign.FeignException;

public class MinimalExample {
  void googleJavaFormatWindowsFail() {

    FeignException feignException = mock(FeignException.class);
    when(feignException.contentUTF8()).thenReturn("""
    {
      "errorCode" : 420
    }
    """);
  }
}

Executing java -jar google-java-format-1.10.0-all-deps.jar MinimalExample.java when the file is formatted with Windows line endings:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import feign.FeignException;

public class MinimalExample {
  void googleJavaFormatWindowsFail() {

    FeignException feignException = mock(FeignException.class);
    when(feignException.contentUTF8())
        .thenReturn("""
    {
      "errorCode" : 420
    }
    """);
  }
}

If two chars are added, Unix-style generates the same line-break:

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import feign.FeignException;

public class MinimalExample {
  void googleJavaFormatWindowsFail() {

    FeignException feignException = mock(FeignException.class);
    when(feignException.contentUTF8())
        .thenReturn("""
    {
      "errorCode" : 42069
    }
    """);
  }
}

Done on GJF 1.10.0, 1,9 and 1.8 with Java 15.0.2
Windows 10 10.0
IntelliJ IDEA 2021.1.1 (Community Edition)

Lenguaje dominante
Java
Estrellas
6.2k
Forks
936
Merge medio
6 min
PR fusionados (30 d)
3

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 google/google-java-format

Todos los issues de google/google-java-format

Issues similares

Más issues de Java

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.