web-dev-qa-db-fra.com

Les paramètres du constructeur IntelliJ peuvent-ils s'auto-compléter sur une "nouvelle" expression?

Si ma classe a un constructeur non vide, est-il possible de compléter automatiquement les paramètres dans l'expression new?

Avec Eclipse, si vous appuyez sur ctrl+space lorsque le curseur est entre les parenthèses:

MyClass myObject = new MyClass();

il trouvera les paramètres appropriés.

-->  MyClass myObject = new MyClass(name, value);

Quand j'utilise ctrl+shift+spacebar après le new, Intellij me montre les constructeurs, mais je ne peux pas en choisir un pour l'auto-complétion. Suis-je en train de manquer une option?

63
Loic

Dans Intellij Idea 2016.3, vous pouvez utiliser option + return. Il vous demandera si vous souhaitez introduire l'argument nommé pour l'argument sur lequel vous vous trouvez et tous les abonnés.

enter image description here

3
Filippo De Luca

Je commence habituellement par CtrlP (Parameter Info action) pour voir quels arguments sont acceptés (la supposition automatique est un moyen susceptible de provoquer des erreurs à mon avis). Et si, comme dans votre cas, vous voulez remplir name tapez n un menu déroulant apparaît avec toutes les variables/champs disponibles (etc) commençant par n Arrow Up/Down et Tab pour sélectionner un nom, ou CtrlSpace pour sélectionner une méthode (ou même CtrlAltSpace être tué par des suggestions ;-), suivi de , et v Tab pour la valeur.

105
osundblad

Eh bien, j'ai utilisé la carte de touches Eclipse où Parameter Info n'est pas assigné. Voici comment changer cela:

enter image description here

15
joecks

Eh bien, il y a la combinaison Ctrl + Maj + Espace, qui essaie de trouver un ensemble d'arguments possibles. Et si vous appuyez une deuxième fois sur Ctrl + Maj + Espace, Idea essaie de trouver des arguments qui correspondent à plusieurs appels et conversions.

Donc, dans votre exemple, Ctrl + Maj + Espace ferait presque certainement apparaître le "nom" comme suggestion. Et le prochain Ctrl + Maj + Espace ferait apparaître une "valeur" comme suggestion.

12
Gamlor

Il n'y a pas encore une telle possibilité. Comme IDEA ne remplit pas les arguments automatiquement, distinguer les constructeurs dans la recherche n'a aucun sens. Il y a une demande pour cela (http://youtrack.jetbrains.net/issue/IDEABKL-5496 ), même si je crois sincèrement qu'un tel comportement est trop dangereux et source d'erreurs.

3
Peter Gromov