google / google/google-java-format

Line Seperator issue between windows and unix

Aperta
#604 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
6.2k
Fork
937
Merge medio
6m
PR unite (30g)
3

Descrizione

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)

Guida per i contributori

Apri la guida per i contributori

Valutazione

Questa issue non è ancora stata valutata.

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.