Ist es möglich, mehrzeilige Aufgaben in IntelliJ IDEA zu verwenden?

90

Wenn ja, wie?

Wenn nicht, gibt es eine Problemumgehung, um ähnliche Funktionen zu erhalten?

BEARBEITEN:

Was ich meine ist so etwas:

// TODO line1
// line2
// line3

und Zeile1, Zeile2, Zeile3 gehören zum selben TODOund werden blau hervorgehoben.

jhegedus
quelle

Antworten:

52

Nein, vorerst nicht.

Diese Funktion wurde diskutiert , aber noch nicht implementiert.

BEARBEITEN / AKTUALISIEREN:

Es ist in der Version 2018.3 implementiert.

Gallal
quelle
12
Bitte nehmen Sie sich einen Moment Zeit, um diesem Link zu folgen und über das Problem abzustimmen, damit dieses Ticket priorisiert wird. Auf der rechten Seite befindet sich neben "Wähler" ein Daumen hoch-Symbol.
Adamdport
2
Dies ist jetzt in IDEA 2018.3 implementiert, derzeit in EAP. blog.jetbrains.com/idea/2018/09/…
David
Und jetzt für Android mit Android Studio 3.4 verfügbar, da es auf IDEA 2018.3 basiert
shaktiman_droid
52

Dies wird seit 2018.3 unterstützt .

Mehrzeilige TODO-Kommentare

Mehrzeilige TODO-Kommentare

IntelliJ IDEA 2018.3 unterstützt jetzt mehrzeilige TODO-Kommentare . Jetzt werden die erste und alle nachfolgenden TODO-Kommentarzeilen im Editor hervorgehoben und im TODO-Tool-Fenster aufgelistet . Fügen Sie einfach einen Einzug ab der zweiten Zeile Ihres mehrzeiligen TODO-Kommentars hinzu, und die IDE unterscheidet ihn von einem normalen Kommentar.

Congusbongus
quelle
Danke dir! Sehr hilfreich. Das einzige Problem ist, wenn ich auf Strg-Alt-L klicke, um meine Datei zu formatieren, wird der Einzug entfernt. Irgendeine Idee, wie man das verhindert?
Gep
27

In meinen Einstellungen verwende ich einen solchen regulären Ausdruck für mehrzeiliges TODO:

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

Das einzige Problem ist, dass die letzten * / Symbole eines mehrzeiligen Kommentars nicht hervorgehoben werden. Wenn jemand das lösen kann, wäre es großartig!

NonGrate
quelle
1
Ich habe mindestens zwei mögliche Fehler (oder wahrscheinlich Fehler von meiner Seite) für Android Studios gefunden. Zum einen wird aus irgendeinem Grund meine Repo-Indizierung für eine einzelne Klasse in meinem Projekt deaktiviert. Jedes Mal die gleiche Klasse. Entfernen Sie dies aus der TODO-Liste und es wird entsprechend neu indiziert. Zweitens wird beim Laden der IDE ein StackOverflow-Problem erstellt, aber die IDE gibt keine Warnung aus oder erzwingt das Schließen oder ähnliches, sodass ich mir des Schweregrads nicht sicher bin. Ich werde mich weiter damit befassen, aber etwas Erwähnenswertes, wenn jemand anderes darauf stößt. Davon abgesehen scheint es außerhalb dessen zu tun, was es sollte.
zgc7009
Hallo zgc7009! Könnten Sie bitte hier Ihren TODO-Kommentar posten? Mehr Leute sehen es - schneller werden wir das Problem finden :-)
NonGrate
5

Meinst du das? using-todo-Listen

/**
 * todo multi-line
 *  
 */
Yanyu
quelle
2
Danke für die Antwort. Das wäre gut, wenn alle Zeilen im Block zur Aufgabe gehören und blau hervorgehoben würden. Aber es ist das Nächste, was wir im Moment haben.
Jhegedus
5

Sie können FIXME und TODO mithilfe der folgenden Registerkarten verwenden

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

Weitere Informationen finden Sie in der Dokumentation

Baimyrza Shamyr
quelle
3

Aufbauend auf der Antwort von NonGrate:

Gehen Sie zu Einstellungen, suchen Sie nach TODO-Einstellungen und ersetzen Sie den vorhandenen Aufgabeneintrag " \ btodo \ b. * " Durch:

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

Ergebnis:

Geben Sie hier die Bildbeschreibung ein

Sie müssen * / verwenden, um die Markierung zu schließen.

Es werden 2 Muster verwendet:

  1. (\ btodo \ b. ) erfasst jede Zeile mit dem Wort todo
  2. (/ \ * (\ * (?! /) | [^ *]) * \ btodo \ b (\ * (?! /) | [^ *] * \ * /) erfasst mehrzeilige Kommentare, die mit / * und beginnen endet mit * /

Andere Kombinationen funktionieren möglicherweise nicht.

Hinweis: Sie müssen den vorhandenen regulären Ausdruck ersetzen, um zu vermeiden, dass mehrere Instanzen desselben Aufgabenelements in der Aufgabenliste angezeigt werden.

Verfolger
quelle
Ich habe es gerade in IntelliJ 2017.1.3 auf dem Mac verwendet und es hat großartig funktioniert. Vielen Dank!
Yokeho
2
Im aktuellen Android Studio funktioniert dies nicht wie oben beschrieben von @Jeremy ... aber es funktioniert mit / ** Tests vor TODO Tests nach * /
Codeversed
3
WARNUNG: Dadurch werden IntelliJ und Android Studio einfach in eine Milliarde Teile zerlegt. Es gibt eine RegEx-Rekursion, die in der Java-Entwicklung fast als Sünde angesehen wird, da RegEx-Ausdrücke kompiliert werden und wie leicht Sie eine SO verursachen können (was tatsächlich dazu führt).
mradzinski
-1

Dieser Regex funktioniert für mich:

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

Grundsätzlich sieht es nach Folgendem aus:

  • Ein todo- oder TODO- Schlüsselwort, das optional durch eine Ticket- / Issue-ID in Klammern und eine beliebige Anzahl von Zeichen nach einem einzelnen Leerzeichen ergänzt wird.
  • Ein mehrzeiliger Java-Kommentar, der mit / * beginnt, gefolgt von einer beliebigen Menge an Leerzeichen und den Bedingungen, die in der obigen Beschreibung der einzelnen Zeile beschrieben sind. Es wird beendet, sobald es * / in einer der folgenden Zeilen findet.

Einzeilige Beispiele:

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

Mehrzeilige Beispiele:

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

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