Wie kann ich den Typ eines Scala-Ausdrucks in IntelliJ anzeigen?


125

Das Eclipse-Scala-Plugin verfügt über eine nette Funktion, die Ihnen den Typ einer Variablen anzeigt, wenn Sie mit der Maus darüber fahren. Wie sehe ich die gleichen Informationen mit dem IntelliJ-Plugin?

Antworten:


128

Wählen Sie Ausdruck und geben Sie Alt+ ein =.


Wenn Sie die Verknüpfung ändern möchten, gehen Sie zu Preferences > Keymapund geben Sie "Typinfo" in das Suchfeld ein.

In älteren Versionen ist es Shift+ Ctrl+ Alt+ T.


2
Ich denke, das ist, wonach ich suche. Strg + Q funktioniert nur für Variablen, nicht für alle Ausdrücke.
Jon Freedman

Es ist nicht genau das, wonach Sie suchen. Es ist ein Schmerz im Hintern, weil Sie Ihren Cursor neu positionieren, eine 4-Tasten-Kombination verwenden und dann Ihren Cursor wieder dorthin positionieren müssen, wo er war. Aber es ist das Beste, was es gibt, und der einzige Weg, den abgeleiteten Typ einer Deklaration zu erhalten, anstatt eine Verwendung.
Luigi Plinge

67
Strg-Shift-P auf Osx in Intellij Leda
Dustin Getz

2
Wow, Tastaturkürzel ändern sich ständig. Es ist merkwürdig, dass IntelliJ mir oft unnötig Tooltips ins Gesicht wirft, aber dieser - der wirklich wichtig ist - ist schwer zu erreichen. Naja.
Akauppi

Musste hierher zurückkommen, um es wieder zu finden. IntelliJ könnte es wirklich besser machen, indem es einfacher zu erreichen / zu merken ist.
Akauppi

45

Unter OS X ist es ctrl+ shift+ Pfür mich. Dies zeigt den genauen Typ mit aufgelösten Generika.


38

STRG / Befehlstaste und bewegen Sie den Mauszeiger über die Variable oder Methode.


Die nutzlose Tastenkombination ist viel präziser. In Windows ist Alt + =. In Mac Option + =
Pushpendra Jaiswal

32

Sie können bei einer Variablen- oder Methodensignatur Ctrl+ Qdrücken, um deren Typ anzuzeigen.

Es gibt auch einen netten Trick , um Ansichtstyp eines Ausdrucks: wählen Sie den Ausdruck und die Art Ctrl+ Alt+ V. Daraufhin wird das Dialogfeld " Variable extrahieren" mit dem zu extrahierenden Ausdruckstyp angezeigt.


Es sieht so aus, als ob Strg + Q die parametrisierten Typen in der neuesten Plugin-Version auflöst
Jon Freedman

22

Sie können IntelliJ so etwas wie eine Sonnenfinsternis einrichten. Gehe zu:

File -> Settings -> Languages & Frameworks -> Scala

und aktivieren Sie dann "Typinformationen beim Bewegen der Maus nach, ms anzeigen" und legen Sie Ihr bevorzugtes Zeitlimit fest.

Dies funktioniert gut, außer dass andere Nachrichten bevorzugt zu sein scheinen. Am häufigsten wird "Deklaration wird nie verwendet" verwendet. Dies ist häufig der valFall, wenn Sie gerade eine geschrieben haben und deren Typ sehen möchten. Dann müssen Sie auf ( Alt+ =) für PC oder ( Ctrl+ Shift+ P) für Mac zurückgreifen.


1
Eigentlich sollte dies die richtige Antwort sein, da @JonFreedman das gleiche Verhalten wie in Eclipse haben möchte. Die anderen Antworten geben nur Abkürzungen, um dasselbe zu erreichen, was länger dauert, als nur die Maus über die Variable zu
bewegen

19

