¿Cómo se cambia la forma en que intellij auto formatea el código? [cerrado]

13

IntelliJ hace un formato extraño con código Javascript y estoy tratando de descubrir cómo hacer que deje de formatear de esta manera. Cada vez que encadena funciones jQuery juntas, sangra el código creado automáticamente como este:

$('#something').focus(function() {
    /* Do some stuff */
}).blur(function() {
        /* this is where the cursor and closing braces end up */
        })

Quiero que se vea así:

$('#something').focus(function() {
    /* Do some stuff */
}).blur(function() {
    /* cursor and closing braces indented normally */
});

¿Cómo cambio esto?

intargc
fuente
las soluciones aquí no funcionaron para mí, así que me puse en contacto con jetbrains y me abrieron un problema. Por favor vote por aquí: youtrack.jetbrains.com/issue/WEB-15066
JonnyRaa
44
Estoy votando para cerrar esta pregunta como fuera de tema porque se trata de una herramienta de software, sin embargo, es demasiado antigua para migrar a Stack Overflow.

Respuestas:

11

Como @intarg menciona, en los comentarios. Puede cambiar File|Settings|Code Style|Generaly en el conjunto de pestañas JavascriptContinuation Indent en 0 para Javascript.

Eso te dará la mayor parte de lo que quieres. El problema es que su código es en realidad una sola declaración larga.

$('#something').focus(
function() {
    /* Do some stuff */
}).blur(function() {
    /* this is where the cursor and closing braces end up */
})

No estoy seguro de que haya una opción relevante para evitar un salto de línea después focus(

Ah, y asegúrese de tener activa la pestaña de muestra de código Javascript cuando cambie las opciones; de lo contrario, no las cambiará por Javascript.

EDITAR: Ahora que he buscado más. El formateador de Javascript está codificado para agregar un salto de línea en ese caso específico, no hay una opción para ello.

sylvanaar
fuente
Esto no funciona para mí: sigo
sintiéndome de
0

Todas las configuraciones que necesita para controlar el formato del código en intellij están en Archivo> Otras configuraciones> Configuraciones de plantilla.

Si Javascript no aparece en la lista (es decir, no ha instalado un complemento de Javascript), puede definir el formato del código en la pestaña General y luego en la pestaña Otro. Habrá opciones para controlar la sangría y el espaciado.

Planeta desolado
fuente
Creo que el problema es que cree que la función de .blur () es una sangría de continuación. La única forma en que puedo evitar que haga esto es establecer la sangría de continuación en 0, pero eso también hace que otro código se vea mal. ¿Sabrías una manera de decir que esto no es una sangría de continuación o que están sucediendo algunas cosas internas?
intargc
¿Has instalado un complemento de Javascript en intellij? Sé que hay algunos disponibles. Si no está utilizando ninguno de ellos, el IDE simplemente recurrirá a la sangría / espaciado estándar. Lo ideal sería utilizar un complemento para que el IDE conozca estas construcciones.
Desolate Planet
¿Has probado los jetbrains? Además, ¿has intentado hacer esto con Eclipse? No he tocado intellij en mucho tiempo, pero sé que Eclipse tiene bastante buen soporte de complementos y es bastante fácil controlar la sangría, pero realmente no debería tener un problema con intellij.
Desolate Planet
Dado que la edición comunitaria es de código abierto, siempre puede obtener el código fuente, compilarlo e insertar puntos de interrupción donde realiza el formateo para descartar si hay un problema interno. Si no hace lo que quiere, aplique una corrección y envíe un parche a uno de los propietarios de los repositorios, si tiene el tiempo y la inclinación para hacerlo :)
Desolate Planet
Tengo instalado el complemento javascript. Probaré jetbrains y veré si alguien tiene una pista. Gracias.
intargc