Est-il possible d'utiliser des tâches multilignes dans IntelliJ IDEA?

90

Si oui, comment?

Sinon, existe-t-il une solution de contournement pour obtenir des fonctionnalités similaires?

ÉDITER:

Ce que je veux dire, c'est quelque chose comme ça:

// TODO line1
// line2
// line3

et line1, line2, line3 appartiennent au même TODOet sont surlignés en bleu.

jhegedus
la source

Réponses:

53

Non, pas pour le moment.

Cette fonctionnalité a été discutée , mais pas encore implémentée.

MODIFIER / METTRE À JOUR:

Il est implémenté dans la version 2018.3.

Gallal
la source
12
Veuillez prendre un moment pour suivre ce lien et voter sur le problème pour que ce ticket soit priorisé. Il y a une icône en forme de pouce à côté des "électeurs" sur le côté droit.
adamdport le
2
Ceci est désormais implémenté dans IDEA 2018.3, actuellement dans EAP. blog.jetbrains.com/idea/2018/09/…
David
Et maintenant disponible pour Android avec la version Android Studio 3.4 car il est basé sur IDEA 2018.3
shaktiman_droid
54

Ceci est pris en charge depuis 2018.3 .

Commentaires Multiline TODO

Commentaires Multiline TODO

IntelliJ IDEA 2018.3 prend désormais en charge les commentaires TODO multilignes , maintenant la première et toutes les lignes de commentaires TODO suivantes sont mises en surbrillance dans l'éditeur et répertoriées dans la fenêtre de l'outil TODO . Ajoutez simplement un retrait à partir de la deuxième ligne de votre commentaire TODO multiligne, et l'EDI le différenciera d'un commentaire ordinaire.

congusbongus
la source
Je vous remercie! Très utile. Le seul problème est que lorsque je clique sur Ctrl-Alt-L pour formater mon fichier, l'indentation est supprimée. Une idée comment éviter cela?
Gep le
27

Dans mes paramètres, j'utilise une telle regex pour TODO multiligne:

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

Le seul problème est qu'il ne met pas en évidence les derniers * / symboles du commentaire multiligne. Si quelqu'un peut résoudre cela, ce serait génial!

NonGrate
la source
1
J'ai trouvé deux bogues potentiels (ou des erreurs probables de ma part) avec cela pour Android Studios au moins. Premièrement, pour une raison quelconque, cela jette l'indexation de mon repo pour une seule classe de mon projet. La même classe à chaque fois aussi. Supprimez-le de la liste TODO et il est réindexé de manière appropriée. Deuxièmement, cela crée un problème StackOverflow lorsque l'EDI se charge, mais l'EDI ne publie pas d'avertissement ou de fermeture forcée ou quoi que ce soit, donc je ne suis pas sûr de la gravité. Je continuerai à l'examiner, mais quelque chose mérite d'être mentionné si quelqu'un d'autre y rencontre. Cela étant dit, il semble faire ce qu'il devrait en dehors de cela.
zgc7009
Salut zgc7009! Pourriez-vous s'il vous plaît poster ici votre commentaire TODO? Plus de gens le voient - plus vite nous trouverons le problème :-)
NonGrate
5

Est-ce que tu veut dire ça? utilisation de listes de tâches

/**
 * todo multi-line
 *  
 */
yanyu
la source
2
Merci pour la réponse. Ce serait bien si toutes les lignes du bloc appartenaient au todo et seraient surlignées en bleu. Mais c'est la chose la plus proche que nous ayons pour le moment.
jhegedus
5

Vous pouvez utiliser FIXME et TODO en utilisant les onglets comme suit

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

Pour plus d'informations, veuillez consulter la documentation

Baimyrza Shamyr
la source
3

S'appuyant sur la réponse de NonGrate:

Accédez aux paramètres, recherchez les paramètres TODO et remplacez l'entrée todo existante " \ btodo \ b. * " Par:

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

Résultat:

entrez la description de l'image ici

Vous devez utiliser * / pour fermer la surbrillance.

Il utilise 2 modèles:

  1. (\ btodo \ b. ) capture n'importe quelle ligne avec le mot todo
  2. (/ \ * (\ * (?! /) | [^ *]) * \ btodo \ b (\ * (?! /) | [^ *] * \ * /) capture les commentaires sur plusieurs lignes commençant par / * et se terminant par * /

Toutes les autres combinaisons peuvent ne pas fonctionner.

Remarque: vous devez remplacer l'expression régulière existante pour éviter que plusieurs instances du même élément de tâche n'apparaissent dans la liste de tâches.

chasseur
la source
Je viens de l'utiliser dans IntelliJ 2017.1.3 sur Mac et cela a très bien fonctionné. Merci!
yokeho
2
Dans le studio Android actuel, cela ne fonctionne pas comme @Jeremy l'a dit ci-dessus ... mais cela fonctionne avec l'utilisation de / ** tests avant les tests TODO après * /
Codeversé
3
AVERTISSEMENT: cela divise simplement IntelliJ et Android Studio en un milliard de morceaux. Il a une récursivité RegEx qui est considérée comme presque un péché dans le développement Java en raison de la façon dont les expressions RegEx sont compilées et de la facilité avec laquelle vous pouvez provoquer un SO (ce qui en fait la cause).
mradzinski
-1

Cette regex fonctionne pour moi:

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

Il recherche essentiellement les éléments suivants:

  • Un mot clé todo ou TODO éventuellement suffixé par un identifiant de ticket / problème entre parenthèses et toute quantité de caractères après un seul caractère d'espace blanc.
  • Un commentaire java sur plusieurs lignes commençant par / * suivi de toute quantité d'espace blanc, puis des conditions décrites dans la description de todo sur une seule ligne ci-dessus. Il se termine une fois qu'il trouve * / dans l'une des lignes suivantes.

Exemples sur une seule ligne:

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

Exemples multilignes:

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

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