Czy można używać wielowierszowych zadań do wykonania w IntelliJ IDEA?


90

Jeśli tak, w jaki sposób?

Jeśli nie, czy można obejść ten problem, aby uzyskać podobną funkcjonalność?

EDYTOWAĆ:

Mam na myśli coś takiego:

// TODO line1
// line2
// line3

a linia1, linia2, linia3 należą do tego samego TODOi są podświetlane na niebiesko.


Odpowiedzi:


53

Nie, na razie nie.

Ta funkcja została omówiona , ale nie została jeszcze zaimplementowana.

EDYTUJ / AKTUALIZUJ:

Jest zaimplementowany w wersji 2018.3.


12
Poświęć chwilę, aby kliknąć ten link i zagłosuj w sprawie, aby uzyskać priorytet tego zgłoszenia. Obok „wyborców” po prawej stronie znajduje się ikona kciuka w górę.
adamdport

2
Jest to teraz zaimplementowane w IDEA 2018.3, obecnie w EAP. blog.jetbrains.com/idea/2018/09/…
David

A teraz dostępne dla systemu Android z Android Studio 3.4 wydaniu, jak to jest na podstawie IDEA 2018.3
shaktiman_droid

59

Jest to obsługiwane od 2018.3 .

Wielowierszowe komentarze TODO

Wielowierszowe komentarze TODO

IntelliJ IDEA 2018.3 obsługuje teraz wielowierszowe komentarze TODO , teraz pierwsza i wszystkie kolejne linie komentarzy TODO są podświetlone w edytorze i wymienione w oknie narzędzia TODO . Po prostu dodaj wcięcie zaczynające się od drugiego wiersza wielowierszowego komentarza TODO, a środowisko IDE odróżni go od zwykłego komentarza.


Dziękuję Ci! Bardzo przydatne. Jedynym problemem jest to, że kiedy klikam Ctrl-Alt-L, aby sformatować plik, wcięcie jest usuwane. Masz pomysł, jak temu zapobiec?
Gep

27

W moich ustawieniach używam takiego wyrażenia regularnego dla wielowierszowego TODO:

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

Jedynym problemem jest to, że nie wyróżnia ostatnich * / symboli komentarza wielowierszowego. Gdyby ktoś mógł to rozwiązać, byłoby wspaniale!


1
Znalazłem dwa potencjalne błędy (lub prawdopodobne błędy z mojej strony) w tym przynajmniej dla Android Studios. Po pierwsze, z jakiegoś powodu wyrzuca indeksowanie repozytorium dla jednej klasy w moim projekcie. Za każdym razem te same zajęcia. Usuń to z listy TODO i zostanie odpowiednio ponownie zindeksowane. Po drugie, tworzy problem StackOverflow podczas ładowania IDE, ale IDE nie wysyła ostrzeżenia ani nie wymusza zamknięcia ani niczego, więc nie jestem pewien co do wagi. Będę się temu przyglądał, ale warto o tym wspomnieć, jeśli ktoś inny na to wpadnie. Biorąc to pod uwagę, wydaje się, że poza tym robi to, co powinno.
zgc7009

Cześć zgc7009! Czy mógłbyś zamieścić tutaj swój komentarz TODO? Więcej osób to widzi - szybciej znajdziemy problem :-)
NonGrate

5

Masz na myśli to? using-todo-lists

/**
 * todo multi-line
 *  
 */

2
Dziękuję za Twoją odpowiedź. Byłoby dobrze, gdyby wszystkie wiersze w bloku należały do ​​zadania do wykonania i byłyby podświetlone na niebiesko. Ale to najbliższa rzecz, jaką mamy w tej chwili.
jhegedus

5

Możesz użyć FIXME i TODO za pomocą zakładek w następujący sposób

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

Więcej informacji można znaleźć w dokumentacji


3

Opierając się na odpowiedzi NonGrate:

Przejdź do ustawień, wyszukaj ustawienia TODO i zamień istniejący wpis do wykonania „ \ btodo \ b. * ” Na:

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

Wynik:

wprowadź opis obrazu tutaj

Musisz użyć * /, aby zamknąć podświetlenie.

Wykorzystuje 2 wzorce:

  1. (\ btodo \ b. ) przechwytuje każdy wiersz ze słowem todo
  2. (/ \ * (\ * (?! /) | [^ *]) * \ btodo \ b (\ * (?! /) | [^ *] * \ * /) przechwytuje wielowierszowe komentarze zaczynające się od / * i kończące się na * /

Żadne inne kombinacje mogą nie działać.

Uwaga: musisz zastąpić istniejące wyrażenie regularne, aby uniknąć pojawienia się wielu wystąpień tej samej czynności do wykonania na liście zadań do wykonania.


Po prostu użyłem tego w IntelliJ 2017.1.3 na Macu i działało świetnie. Dzięki!
yokeho

2
W obecnym Android Studio to nie działa tak, jak @Jeremy powiedział powyżej ... ale działa z użyciem / ** testing przed testami TODO po * /
Codeversed

3
OSTRZEŻENIE: To po prostu dzieli IntelliJ i Android Studio na miliard części. Ma rekursję RegEx, która jest uważana prawie za grzech w programowaniu w Javie ze względu na sposób kompilowania wyrażeń RegEx i jak łatwo można wywołać SO (co rzeczywiście powoduje).
mradzinski

-1

To wyrażenie regularne działa dla mnie:

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

Zasadniczo szuka następujących elementów:

  • Todo lub TODO kluczowe opcjonalnie sufiksem id bilet / emisji w nawiasach i dowolnej ilości znaków, po jednym znaku spacji białym.
  • Wielowierszowy komentarz w języku Java rozpoczynający się od / *, po którym następuje dowolna ilość odstępów, a następnie warunki opisane w opisie czynności do wykonania w jednym wierszu powyżej. Kończy się, gdy znajdzie * / w dowolnym z poniższych wierszy.

Przykłady jednowierszowe:

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

Przykłady wielowierszowe:

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

/* TODO[SAO-13]
 * a very important message
 * another thing
*/
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.