2010-12-12 8 views
18

Eclipse JDT verfügt über eine Funktion "Aufrufhierarchie" - startet von einem Feld/einer Methode und findet rekursiv alle Referenzen.IntelliJ-Aufrufhierarchie von Feldern

IntelliJ implementiert dies auch, aber es funktioniert nur von Methoden. Bei Feldern können Sie nur "Verbräuche finden" finden. Wenn Sie also tiefer graben möchten, müssen Sie zusätzliche Suchen durchführen.

Versuchte "Datenfluss zu hier", aber es ist nicht das, wonach ich suche.

Fehle ich etwas? Gibt es eine bessere Möglichkeit, die Feldnutzung in IntelliJ zu untersuchen?

+0

Ich vermisse das eine erstaunliche Feature von Eclipse auch. Ich kann nicht sagen, dass ich in IntelliJ noch viel vermisse. –

+0

IntelliJ implementiert dies auch, aber es funktioniert nur von Methoden. Ihre Frage, wenn falsch, es funktioniert nur für Felder –

+0

Ich vermisse diese Funktion auch. Darüber hinaus könnten Sie in Eclipse ** mit Konstruktoren ** in der Hierarchiesicht erweitern, was eine sehr mächtige Funktion ist. Vermisse das sehr! – sulai

Antwort

4

IntelliJ diese Funktion nicht haben, aber es gibt eine Feature-Anfrage hier: https://youtrack.jetbrains.com/issue/IDEA-160274

Wenn Sie das Feature implementiert möchten, können Sie dort abstimmen.

+0

Wie wählen Sie? – qwertzguy

+1

Sobald du dich bei youtube eingeloggt hast und auf das Problem klickst, gibt es unten rechts einen Abstimmungslink. –

0

„Suche nach Nutzungen“ -Funktion (Alt + F7)

+2

Das Problem ist, dass "Find Usages" nicht rekursiv ist, wie Eclipse Aufrufhierarchie ist. Das macht "Find Usages" weit weniger nützlich. –

1

„Datenfluss hier“ und „Datenfluss von hier“ geben Sie eine rekursive Sicht auf die Daten fließen in, und aus, Felder (oder lokale Variablen).

Ich denke, dass diese zwei Funktionen in der Tat sind, was Sie suchen. Wenn nicht, können Sie die Frage in weniger IDE-spezifischen Begriffen umformulieren? Mit anderen Worten: Welche Informationen möchten Sie aus Ihrer Codebase extrahieren?

+0

Angenommen, ich habe ein Mitgliederfeld und möchte den gesamten Code kennen, der es berühren kann. Ich rufe die Aufrufhierarchie-Ansicht auf, die anfänglich die Methoden anzeigt, die darauf zugreifen. Dann sollte ich, ohne diese Ansicht zu verlassen, weiter in die Anrufer der einzelnen Methoden bohren können. (Um dies beherrschbar zu machen, sucht die IDE nur dann nach Zugriffsmethoden eines Knotens, wenn sie vom Benutzer erweitert wird.) –

11

Wählen Sie die gewünschte Methode aus und verwenden Sie dann das Hauptmenü "Navigieren> Aufrufhierarchie" oder einfach Strg + Alt + H.

AFAIK dies funktioniert nicht für Felder, weil wenn ich ein Feld auswählen, die Option "Navigieren> Aufrufhierarchie" ausgegraut wird. Die einzigen Ähnlichkeiten, die mir für Felder bekannt sind, sind "Bearbeiten> Suchen> Usage suchen" (Alt + F7) und "Bearbeiten> Suchen> Usage anzeigen" (Strg + Alt + F7).

+0

Es funktioniert nicht bei Feldern, und es ist ziemlich klar in der gestellten Frage. – Toilal

+0

@Toilal hat die Antwort bearbeitet, um auf Ihre Bedenken einzugehen, bitte sehen Sie nach. – machinery

+0

Danke @machinery – Toilal

0

Ich habe solche Funktion in IntelliJ nicht gefunden. Ich habe auch danach gesucht.

Pakka Pakka: Ich habe "Datenfluss zu hier" und "Datenfluss von hier" überprüft. Sie sind in diesem Fall nicht besonders nützlich. Nur der "Datenfluss von hier" zeigt die Verwendung eines Feldes, aber es unterscheidet sich von der Aufrufhierarchie, wie ich sie aus Eclipse kenne. Der "Datenfluss von hier" zeigt an, wo das angegebene Feld verwendet wird und wohin die Daten aus dem Feld fließen (wobei die Daten aus dem Feld weiter übergeben werden). Es zeigt nicht die Hierarchie des Aufrufers, d. H. Die Methoden, die die Methoden aufrufen, die das gegebene Feld verwenden.