Intellij reformatear en guardar archivo

353

Recuerdo haber visto en IntelliJ o Eclipse la configuración para reformatear (limpiar) los archivos cada vez que se guardan. ¿Cómo lo encuentro (no lo encontré en la configuración)

ripper234
fuente

Respuestas:

236

Sugiero el complemento de guardar acciones . También admite optimizar las importaciones y reorganizar el código.

Funciona bien en combinación con el complemento formateador eclipse .

Busca y activa el complemento:

ingrese la descripción de la imagen aquí

Configurarlo:

ingrese la descripción de la imagen aquí

Editar: parece que la versión reciente de Intellij, el complemento de acción de guardar, se activa por el guardado automático de Intellij. Esto puede ser bastante molesto cuando golpea mientras se está editando.

Este problema de github del complemento da una pista de algunas posibles soluciones:

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

De hecho, intenté asignar un reformateo a Ctrl+ Sy funcionó bien: el guardado se realiza automáticamente ahora.

Benjamin Peter
fuente
Utilicé esto pero después de actualizar a Android Studio 1.5.1, ya no puedo encontrarlo.
r1k0
1
El complemento se actualizó (a partir de ahora) el 10.02.2016 y dice Compatibility This plugin works with Java 6+ and Intellij IDEA Community Edition after 131 (around version 13).que no sé en qué versión de IntelliJ Android Studio se basa. ¿Puedes comprobar esto?
Benjamin Peter
A la cima vas!
Nick Grealy
Casi funcionó para mí. Desafortunadamente, el "código de reformateo" solo haría un subconjunto de las cosas que hace "Código> Código de reformateo" (al menos para el código Scala). ¿Porqué es eso?
Thilo
Intenté esto, pero IntelliJ ahorra mucho a menudo. La organización de las importaciones aparece cada 2-3 pulsaciones de teclas.
Ashley
443

Esta solución funcionó mejor para mí:

  1. Hacer una macro (utilicé Organizar importaciones, Formatear código, Guardar todo)
  2. Asignarle una pulsación de tecla (anulé Ctrl+ S)

Nota: Deberá marcar la casilla "No volver a mostrar este mensaje" la primera vez para las importaciones organizadas, pero funciona como se esperaba después de eso.

Paso a paso para IntelliJ 10.0:

  1. Código -> "Optimizar importaciones ...", si aparece un cuadro de diálogo, marque la casilla que dice "No volver a mostrar este mensaje", luego haga clic en "Ejecutar".
  2. Herramientas -> "Iniciar grabación de macros"
  3. Código -> "Optimizar importaciones ..."
  4. Código -> "Reformatear código ..."
  5. Archivo -> "Guardar todo"
  6. Herramientas -> "Detener grabación de macros"
  7. Nombra la macro (algo así como "guardar formateado")
  8. En Archivo -> Configuración -> Mapa de teclas, seleccione su macro ubicada en "Menú principal -> Herramientas ->" guardar formateado "
  9. Haga clic en "Agregar atajo de teclado", luego realice la combinación de teclas que desee. Si elige Ctrl+ Sme gusta, le preguntará qué hacer con el acceso directo Ctrl+ anterior S. Quitarlo Siempre puede reasignarlo más tarde si lo desea.
  10. ¡Disfrutar!

Para IntelliJ 11, reemplace

paso 2. con: Editar -> Macros -> "Iniciar grabación de macro"
paso 6. con: Editar -> Macros -> "Detener grabación de macro"

Todo lo demás se mantiene igual.

IntelliJ 12

8. Las preferencias contienen la configuración del mapa de teclas. Use el campo de entrada para filtrar el contenido, como se muestra en la captura de pantalla.

Intellij / Preferencias / Mapa de teclas / Macros

