2010-05-13 7 views
47

Existe-t-il un moyen plus simple de réorganiser les méthodes dans un fichier source de classe que de couper et coller le code manuellement? De nos jours j'ai souvent besoin de cela tout en refactant le code hérité, par ex. pour déplacer les méthodes proches les unes des autres dans le code source.Un moyen simple de réorganiser les méthodes d'une classe Java dans IntelliJ?

Dans Eclipse AFAIK, il existe une vue similaire à la vue Structure d'IntelliJ, dans laquelle je peux glisser et déposer des méthodes. Cependant, cela ne fonctionne pas dans IntelliJ et je n'ai pas pu trouver d'indices de son aide non plus. J'utilise IntelliJ 9.0.2 pour être spécifique.

+0

Je pense que la meilleure solution serait un outil de formatage qui commande vos méthodes automatiquement. Prose: Les méthodes doivent être des ordres dans la façon dont ils sont appelés. Juste comme vous liriez un article dans un journal. – Chris311

Répondre

71

Vous pouvez sélectionner un nom de méthode et appuyez sur: Ctrl +Maj +Up ou Ctrl +Maj +vers le bas pour le déplacer vers le haut et vers le bas.

Sur OS X: Cmd + Maj + Up ou Cmd + Maj + vers le bas

Au-delà de la Rearranger Plugin vous permet de déplacer des méthodes autour rapidement, et même définir un commande standard basée sur votre convention de codage.

+0

n'est pas là quelque chose à réorganiser par ordre alphabétique par exemple? –

+0

Le lien est mort, cela semble être le bon: http://java.net/projects/rearranger – stian

+0

@stian - J'ai modifié le post pour pointer vers la page du plugin sur le site de JetBrains, depuis le lien vous posté ne semble pas avoir de téléchargements disponibles – adrian

2

Sélectionnez un bloc de texte (appuyez plusieurs fois sur Ctrl-W), puis utilisez les touches Ctrl-Maj-Haut et Ctrl-Maj-Bas pour le déplacer.

7

Avec votre curseur sur la ligne de définition de la méthode (vous n'avez pas et appuyez sur ctrl + changement + jusqu'à ou ctrl + changement + vers le bas, de se déplacer vers le haut ou vers le bas, respectivement .

Vous pouvez également ctrl +changement + numberpad - pour replier rapidement tout afin que vous puissiez vous concentrer sur le déplacement autour (plaine - fonctionne sur mon ordinateur portable aussi bien, ne sais pas pourquoi) et ctrl +changement + + numberpad pour revenir à tout voir (ctrl shift-equal fonctionne aussi sur mon ordinateur portable).

6

Pas une réponse parfaite encore, en raison d'un bug dans IntelliJ.

Bien que IntelliJ offre implicitement cette fonctionnalité, elle doit être activée et corrigée. La méthode suggérée par l'OP consiste à organiser les méthodes en profondeur, en premier ordre. Cependant, si vous utilisez la commande de premier ordre (qui fonctionne correctement), cela devrait réduire considérablement le travail manuel de déplacement des fonctions, en regroupant toutes les méthodes d'appel et d'appel.

Lien de sortie: https://youtrack.jetbrains.com/issue/IDEA-149524. S'il vous plaît, votez pour sa résolution.

IntellijRearrangeMethodsInDFO

L'action appropriée pour ce code est Réorganiser. Aucune touche ne lui est assignée, mais vous pouvez définir la vôtre en utilisant Préférences-> Keymap.

RearrangeActionMenuButton

enter image description here

4

IntelliJ a construit dans le système qui vous permet de spécifier comment commander vos méthodes. Vous devez aller à Paramètres (Ctrl + Alt + S) -> Éditeur -> Style de code -> Java -> Arrangement (onglet) et faites défiler jusqu'à ce que vous trouviez les icônes avec methods. Là vous pouvez manipuler les options pour les classer par visibilité, ou par ordre alphabétique, ou pour garder celles qui sont liées ensemble. Voici une capture d'écran de mes paramètres qui permet de commander automatiquement les méthodes par visibilité (publique, protégée, privée) et alphabétiquement (a-z). Les surbrillances bleues indiquent les règles actuellement sélectionnées.

enter image description here

Questions connexes