¿Es posible usar tareas de varias líneas en IntelliJ IDEA?

90

Si es así, ¿cómo?

Si no es así, ¿hay alguna solución para obtener una funcionalidad similar?

EDITAR:

Lo que quiero decir es algo como esto:

// TODO line1
// line2
// line3

y line1, line2, line3 pertenecen al mismo TODOy se resaltan con azul.

jhegedus
fuente

Respuestas:

53

No, no por ahora.

Esta característica se ha discutido , pero que aún no se han aplicado.

EDITAR / ACTUALIZAR:

Está implementado en la versión 2018.3.

Gallal
fuente
12
Tómese un momento para seguir ese enlace y vote sobre el problema para priorizar este boleto. Hay un icono de pulgar hacia arriba junto a "votantes" en el lado derecho.
Adamdport
2
Esto ahora está implementado en IDEA 2018.3, actualmente en EAP. blog.jetbrains.com/idea/2018/09/...
David
Y ahora disponible para Android con la versión de Android Studio 3.4, ya que se basa en IDEA 2018.3
shaktiman_droid
54

Esto es compatible desde 2018.3 .

Comentarios TODO multilínea

Comentarios TODO multilínea

IntelliJ IDEA 2018.3 ahora admite comentarios de TODO de varias líneas, ahora la primera y todas las líneas de comentarios de TODO posteriores se resaltan en el editor y se enumeran en la ventana de herramientas TODO . Simplemente agregue una sangría a partir de la segunda línea de su comentario TODO de varias líneas, y el IDE lo diferenciará de un comentario ordinario.

congusbongus
fuente
¡Gracias! Muy útil. El único problema es que cuando hago clic en Ctrl-Alt-L para formatear mi archivo, se elimina la sangría. ¿Alguna idea de cómo prevenir esto?
Gep
27

En mi configuración, estoy usando una expresión regular para multilínea TODO:

\/(\/|\*)[ ]*\btodo\b(.|\n)*(\*\/|)

El único problema es que no resalta los últimos * / símbolos del comentario de varias líneas. Si alguien puede resolver eso, ¡sería genial!

NonGrate
fuente
1
Encontré dos errores potenciales (o posibles errores de mi parte) con esto para Android Studios al menos. Uno, por alguna razón, arroja mi indexación de repositorios para una sola clase en mi proyecto. La misma clase siempre también. Elimine esto de la lista TODO y se volverá a indexar adecuadamente. En segundo lugar, crea un problema de StackOverflow cuando se carga el IDE, pero el IDE no publica una advertencia ni fuerza el cierre ni nada, por lo que no estoy seguro de la gravedad. Seguiré investigándolo, pero algo que vale la pena mencionar si alguien más se encuentra con él. Dicho esto, parece que funciona como debería fuera de eso.
zgc7009
¡Hola zgc7009! ¿Podrías publicar aquí tu comentario TODO? Más gente lo ve - más rápido encontraremos el problema :-)
NonGrate
5

¿Quieres decir esto? usando-listas-de-tareas

/**
 * todo multi-line
 *  
 */
yanyu
fuente
2
Gracias por la respuesta. Eso sería bueno si todas las líneas del bloque pertenecieran a la tarea y estuvieran resaltadas en azul. Pero es lo más parecido que tenemos en este momento.
jhegedus
5

Puede usar FIXME y TODO usando pestañas de la siguiente manera

//FIXME: first line
//<tab> second line
//<tab> third line

Para obtener más información, consulte la documentación.

Baimyrza Shamyr
fuente
3

Basándose en la respuesta de NonGrate:

Vaya a la configuración, busque la configuración de TODO y reemplace la entrada existente " \ btodo \ b. * " Por:

(\btodo\b.*)|(\/\*(\*(?!\/)|[^*])*\btodo\b(\*(?!\/)|[^*])*\*\/)

Resultado:

ingrese la descripción de la imagen aquí

Debe usar * / para cerrar el resaltado.

Utiliza 2 patrones:

  1. (\ btodo \ b. ) captura cualquier línea con la palabra todo
  2. (/ \ * (\ * (?! /) | [^ *]) * \ btodo \ b (\ * (?! /) | [^ *] * \ * /) captura comentarios de varias líneas que comienzan con / * y terminando con * /

Es posible que otras combinaciones no funcionen.

Nota: Debe reemplazar la expresión regular existente para evitar que aparezcan varias instancias del mismo elemento de tareas pendientes en la lista de tareas pendientes.

perseguidor
fuente
Solo usé esto en IntelliJ 2017.1.3 en Mac y funcionó muy bien. ¡Gracias!
yokeho
2
En el Android Studio actual, esto no funciona como @Jeremy dijo anteriormente ... pero funciona con el uso de / ** testing antes de TODO testing después de * /
Codeversed
3
ADVERTENCIA: Esto simplemente rompe IntelliJ y Android Studio en mil millones de piezas. Tiene recursividad RegEx, que se considera casi un pecado en el desarrollo de Java debido a cómo se compilan las expresiones RegEx y la facilidad con la que puede causar un SO (que de hecho esto causa).
mradzinski
-1

Esta expresión regular me funciona:

(?:(?:todo|TODO)(?:\[[A-Z,a-z]+\-\d+\])?\s(\s*\b.*\b)*)|(?:\/\*\s*(?:todo|TODO)(?:\[[A-Z,a-z]+\-\d+\])?\s(?:(?!\*\/)[\s\S])*\*\/)

Básicamente busca lo siguiente:

  • A TODO o TODO palabra clave opcionalmente con el sufijo Identificación del billete / cuestión en corchetes y cualquier cantidad de caracteres después de un solo carácter de espacio en blanco.
  • Un comentario de varias líneas de Java que comienza con / * seguido de cualquier cantidad de espacio en blanco y, a continuación, las condiciones descritas en la descripción de una sola línea de todo lo anterior. Termina una vez que encuentra * / en cualquiera de las siguientes líneas.

Ejemplos de una sola línea:

todo some very important stuff
TODO[SAOY-1376] An urgent bug fix described in the SAOY-1376
// todo some very important stuff
// TODO[SAOY-1376] An urgent bug fix described in the SAOY-1376

Ejemplos de varias líneas:

/* todo assignee or something
    a very important message
    another thing
*/

/* TODO[SAO-13]
 * a very important message
 * another thing
*/
Martynas Petuska
fuente