Neil
fuente
44
En IntelliJ 11: 1: Iniciar grabación de macro: Editar -> Macros -> Iniciar grabación de macro. 2: Siga las instrucciones anteriores. 3: Detener la grabación de macros: Editar -> Macros -> Detener la grabación de macros. En el mapa de teclas, la macro se guarda en la carpeta Macros en lugar del menú principal -> carpeta Herramientas.
Markus K
3
Si está satisfecho con la forma en que se reformatea el código, este enfoque funciona mucho mejor si elige volver a formatear todo el código en el proyecto y guardarlo todo. De lo contrario, cuando realiza ediciones de varios archivos, solo se vuelve a formatear la activa antes de guardar todas las modificaciones.
Drew Noakes
86

A continuación se muestra la respuesta de Neil actualizada.

IntelliJ 13 pasos:

  1. Código -> Reformatear Código ingrese la descripción de la imagen aquí
  2. Editar -> Macros -> Iniciar grabación de macros
  3. Código -> Reformatear Código
  4. Archivo -> Guardar todo
  5. Editar -> Macros -> Detener grabación de macros
  6. Nombra la macro (algo así como "guardar formateado")
  7. Archivo -> Configuración -> Mapa de teclas
  8. Haga clic derecho en la macro. Añadir atajo de teclado. Establezca el método abreviado de teclado en Control + S. ingrese la descripción de la imagen aquí
  9. IntelliJ le informará de un conflicto de teclas de acceso rápido. Seleccione "eliminar" para eliminar otras tareas.
usuario3858354
fuente
Pero esto elimina la acción "Guardar". Lo que ha visto el póster es que en Eclipse tenemos la opción de formatear el código y organizar la importación automáticamente cuando se guarda un archivo. Esta opción está (supongo) ausente en la idea de IntelliJ. Esta es una solución que implica vincular la clave de guardar a la clave de reformateo.
Ganesh Krishnan
3
No estoy de acuerdo, @GaneshKrishnan. Esta solución alternativa no vincula la "clave de guardar" a la "clave de reformateo". Lo vincula a una macro que "reformatea y guarda", que es exactamente lo que solicitó OP y lo que se implementa en Eclipse, pero se activa con una casilla de verificación.
dbm
1
Creo que tal vez para el paso 1 te refieres a "Código -> Mostrar diálogo de reformateo de archivo" para establecer los valores predeterminados para el diálogo de reformateo de archivo (para que estén configurados correctamente para el paso 3 - Reformatear código).
studgeek
61

Lo configuré para que se limpiara automáticamente en el check-in, lo que generalmente es lo suficientemente bueno para mí. Si algo es demasiado feo, presionaré el atajo ( Ctrl- Alt- L, Return). Y veo que tienen una opción para formatear automáticamente el código pegado, aunque nunca lo he usado.

William Pietri
fuente
12
También puede usar Ctrl-Shift-F para formatear. Eso funciona mucho mejor para mí, ya que Ctrl-Alt-L es el comando de bloqueo de pantalla en Ubuntu.
Jason McVetta
22
Ctrl + Shift + F es Buscar en ruta .
stackular
55
¿Cómo se configura algo para que ocurra en el check-in?
robar
2
¿Funciona si no se registra utilizando IntelliJ? Es decir, creo que no funcionará si se registra utilizando la herramienta de línea de comandos.
¿Cómo responde eso a la pregunta?
Ben
19

Ctrl+ Alt+ Les un archivo de formato (incluye los dos siguientes)

Ctrl+ Alt+ Oes optimizar las importaciones

Ctrl+ Alt+ Iarreglará la sangría en una línea particular

Normalmente ejecuto Ctrl+ Alt+ Lalgunas veces antes de comprometer mi trabajo. Prefiero hacer la limpieza / reformateo en mi comando en lugar de automáticamente.

joeslice
fuente
Reemplazar Ctrl con Cmd para Mac
Gerard
12
Cuidado con Linux como Ctrl + Alt + Les comúnmente Lock Session. Necesitaría reasignar una de las funciones.
indivisible
18

