Como ter o formatador quebrar o código com o IntelliJ?

135

Não consigo formatar meu código no IntelliJ.

Eu posso ver a linha de margem (por padrão em 120 colunas), mas parece que a ativação no menu:

Código -> Reformatar código

está apenas ignorando essa margem.

Jeroen Rosenberg
fonte

Respostas:

91

Você quer dizer que o formatador não quebra linhas longas? Verifique Configurações / Configurações do projeto / Estilo do código / Quebra automática.

Atualização: nas versões posteriores do IntelliJ, a opção está em Configurações / Editor / Estilo do código. E selecione Wrap when typing reaches right margin.

Péter Török
fonte
1
esta opção não está mais lá, usando a versão 13.0.2, e os restos de problema ..
ipolevoy
34
@ipolevoy o nome da opção é "Garantir margem direita não é ultrapassada"
madhead
13
O "Garantir margem direita não é excedido" opção é no Arquivo / Configurações / editor / Código Estilo / Java / Embalagem e Suspensórios / Manter ao reformatar
Aaron
esses caras manter em chaves de ajuste renomear o tempo todo
ACV
Isso está correto, mas em novas versões, foram adicionadas opções adicionais para fornecer um controle mais preciso sobre o que pode ser empacotado. Consulte stackoverflow.com/a/52157389/1104581 para obter a resposta atual correta.
Ipetrik 9/10/19
160

IDÉIA IntelliJ 14, 15, 2016 e 2017

Formatar código existente

  1. Garantir que a margem direita não seja excedida

    Arquivo> Configurações> Editor> Estilo do código> Java> Embrulho e chaves> Verifique se a margem direita não é excedida

    Configurações de arquivo Garanta margem certa

  2. Reformatar código

    Código> Reformatar código ...

    Reformatar código

    ou pressione Ctrl+ Alt+L

    Aviso Se você tem algo parecido com isto:

    thisLineIsVeryLongAndWillBeChanged();   // comment
    

    será convertido para

    thisLineIsVeryLongAndWillBeChanged();   
    // comment  
    

    ao invés de

    // comment  
    thisLineIsVeryLongAndWillBeChanged();   
    

    É por isso que seleciono trechos de código antes de reformatar se o código se parece com o exemplo anterior.

Quebrar quando a digitação atinge a margem direita

  • IntelliJ IDEA 14 : Arquivo> Configurações> Editor> Estilo do código> Quebrar ao digitar atinge a margem direita

    Quebrar ao digitar

  • IDEA IntelliJ 15, 2016 e 2017 : Arquivo> Configurações> Editor> Estilo do código> Quebrar ao digitar

    Quebra de digitação

ROMANIA_engineer
fonte
5
Sim! Esta é a resposta real, muito obrigado! O ponto é que o problema Wrap when typing reaches right marginserá tremendo quando você alterar algo em uma linha que já foi quebrada. Sua resposta apenas limpa após a invocação. Combinado com uma macro "salvar e formatar", isso é ouro puro!
Patrick
1
Gostaria de adicionar uma palavra-chave aqui, que é o que se pode procurar: é o que chamamos de invólucro rígido (em oposição ao invólucro flexível - veja a diferença aqui ).
Iled
1
Existe uma maneira de ter o número correto de linhas, em vez de apenas garantir que não exceda o máximo? Ex: digito uma linha longa, a divide em duas linhas, excluo algo na primeira linha e mescla as duas linhas novamente em uma linha.
user2259659
1
Também: Nenhuma orientação para 2.018,1
8bitjunkie
1
2017 "Quebra de digitação" não funciona. texto ainda cruza a linha e nada acontece na reformatação
tylik
16

Ativar "Garantir que a margem direita não seja excedida" não funciona para mim no Intellij IDEA 2018.2. Eu encontrei a solução alternativa, precisamos alterar todos os elementos abaixo de "Não quebrar" para "Quebra se longa".

insira a descrição da imagem aqui insira a descrição da imagem aqui

Depois disso, podemos visualizar que tipo de quebra automática será alterado olhando no painel direito. Se estivermos satisfeitos, clique em "OK" ou "Aplicar" para aplicar as alterações. Finalmente, precisamos de um formato manual usando CTRL+ ALT+ Lno Windows e Command+ Shift+ Lno MacOS.

guo
fonte
Este também foi o problema para mim. Se essa caixa de seleção estiver definida, mas o restante for deixado como padrão, o IntelliJ tenta quebrar as linhas, mas não pode porque tudo está definido como "Não quebrar".
Robber
12

Ou você pode usar o atalho:

Ctrl + Alt + L

Eslam Hamouda
fonte
4
Você poderia postar o nome dessa ação (Configurações -> Mapa de teclas)? Na maioria dos Linux, a combinação CTRL + ALT + L é usada para bloquear o computador. Não consigo nem usar a "Localizar ação por atalho".
Julio
2
@tomrozb este atalho é para Código -> Reformatar Código.
precisa saber é o seguinte
1
Isso bloqueia minha tela.
8bitjunkie
3

Você pode criar uma macro para Ctrl + Shift + S (por exemplo) que faça tudo isso:

Editar> Macros> Iniciar gravação de macro (a gravação será iniciada). Clique onde você precisa.

Por exemplo:

Code > Reformat Code
Code > Auto-Indent Lines
Code > Optimize Imports
Code > Rearrange Code
File > Save All
... (all that you want)

Em seguida, clique no botão vermelho no canto inferior direito do IDE para interromper a gravação de macro.

Defina um nome de macro.

Vá para Arquivo> Configurações> Macros> SEU NOME DE MACRO .

Clique com o botão direito do mouse> Adicionar atalho de teclado e digite Ctrl + Shift + S.

user3006181
fonte
Este é um recurso básico do IDE. As macros são OTT e muito complicadas para algo tão simples.
8bjunkie
2

Para quebrar o texto no editor de código na comunidade IntelliJ IDEA 2020.1, siga estas etapas:

Ctrl + Shift + "A" OR Help -> Find Action
Enter: "wrap" into the text box
Toggle: View | Active Editor Soft-Wrap "ON"

insira a descrição da imagem aqui

Noah PG
fonte
0

No mais recente Intellij ver 2020, temos uma opção chamada quebra automática desses arquivos. Configurações -> Editor -> Geral -> agrupe esses arquivos com facilidade. Marque esta opção e adicione o tipo de arquivo que você precisa agrupar.

opção intellij soft wrap

k sarath
fonte