È possibile utilizzare le cose da fare su più righe in IntelliJ IDEA?


90

Se sì, come?

In caso contrario, esiste una soluzione alternativa per ottenere funzionalità simili?

MODIFICARE:

Quello che voglio dire è qualcosa del genere:

// TODO line1
// line2
// line3

e line1, line2, line3 appartengono allo stesso TODOe vengono evidenziate in blu.


Risposte:


53

No, non per ora.

Questa funzionalità è stata discussa , ma non ancora implementata.

MODIFICA / AGGIORNAMENTO:

È implementato nella versione 2018.3.


12
Per favore, dedica un momento a seguire quel link e vota il problema per dare la priorità a questo ticket. C'è un'icona con il pollice in alto accanto a "elettori" sul lato destro.
adamdport

2
Questo è ora implementato in IDEA 2018.3, attualmente in EAP. blog.jetbrains.com/idea/2018/09/…
David

E ora disponibile per Android con versione Android Studio 3.4 poiché è basato su IDEA 2018.3
shaktiman_droid

54

Questo è supportato dalla 2018.3 .

Commenti TODO su più righe

Commenti TODO su più righe

IntelliJ IDEA 2018.3 ora supporta i commenti TODO su più righe, ora la prima e tutte le successive righe di commento TODO sono evidenziate nell'editor ed elencate nella finestra degli strumenti TODO . Aggiungi semplicemente un rientro a partire dalla seconda riga del tuo commento TODO su più righe e l'IDE lo differenzierà da un normale commento.


Grazie! Molto utile. L'unico problema è quando clicco Ctrl-Alt-L per formattare il mio file, il rientro viene rimosso. Qualche idea su come impedirlo?
Gep

27

Nelle mie impostazioni sto usando una tale regex per TODO multilinea:

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

L'unico problema è che non evidenzia gli ultimi * / simboli del commento su più righe. Se qualcuno può risolverlo, sarebbe fantastico!


1
Ho trovato due potenziali bug (o probabili errori da parte mia) con questo almeno per Android Studios. Uno, per qualche motivo, elimina la mia indicizzazione dei repo per una singola classe nel mio progetto. Anche la stessa classe ogni volta. Rimuovilo dall'elenco TODO e viene reindicizzato in modo appropriato. In secondo luogo, crea un problema StackOverflow quando l'IDE viene caricato, ma l'IDE non pubblica un avviso o forza la chiusura o altro, quindi non sono sicuro della gravità. Continuerò a esaminarlo, ma qualcosa che vale la pena menzionare se qualcun altro si imbatte in esso. Detto questo, sembra che faccia come dovrebbe al di fuori di questo.
zgc7009

Ciao zgc7009! Potresti postare qui il tuo commento TODO? Più persone lo vedono - più velocemente troveremo il problema :-)
NonGrate

5

Intendi questo? utilizzando elenchi di cose da fare

/**
 * todo multi-line
 *  
 */

2
Grazie per la risposta. Sarebbe bello se tutte le linee nel blocco appartenessero alla cosa da fare e fossero evidenziate in blu. Ma è la cosa più vicina che abbiamo al momento.
jhegedus

5

È possibile utilizzare FIXME e TODO utilizzando le schede come segue

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

Per ulteriori informazioni fare riferimento alla documentazione


3

Basandosi sulla risposta di NonGrate:

Vai alle impostazioni, cerca le impostazioni TODO e sostituisci la voce attività esistente " \ btodo \ b. * " Con:

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

Risultato:

inserisci qui la descrizione dell'immagine

Devi usare * / per chiudere l'evidenziazione.

Utilizza 2 modelli:

  1. (\ btodo \ b. ) cattura qualsiasi riga con la parola todo
  2. (/ \ * (\ * (?! /) | [^ *]) * \ btodo \ b (\ * (?! /) | [^ *] * \ * /) cattura commenti su più righe che iniziano con / * e che termina con * /

Qualsiasi altra combinazione potrebbe non funzionare.

Nota: devi sostituire la regex esistente per evitare che più istanze dello stesso elemento todo appaiano nell'elenco delle cose da fare.


L'ho appena usato in IntelliJ 2017.1.3 su Mac e ha funzionato benissimo. Grazie!
yokeho

2
Nell'attuale Android Studio, questo non funziona come @Jeremy ha detto sopra ... ma funziona con l'utilizzo di / ** test prima del test TODO dopo * /
Codeversed

3
ATTENZIONE: questo rompe semplicemente IntelliJ e Android Studio in un miliardo di pezzi. Ha la ricorsione RegEx che è considerata quasi un peccato nello sviluppo Java a causa del modo in cui vengono compilate le espressioni RegEx e della facilità con cui si può causare un SO (che in effetti questo causa).
mradzinski

-1

Questa regex funziona per me:

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

Fondamentalmente cerca quanto segue:

  • Una parola chiave todo o TODO con suffisso facoltativo da un ID ticket / problema tra parentesi e qualsiasi quantità di caratteri dopo un singolo carattere di spazio bianco.
  • Un commento java su più righe che inizia con / * seguito da qualsiasi quantità di spazio bianco e quindi le condizioni descritte nella descrizione delle cose da fare a riga singola sopra. Termina una volta che trova * / in una delle seguenti righe.

Esempi di riga singola:

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

Esempi su più righe:

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

/* TODO[SAO-13]
 * a very important message
 * another thing
*/
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.