Si tiene InteliJ Idea Community 2018.2, los pasos son los siguientes:

  1. En el menú superior, haga clic en: Editar> Macros> Iniciar grabaciones de macros (verá una ventana en la esquina inferior derecha de su pantalla que confirma que se están grabando macros)
  2. En el menú superior, hace clic en: Código> Reformatear código (verá que la opción se selecciona en la esquina inferior derecha)
  3. En el menú superior, hace clic en: Código> Optimizar importaciones (verá que la opción se selecciona en la esquina inferior derecha)
  4. En el menú superior, haga clic en: Archivo> Guardar todo
  5. En el menú superior, haga clic en: Editar> Macros> Detener grabación de macros
  6. Nombra la macro: "Formatear código, organizar importaciones, guardar"
  7. En el menú superior del reloj: Archivo> Configuración. En la ventana de configuración, hace clic en Mapa de teclas
  8. En el cuadro de búsqueda a la derecha, busca "guardar". Encontrarás Guardar todo (Ctrl + S). Haga clic derecho sobre él y seleccione "Eliminar Ctrl + S"
  9. Elimine el texto de búsqueda del cuadro, presione el botón Contraer todo (Segundo botón desde la parte superior izquierda)
  10. Vaya a macros, presione la flecha para expandir sus macros, encuentre su macro guardada y haga clic derecho sobre ella. Seleccione Agregar atajo de teclado y presione Ctrl + S y está bien.

Reinicie su IDE y pruébelo.

Sé lo que vas a decir, los chicos antes que yo escribieron lo mismo. Pero me confundí usando los pasos anteriores a esta publicación, y quería escribir una versión tonta para las personas que tienen la última versión del IDE.

Allex Radu
fuente
13

Si está desarrollando en Flutter, hay una nueva opción experimental a partir del 5/1/2018 que le permite formatear el código al guardar. Configuraciones

ThinkDigital
fuente
9

Terminé volviendo a vincular la Reformat code...acción a Ctrl- S, reemplazando el enlace predeterminado para Save All.

Al principio puede parecer una locura, pero IntelliJ parece ahorrar en prácticamente todas las acciones: ejecutar pruebas, construir el proyecto, incluso al cerrar una pestaña del editor. Tengo la costumbre de golpear Ctrl, con Sbastante frecuencia, por lo que esto realmente funciona bastante bien para mí. Ciertamente es más fácil escribir que el enlace predeterminado para formatear.

cwc
fuente
5

IntellIJ 14 && 15: cuando esté ingresando código en el cuadro de diálogo Confirmar cambios, marque la casilla de verificación Reformatear código, luego IntelliJ formateará todo el código que está ingresando.

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

Alex Richard
fuente
2
¿Qué dije aquí
Tushar
44
Tenga en cuenta que la promoción excesiva de un recurso puede ser interpretada por la comunidad como spam. Debe publicar respuestas buenas y relevantes, y si una o dos mencionan este curso, está bien, pero si lo publica en cada respuesta, se marcará y eliminará.
ArtOfCode
2

Pensé que había algo así en IntelliJ, pero no puedo encontrarlo. La única limpieza que ocurre al guardar es que se elimina el espacio en blanco en los extremos de las líneas. Pensé que tenía que especificar ese comportamiento en un punto, pero no veo nada relacionado en este punto.

PanCrit
fuente
2

Si se trata de Prettier, solo use un File Watcher:

referencias => Herramientas => Observadores de archivos => haga clic en + para agregar un nuevo observador => Más bonito

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

Julien Malige
fuente
2
Prettier es genial, pero no funciona para idiomas / formatos fuera de la web. Formateará js, ts, css, json, etc. pero es inútil para C, C #, Java, Python, etc., con la excepción de algunos intentos iniciales de complementos.
Mattia
0

Desde la versión 2020.1, puede activar Ejecutar al guardar para archivos directamente en las Preferencias del complemento Prettier :

Preferencias para el complemento Prettier

Kim Kern
fuente