Reformatar Intellij no salvamento de arquivo


353

Lembro-me de ter visto no IntelliJ ou no Eclipse a configuração para reformatar os arquivos (limpeza) sempre que eles são salvos. Como o encontro (não o encontrei nas configurações)

Respostas:


236

Sugiro o plug-in salvar ações . Ele também suporta otimizar importações e reorganizar código.

Funciona bem em combinação com o plug-in do formatador eclipse .

Pesquise e ative o plug-in:

insira a descrição da imagem aqui

Configure-o:

insira a descrição da imagem aqui

Edit: parece que a versão recente do Intellij, o plug-in de ação de salvamento, é acionado pelo salvamento automático do Intellij. Isso pode ser bastante irritante quando atinge enquanto ainda está editando.

Esta edição do plugin do github fornece uma dica para algumas soluções possíveis:

https://github.com/dubreuia/intellij-plugin-save-actions/issues/63

Na verdade, tentei atribuir a reformatação ao Ctrl+ Se funcionou bem - o salvamento é feito automaticamente agora.


Usei isso, mas depois de atualizar para o Android Studio 1.5.1, não consigo mais encontrá-lo.
r1k0

11
O plug-in foi (a partir de agora) atualizado pela última vez em 10.02.2016 e diz Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).que não sei em qual versão do IntelliJ Android Studio se baseia. Você pode verificar isso?
Benjamin Peter

Para o topo você vai!
Nick Grealy

Quase funcionou para mim. Infelizmente, o "reformatar código" faria apenas um subconjunto do que "Código> Reformatar código" faz (pelo menos no código Scala). Por que é que?
Thilo

Tentei isso, mas o IntelliJ economiza muito frequentemente. A organização de importações é exibida a cada 2-3 teclas pressionadas.
Ashley

443

Esta solução funcionou melhor para mim:

  1. Criar uma macro (usei Organizar importações, Formatar código, Salvar tudo)
  2. Atribuir um pressionamento de tecla (eu substitui Ctrl+ S)

Nota: Você precisará marcar a caixa "Não mostrar esta mensagem novamente" na primeira vez para as importações organizadas, mas funcionará conforme o esperado depois disso.

Passo a passo para o IntelliJ 10.0:

  1. Código -> "Otimizar importações ...", se uma caixa de diálogo aparecer, marque a caixa que diz "Não mostrar esta mensagem novamente." E clique em "Executar".
  2. Ferramentas -> "Iniciar gravação de macro"
  3. Código -> "Otimizar importações ..."
  4. Código -> "Reformatar código ..."
  5. Arquivo -> "Salvar tudo"
  6. Ferramentas -> "Parar gravação de macro"
  7. Nomeie a macro (algo como "salvar formatado")
  8. Em Arquivo -> Configurações -> Mapa de teclas, selecione sua macro localizada em "Menu principal -> Ferramentas ->" salvar formatado "
  9. Clique em "Adicionar atalho de teclado" e, em seguida, pressione a tecla desejada. Se você escolher Ctrl+ Scomo eu, ele perguntará o que fazer com o atalho Ctrl+ anterior S. Remova. Você sempre pode reatribuí-lo mais tarde, se quiser.
  10. Aproveitar!

No IntelliJ 11, substitua

passo 2. com: Editar -> Macros -> "Iniciar gravação de macro"
passo 6. com: Editar -> Macros -> "Parar gravação de macro"

Tudo o resto permanece o mesmo.

IntelliJ 12

8. As Preferências contêm as configurações do Keymap. Use o campo de entrada para filtrar o conteúdo, conforme mostrado na captura de tela.

Intellij / Preferências / Keymap / Macros


4
No IntelliJ 11: 1: Iniciar a gravação de macro: Editar -> Macros -> Iniciar a gravação de macro. 2: Siga as instruções acima. 3: Pare a gravação de macro: Editar -> Macros -> Pare a gravação de macro. No Keymap, a macro é salva na pasta Macros, em vez de no Menu Principal -> pasta Ferramentas.
Markus K

3
Se você estiver satisfeito com a formatação do código, essa abordagem funcionará muito melhor se você optar por reformatar todo o código no projeto e salvar tudo. Caso contrário, quando você fizer edições em vários arquivos, somente a ativa será reformatada antes que todas as modificações sejam salvas.
Drew Noakes

86

Abaixo está a resposta de Neil atualizada.

13 etapas do IntelliJ:

  1. Código -> Reformatar código insira a descrição da imagem aqui
  2. Editar -> Macros -> Iniciar gravação de macro
  3. Código -> Reformatar código
  4. Arquivo -> Salvar tudo
  5. Editar -> Macros -> Parar gravação de macro
  6. Nomeie a macro (algo como "salvar formatado")
  7. Arquivo -> Configurações -> Mapa de teclas
  8. Clique com o botão direito na macro. Adicionar atalho de teclado. Defina o atalho do teclado para Control + S. insira a descrição da imagem aqui
  9. O IntelliJ informará você sobre um conflito de teclas de atalho. Selecione "remover" para remover outras atribuições.

Mas isso remove a ação "Salvar". O que o pôster viu é que, no Eclipse, temos a opção de formatar o código e organizar a importação automaticamente quando um arquivo é salvo. Esta opção (presumo) está ausente na ideia do IntelliJ. Esta é uma solução alternativa que envolve vincular a chave de salvamento à chave de reformatação.
Ganesh Krishnan

3
Eu discordo, @GaneshKrishnan. Esta solução alternativa não vincula a "chave de salvamento" à "chave de reformatação". Ele o vincula a uma macro que "reformata e salva", que é exatamente o que foi solicitado pelo OP e o que é implementado no Eclipse, mas acionado com uma caixa de seleção.
dbm

