365 votes

Choses possibles dans IntelliJ qu’aren ' t possible dans Eclipse ?

J'ai entendu des gens qui ont changé de toute façon et qui ne jurent que par l'un ou l'autre.

Être un grand Eclipse fan mais n'ayant pas eu le temps d'essayer IntelliJ, je suis intéressé à entendre de l'Ide, les utilisateurs qui sont des "ex-Eclipsians" certaines choses que vous pouvez faire avec l'Ide que vous ne pouvez pas faire avec Eclipse.

Remarque: Ce n'est pas une question subjective, ni à tous destinés à se transformer en une IDE de la guerre sainte. Veuillez downvote tout flamebait réponses.

185voto

Pavel Feldman Points 2140

CTRL-clic fonctionne n'importe où

CTRL-clic qui vous amène à l'endroit où cliqué objet est défini fonctionne partout - et pas seulement dans les classes Java et les variables dans le code Java, mais au Printemps de configuration (vous pouvez cliquer sur le nom de la classe, ou des biens, ou des haricots nom), en veille prolongée (vous pouvez cliquer sur le nom de la propriété ou de la classe, ou des ressources), vous pouvez naviguer à l'intérieur d'un seul clic à partir de la classe Java à l'endroit où il est utilisé comme Spring ou Hibernate bean; en cliquant sur inclus JSP ou JSTL balise fonctionne aussi, ctrl-cliquez sur la variable JavaScript ou de la fonction vous amène à l'endroit où elle est définie ou affiche un menu si il y a plus d'un endroit, notamment d'autres .fichiers js et du code JS dans le code HTML ou des fichiers JSP.

La saisie semi-automatique pour de nombreuses langues

Hibernate

La saisie semi-automatique dans HSQL expressions, dans Hibernate configuration (y compris la classe, de la propriété de base de données et les noms de colonne), dans la configuration Spring

<property name="propName" ref="<hit CTRL-SPACE>"

et il vous montrera la liste de ces grains que vous pouvez injecter dans cette propriété.

Java

Très intelligent de saisie semi-automatique dans le code Java:

interface Person {
    String getName();
    String getAddress();
    int getAge();
}
//---
Person p;
String name = p.<CTRL-SHIFT-SPACE>

et il vous montre SEULEMENT getName(), getAddress() et toString() (seulement sont-ils compatibles par type) et getName() est le premier de la liste, car il a nom plus pertinent. La dernière version 8 qui est encore en PAE a même plus intelligent de saisie semi-automatique.

interface Country{
}
interface Address {
    String getStreetAddress();
    String getZipCode();
    Country getCountry();
}
interface Person {
    String getName();
    Address getAddress();
    int getAge();
}
//--- 
Person p;
Country c = p.<CTRL-SHIFT-SPACE>

et il en silence à la saisie semi-automatique pour

Country c = p.getAddress().getCountry();

Javascript

Intelligent de saisie semi-automatique en JavaScript.

function Person(name,address) {
    this.getName = function() { return name };
    this.getAddress = function() { return address };
}

Person.prototype.hello = function() {
    return "I'm " + this.getName() + " from " + this.get<CTRL-SPACE>;
}

et il montre que les getName() et getAddress(), n'importe comment pouvez obtenir* les méthodes que vous avez dans d'autres objets JS dans votre projet, et ctrl-clic sur cette.getName() vous amène à l'endroit où celui-ci est défini, même si il ya quelques autres getName() les fonctions de votre projet.

HTML

Ai-je mentionné que la saisie semi-automatique et ctrl-cliquant dans les chemins d'accès aux fichiers, à l'instar de <script src="", <img src="", etc?

La saisie semi-automatique dans la balise HTML attributs. La saisie semi-automatique dans l'attribut style de balises HTML, les deux noms d'attributs et de valeurs. La saisie semi-automatique dans les attributs de classe.
Type <div class="<CTRL-SPACE> et il va vous montrer la liste des classes CSS définies dans votre projet. En choisir un, ctrl-cliquez dessus et vous serez redirigé vers où il est défini.

Facile propre langue higlighting

La dernière version a langage d'injection, de sorte que vous pouvez déclarer que vous avez personnalisé JSTL balise contient généralement JavaScript et il mettra en évidence JavaScript à l'intérieur.

<ui:obfuscateJavaScript>function something(){...}</ui:obfuscateJavaScript>

Indexé recherche sur l'ensemble du projet.

Vous pouvez utiliser Trouver des Usages de toute classe Java ou de la méthode et il va trouver où il est utilisé, y compris non seulement des classes Java mais Hibernate, Spring, JSP et d'autres endroits. Renommer la Méthode de refactoring renomme méthode non seulement dans les classes Java mais n'importe où, y compris dans les commentaires (il ne peut pas être sûr si la chaîne dans les commentaires est vraiment le nom de la méthode, donc il va vous demander). Et il se trouve seulement votre méthode, même s'il existe des méthodes d'une autre classe du même nom. La bonne intégration de contrôle de source (SVN ne soutien de liste de modifications? IDÉE de les soutenir pour chaque source de contrôle), la capacité à créer un patch avec vos modifications, vous pouvez donc envoyer vos modifications à d'autres membres de l'équipe sans l'avoir commis.

Amélioration de la débogueur

Quand je regarde HashMap dans le débogueur de regarder la fenêtre, je vois de vue logique - clés et des valeurs, la dernière fois que je l'ai fait dans Eclipse, il montrait des entrées de hachage et à côté des champs - je ne suis pas vraiment de débogage HashMap, je veux juste regarder le contenu.

