google / google/google-java-format

Line Seperator issue between windows and unix

オープン
#604 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Java
スター
6.2k
フォーク
937
平均マージ
6分
マージ済み PR(30日)
3

説明

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)

コントリビューションガイド

コントリビューションガイドを開く

評価

この issue はまだ評価されていません。

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。