In IntelliJ 2016 und höher mit Mac OS X 10.5+Tastenkombinationen ist die Tastenkombination Ctrl+ + P.

Alte Antwort:

Unter MacOS mit Mac OS X 10.5+Tastenkombinationen soll es + sein= , aber das scheint (für mich) überhaupt nicht zu funktionieren.

In den Einstellungen ( Preferences > Keymapund geben Sie "Typinfo" in das Suchfeld ein) habe ich der Aktion die Verknüpfung Ctrl+ + hinzugefügt T. Diese Verknüpfung funktioniert gut.


2
Noch ein Tipp: Um einen Ausdruck einfach auszuwählen, drücken Sie ⎇ ↑ oder ⎇ ↓, um Ihre Auswahl zu vergrößern oder zu verkleinern.
Erik van Oosten

1
+1 OSX 10.7.4, Intellij CE 11.1. cmd- = war gebunden, funktionierte aber nicht, und die Bindung an etwas anderes funktionierte.
Dustin Getz

1
IntelliJ 14, OS X Yosemite: - Ausdrucksbewertungstyp: CTRL + Shift + P- Einzelwerttyp (bietet weitere Details):CTRL + J
Raul

3

Halten Sie die Befehlstaste gedrückt, während Sie mit der Maus darüber fahren. Hinweis: Ich habe dies unter Mac OS X mit Standard-Tastenkombinationen getestet. Unterschiedliche Betriebssysteme oder nicht standardmäßige Tastenkombinationen können natürlich unterschiedlich sein, aber die Funktionalität ist sicherlich vorhanden.


1
Ich erhalte das Skaladoc der zugrunde liegenden Klasse, wenn ich Shift und Mouseover gedrückt halte, aber dies zeigt nicht die vollständigen Typinformationen an, z. B. val test = Seq(1,2)zeigt Typinformationen für Seq [+ A], nicht Seq [Int]
Jon Freedman,

1

Hier gibt es gute Tipps, aber da die Zuordnungen von den Tastaturbindungen abhängen, finden Sie hier eine Zusammenfassung der Mac OS X 10.5+Bindungen.

  • ctrl + hover: Zeigt den Typ des Ausdrucks an

  • alt + Hover: Durch Klicken auf den Ausdruck wird dessen Wert überprüft (sehr praktisch!)

  • + hover funktioniert wie ctrl+ hover, ermöglicht aber auch das Klicken auf den Link, um zu anderen Referenzen des Ausdrucks zu gelangen (Strg + Klick funktioniert offensichtlich nicht, da dies in OS X als Rechtsklick angesehen wird).

Hinweis: Die Mac OS X 10.5+Bindungen sind in IntelliJ 13.1 immer noch nicht die Standardeinstellungen, sollten es aber wirklich sein. Sie haben ein nativeres OS X-Feeling als die alten Mac OS XBindungen. Sie können sie über Preferences > "keyboard"(im Suchfeld)> aktivierenKeymap > Keymaps: Mac OS X 10.5+

Das eigentliche Usability-Problem bei diesen (ab IntelliJ 13.1) besteht darin, dass man die Taste gedrückt halten und dann den Cursor bewegen muss. Es sollte idealerweise auch funktionieren, wenn Sie den Cursor bereits auf dem Ausdruck haben und dann Strg / Alt / cmd gedrückt halten. Ich werde sie darum bitten.

ps. Ich weiß, dass es offiziell OS X ist, nicht Mac OS X. IntelliJ IDEA verwendet immer noch die alte Benennung, zumindest für die Tastenkappen.


1

Verwenden Sie unter OS X ctrl+ Jfür eine Variable, Funktion oder Signatur, um die vollständige Definition, den Typ und die Parameter abzurufen. Verwenden Sie ctrl+ shift+ Pfür den ausgewerteten Typ (dies funktioniert auch bei hervorgehobenen Codeblöcken oder Ausdrücken).


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.