Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

Unexpected handling of lines with less than 100 characters

Aberta
#567 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

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

Direção de pesquisa

Reproduza o problema com test.java usando a invocação de linha de comando de google-java-format-1.9-all-deps.jar mostrada no relatório, comparando as saídas anterior, posterior e esperada. Rastreie o comportamento do formatter para strings SQL multilinha; considera-se concluído quando apenas a linha longa demais é dividida, enquanto as outras linhas mais curtas mantêm sua formatação original.

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

Descrição

I have some quite large sql multiline string and when one line is over 100 characters it will re-format it onto 2 lines. While I believe this is the correct behaviour to split this long line, it also re-formats all of the other lines of the String which I don't think should happen as they are under 100 characters long, therefore I think this is a bug.

NB: Because of https://github.com/google/google-java-format/issues/566 you can only see this happening using the jar on the command line as per the example below:

before - unformatted file:

package x;

public class test {

  static final String MY_SQL_QUERY =
      "SELECT "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  l.some_really_long_column_name    AS some_really_looooooooooooooooooooong_column_name, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, ";

  public test() {
    int x=1;if(x==1){x=2;}else{x=3;}
  }

}

apply google java formatting:

/tmp $ java -version
openjdk version "11.0.9" 2020-10-20
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.9+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.9+11, mixed mode)
/tmp $ cksum ~/lib/google-java-format-1.9-all-deps.jar
2002751029 3404610 ~/lib/google-java-format-1.9-all-deps.jar
/tmp $ java -jar ~/lib/google-java-format-1.9-all-deps.jar ./test.java

after - formatted by google java formatter:

package x;

public class test {

  static final String MY_SQL_QUERY =
      "SELECT   customer_id             AS customer_id,   customer_id             AS customer_id, "
          + "  customer_id             AS customer_id,   customer_id             AS customer_id,  "
          + " customer_id             AS customer_id,   l.some_really_long_column_name    AS"
          + " some_really_looooooooooooooooooooong_column_name,   customer_id             AS"
          + " customer_id,   customer_id             AS customer_id, ";

  public test() {
    int x = 1;
    if (x == 1) {
      x = 2;
    } else {
      x = 3;
    }
  }
}

Expected - this is what I think google java formatter should do:

package x;

public class test {

  static final String MY_SQL_QUERY =
      "SELECT "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, "
          + "  l.some_really_long_column_name    "
                 + "AS some_really_looooooooooooooooooooong_column_name, "
          + "  customer_id             AS customer_id, "
          + "  customer_id             AS customer_id, ";

  public test() {
    int x = 1;
    if (x == 1) {
      x = 2;
    } else {
      x = 3;
    }
  }
}
Linguagem predominante
Java
Estrelas
6.2k
Forks
936
Merge médio
6min
PRs com merge (30d)
3

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de google/google-java-format

Todas as issues de google/google-java-format

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

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