Spring et Hibernate validation de la configuration

Il valide Spring et Hibernate configuration à droite lorsque vous la modifiez, donc je n'ai pas besoin de redémarrer le serveur pour savoir que j'ai mal orthographié le nom de classe, ou ajouté paramètre du constructeur donc mon Printemps cfg n'est pas valide.

La dernière fois que j'ai essayé, je ne pouvais pas exécuter Eclipse sous Windows XP x64.

et il vous proposera de personne.nom de la ou des personne.adresse. Ctrl-cliquez sur personne.nom et il vous conduira à getName() la méthode de la Personne de la classe.

Type Pattern.compile(""); mis \\ y, appuyez sur CTRL-ESPACE et voir conseils utiles sur ce que vous pouvez mettre dans votre expression régulière. Vous pouvez également utiliser la langue de l'injection ici - définissez votre propre méthode qui prend en paramètre de chaîne, déclarer IntelliLang boîte de dialogue options que votre paramètre est l'expression régulière - et il vous donnera la saisie semi-automatique. Inutile de dire qu'il souligne incorrecte des expressions régulières.

D'autres fonctionnalités

Il y a quelques caractéristiques qui je ne suis pas sûr sont présents dans Eclipse ou pas. Mais au moins, chaque membre de notre équipe qui utilise Eclipse, utilise également certaines fusion permettant de fusionner les modifications locales avec des changements de contrôle de code source, généralement WinMerge. Je n'ai jamais besoin de fusion dans l'IDÉE c'est assez pour moi. En 3 clics, je peux voir la liste des versions de fichier de contrôle de code source, de plus de 3 clics, je peux comparer les versions précédentes, ou précédent et actuel, et éventuellement de fusion.

Il permet de spécifier que j'ai besoin de tous .les pots à l'intérieur d' WEB-INF\lib le dossier, sans en prendre chaque fichier séparément, de sorte que lorsque quelqu'un s'engage de nouveau .jar dans le dossier, il le reprend automatiquement.

Mentionné ci-dessus est probablement 10% de ce qu'il fait. Je ne pas utiliser Maven, Flex, Swing, EJB et beaucoup d'autres choses, donc je ne peux pas dire comment il contribue avec eux. Mais il le fait.

81voto

amit Points 4092

Il y a qu’une seule raison j’utilise intellij et pas eclipse : facilité d’utilisation

Si c’est le débogage, la refactorisation, la saisie semi-automatique... IntelliJ est beaucoup plus facile à utiliser avec des combinaisons de touches compatibles, options disponibles lorsque vous regardez pour eux etc.. Long-sage, il sera difficile pour intellij rattraper avec Eclipse, car ce dernier n’a plus beaucoup de plugins disponibles qu’intellij est facilement extensible.

54voto

OscarRyz Points 82553

Sans doute n'est pas une question de ce que peut/ne peut pas être fait, mais comment.

Par exemple, les deux ont éditeur entouré avec dock panneaux pour le projet de chemin de classe, de production, de structure, etc. Mais dans l'Idée, quand j'ai commencer à taper tous ces effondrement automatiquement laissez-moi me concentrer sur le code de soi; Dans eclipse tous ces panneaux de garder ouvertes laissant mon éditeur de zone très réduite, à environ 1/5 du total de la zone visible. J'ai donc pour attraper les souris et cliquer pour réduire dans ces panneaux. Faire tout au long de la journée est très frustrant expérience dans eclipse.

L'exact opposé de chose qui se passe avec la vue de la fenêtre de sortie. Dans l'Idée de l'exécution d'un programme apporte la fenêtre de sortie/panneau de voir la sortie du programme, même si c'était perviously réduite. Dans eclipse, je dois saisir ma souris et de rechercher de nouveau l'onglet sortie et cliquez dessus pour voir mon programme de la sortie, parce que la fenêtre de sortie/panneau est tout simplement une autre, comme tout le reste de la fenêtre, mais dans l'Idée, il est traité d'une manière spéciale: "Si l'utilisateur a besoin pour exécuter son programme, est très probablement, il veut voir la sortie de ce programme!" Il semble donc naturel quand je l'écris, mais eclipse échoue dans cette interface utilisateur de base de ce concept.

Probablement il y a un raccourci pour cette dans eclipse ( masquage automatique de la fenêtre de sortie lors de l'édition et affichage automatique lorsque l'exécution du programme ) , mais aussi quelques autres dizaines de fonctionnalités le raccourci doit être chassés dans les forums, aide en ligne, etc alors que l'Idée est un peu plus "naturelles".

Ceci peut être répété pour presque toutes les fonctionnalités les deux ont, la saisie semi-automatique, retour rapide de la documentation, tout. Je pense que l'expérience de l'utilisateur est beaucoup plus agréable dans l'Idée que dans eclipse. Ensuite, la devise est vrai "Développer avec plaisir"

Eclipse gère plus rapide de plus gros projets ( +de 300 pots et +4000 classes ) et je pense que IntelliJ Idea 8 travaille sur ce sujet.

Bien entendu, tout ceci est subjectif. Comment peut-on mesurer l'expérience utilisateur?

44voto

krosenvold Points 35979

Idée 8.0 a la belle ctrl+shift+space x 2 qui effectue la saisie semi-automatique suivante :

se résout en

par le biais de n’importe quel nombre de niveaux de getters/setters.

33voto

Daniel Alexiuc Points 2304

N’oubliez pas « comparer avec le presse-papier ».

Quelque chose que j’utilise tout le temps dans IntelliJ et qui n’a aucun équivalent dans Eclipse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X