11
Acho que talvez para a etapa 1 você queira dizer "Código -> Mostrar caixa de diálogo de reformatação de arquivo" para definir os padrões da caixa de diálogo de reformatação de arquivo (para que sejam definidos corretamente na etapa 3 - Reformatação de código)?
precisa saber é o seguinte

61

Eu o defino para limpar automaticamente no check-in, o que geralmente é bom o suficiente para mim. Se algo for muito feio, eu apenas pressionarei o atalho ( Ctrl- Alt- L, Return). E vejo que eles têm uma opção para formatar automaticamente o código colado, embora nunca o tenha usado.


12
Você também pode usar Ctrl-Shift-F para formatar. Isso funciona muito melhor para mim, pois Ctrl-Alt-L é o comando da tela de bloqueio no Ubuntu.
Jason McVetta

22
Ctrl + Shift + F é Localizar no caminho .
stackular

5
Como você configura algo para acontecer no check-in?
Rob

2
Isso funciona se você não estiver fazendo check-in usando o intelliJ, ou seja, acho que não funcionará se você estiver usando a ferramenta de linha de comando.

Como isso responde à pergunta?
Ben

19

Ctrl+ Alt+ Lé um arquivo de formato (inclui os dois abaixo)

Ctrl+ Alt+ Oé otimizar importações

Ctrl+ Alt+ Icorrigirá o recuo em uma linha específica

Normalmente, corro Ctrl+ Alt+ Lalgumas vezes antes de iniciar meu trabalho. Prefiro fazer a limpeza / reformatação ao meu comando, em vez de automaticamente.


Substituir Ctrl com Cmd para Mac
Gerard

12
Cuidado no Linux, como Ctrl + Alt + Lé comumente Bloquear Sessão. Você precisaria remapear uma das funções.
indivisível

18

Se você possui o InteliJ Idea Community 2018.2, as etapas são as seguintes:

  1. No menu superior, clique em: Editar> Macros> Iniciar gravações de macro (você verá uma janela no canto inferior direito da tela, confirmando que as macros estão sendo gravadas)
  2. No menu superior, clique em: Código> Reformatar código (você verá a opção selecionada no canto inferior direito)
  3. No menu superior, clique em: Código> Otimizar importações (você verá a opção selecionada no canto inferior direito)
  4. No menu superior, você clica em: Arquivo> Salvar tudo
  5. No menu superior, clique em: Editar> Macros> Parar gravação de macro
  6. Você nomeia a macro: "Formatar código, organizar importações, salvar"
  7. No menu superior, você faz o relógio: Arquivo> Configurações. Nas janelas de configurações, você clica em Keymap
  8. Na caixa de pesquisa à direita, você pesquisa "salvar". Você encontrará Salvar tudo (Ctrl + S). Clique com o botão direito do mouse e selecione "Remover Ctrl + S"
  9. Remova o texto da pesquisa da caixa, pressione o botão Recolher tudo (segundo botão no canto superior esquerdo)
  10. Vá para macros, pressione a seta para expandir suas macros, encontre a macro salva e clique com o botão direito do mouse. Selecione Adicionar atalho de teclado e pressione Ctrl + S e ok.

Reinicie seu IDE e tente.

Eu sei o que você vai dizer, os caras antes de mim escreveram a mesma coisa. Mas fiquei confuso com as etapas acima deste post e queria escrever uma versão idiota para as pessoas que têm a versão mais recente do IDE.


13

Se você estiver desenvolvendo no Flutter, há uma nova opção experimental a partir de 01/05/2018 que permite formatar o código ao salvar. Definições


9

Acabei religando a Reformat code...ação para Ctrl- S, substituindo a ligação padrão por Save All.

Pode parecer loucura no começo, mas o IntelliJ parece economizar em praticamente todas as ações: executar testes, criar o projeto, mesmo ao fechar uma guia do editor. Eu tenho o hábito de bater Ctrl- com Sbastante frequência, então isso realmente funciona muito bem para mim. É certamente mais fácil digitar do que a ligação padrão para reformatação.


5

IntellIJ 14 && 15: Ao fazer o check-in do código na caixa de diálogo Confirmar alterações, marque a caixa de seleção Reformatar código, e o IntelliJ reformatará todo o código que você está fazendo check-in.

Fonte: www.udemy.com/intellij-idea-secrets-double-your-coding-speed-in-2-hours


2
O que eu disse aqui
Tushar

4
Cuidado que a promoção excessiva de um recurso pode ser interpretada pela comunidade como spam. Você deve postar respostas boas e relevantes, e se um ou dois mencionarem este curso, tudo bem - mas se você o postar em todas as respostas, ele será sinalizado e excluído.
ArtOfCode

2

Eu pensei que havia algo assim no IntelliJ, mas não consigo encontrá-lo. A única limpeza que ocorre no salvamento é que o espaço em branco no final das linhas é removido. Eu pensei que tinha que especificar esse comportamento em um ponto, mas não vejo nada relacionado a esse ponto.


2

Se for sobre Prettier, basta usar um Observador de Arquivos:

referências => Ferramentas => Observadores de Arquivos => clique em + para adicionar um novo observador => Mais bonito

https://prettier.io/docs/en/webstorm.html#running-prettier-on-save-using-file-watcher


2
Mais bonito é ótimo, mas não funciona para idiomas / formatos fora da web. Ele formatará js, ts, css, json, etc., mas é inútil para C, C #, Java, Python etc. - com exceção de algumas tentativas iniciais de plug-ins.
Mattia

0

Desde a versão 2020.1, você pode ativar Executar ao salvar arquivos diretamente nas Preferências do plug-in Prettier :

Preferências para o plugin Prettier

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.