google / google/google-java-format

Removing unused imports leaves extra blank line after package statement, isn't idempotent

Aberta
#598 1 comentário 3 reações 0 responsáveis Ver no GitHub
bug
Linguagem predominante
Java
Estrelas
6.2k
Forks
937
Merge médio
6min
PRs com merge (30d)
3

Descrição

I have a class that if I format it twice with google java formatter it will produce 2 different results. This is not what I would expect - I would think that you can format a file any number of times and google java formatter should always produce the exact same result. Is my assumption wrong ?

Here is an example:

original class:
```
$ cat inital_class.java
package com.sun.something;

import com.x;
import com.y;
import com.z;

public class MockedLiveServiceExecutionContext {

}
$
```

If I then format it I get this:
```
$ java -jar ./google-java-format-1.9-all-deps.jar --replace inital_class.java
$ cat inital_class.java
package com.sun.something;

public class MockedLiveServiceExecutionContext {}
$ cat inital_class.java | cksum
42955951 79
$
```

And if I format it again I get this (it's removed an extra space):
```
$ java -jar ./google-java-format-1.9-all-deps.jar --replace inital_class.java
$ cat inital_class.java
package com.sun.something;

public class MockedLiveServiceExecutionContext {}
$ cat inital_class.java | cksum
2486624596 78
$
```

Guia de contribuição

Abrir o guia de contribuição

Direção de pesquisa

Reproduza o problema com google-java-format-1.9 usando inital_class.java e o comando --replace mostrado; depois, execute-o uma segunda vez para confirmar que a saída muda. Rastreie o tratamento, pelo formatter, das linhas em branco de package e de imports removidos; considera-se concluído quando formatar repetidamente o mesmo arquivo produz uma saída idêntica.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
java
Domínio
tooling
Tipo de issue
Bug
Dificuldade
3/5
Tempo estimado
1-2 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.