google / google/google-java-format
Removing unused imports leaves extra blank line after package statement, isn't idempotent
- 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
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