it-swarm.com.de

Mögliche Dinge in IntelliJ, die in Eclipse nicht möglich sind?

Ich habe von Leuten gehört, die in die eine oder andere Richtung gewechselt haben und auf die eine oder andere schwören.

Da ich ein großer Eclipse-Fan bin, aber keine Zeit hatte, IntelliJ auszuprobieren, bin ich daran interessiert, von IntelliJ-Benutzern zu hören, die "Ex-Eclipsianer" sind, einige spezifische Dinge, die Sie mit IntelliJ tun können, die Sie mit Eclipse nicht tun können.

Anmerkung: Dies ist weder eine subjektive Frage noch beabsichtigt, sich in einen IDE heiligen Krieg zu verwandeln. Bitte stimmen Sie alle Flammenkampf-Antworten ab .

366
Epaga

STRG-Klick funktioniert überall

STRG-Klick, der Sie dahin bringt, wo das angeklickte Objekt definiert ist, funktioniert überall - nicht nur in Java Klassen und Variablen im Java Code, sondern in der Spring-Konfiguration (Sie) Klicken Sie im Ruhezustand auf den Klassennamen oder die Eigenschaft oder den Bean-Namen. Klicken Sie auf den Eigenschaftennamen oder die Klasse oder die enthaltene Ressource. Navigieren Sie mit einem Klick von Java class zu Wenn es als Spring- oder Hibernate-Bean verwendet wird und Sie auch auf das enthaltene JSP- oder JSTL-Tag klicken, können Sie mit gedrückter Strg-Taste auf die JavaScript-Variable oder -Funktion zu der definierten Stelle gelangen oder ein Menü anzeigen, wenn es mehrere Stellen gibt, einschließlich anderer .js-Dateien und JS-Code in HTML- oder JSP-Dateien.

Autovervollständigen für viele Sprachen

Hibernate

Automatische Vervollständigung in HSQL-Ausdrücken, in der Ruhezustand-Konfiguration (einschließlich Klassen-, Eigenschafts- und DB-Spaltennamen), in der Spring-Konfiguration

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

und es zeigt Ihnen eine Liste der Bohnen, die Sie in diese Eigenschaft injizieren können.

Java

Sehr intelligente automatische Vervollständigung in Java Code:

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

und es zeigt Ihnen NUR getName (), getAddress () und toString () (nur sie sind nach Typ kompatibel) und getName () steht an erster Stelle in der Liste, da der Name relevanter ist. Die neueste Version 8, die noch in EAP enthalten ist, verfügt über eine noch intelligentere automatische Vervollständigung.

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>

und es wird automatisch vervollständigt

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

Javascript

Intelligente automatische Vervollständigung in 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>;
}

und es wird NUR getName () und getAddress () angezeigt, unabhängig davon, wie viele * Methoden Sie in anderen JS-Objekten in Ihrem Projekt haben, und klicken Sie bei gedrückter Strg-Taste auf - this.getName () bringt Sie zu dem Punkt, an dem dieser definiert ist, auch wenn Ihr Projekt einige andere getName () - Funktionen enthält.

HTML

Habe ich Autocomplete und Strg-Klick in Pfaden zu Dateien erwähnt, wie <script src = "", <img src = "", etc?

Automatische Vervollständigung von HTML-Tag-Attributen. Autovervollständigen im Stilattribut von HTML-Tags, sowohl Attributnamen als auch Werte. Autovervollständigen auch in Klassenattributen.
Geben Sie <div class = "<STRG-LEERTASTE> ein, und es wird eine Liste der in Ihrem Projekt definierten CSS-Klassen angezeigt. Wählen Sie eine aus, und klicken Sie bei gedrückter Strg-Taste darauf. Sie werden dorthin weitergeleitet, wo sie definiert ist.

Einfaches Hervorheben der eigenen Sprache

Die neueste Version verfügt über eine Spracheinspeisung, sodass Sie angeben können, dass Ihr benutzerdefiniertes JSTL-Tag normalerweise JavaScript enthält und JavaScript darin hervorhebt.

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

Indizierte Suche über das gesamte Projekt.

Sie können Find Usages für jede Java Klasse oder Methode verwenden, und es wird ermittelt, wo es verwendet wird, einschließlich nicht nur Java Klassen, sondern auch Hibernate, Spring, JSP und andere Stellen. Rename Method Refactoring benennt Methode nicht nur in Java Klassen, sondern überall mit Kommentaren (es kann nicht sicher sein, ob String in Kommentaren wirklich Methodenname ist, so wird es fragen). Und es wird nur finden Ihre Methode, auch wenn es Methoden einer anderen Klasse mit demselben Namen gibt. Gute Quellcodeverwaltungsintegration (unterstützt SVN Änderungslisten? IDEA unterstützt sie für jede Quellcodeverwaltung)), Möglichkeit, einen Patch mit Ihren Änderungen zu erstellen So können Sie Ihre Änderungen an andere Teammitglieder senden, ohne sie zu bestätigen.

Verbesserter Debugger

Wenn ich mir HashMap im Überwachungsfenster des Debuggers ansehe, sehe ich die logische Ansicht - Schlüssel und Werte, das letzte Mal, als ich es in Eclipse gemacht habe, wurden Einträge mit Hash und den nächsten Feldern angezeigt - ich debugge nicht wirklich - HashMap, ich möchte nur den Inhalt anschauen.

Überprüfung der Spring & Hibernate-Konfiguration

Es überprüft die Spring- und Hibernate-Konfiguration direkt beim Bearbeiten, sodass ich den Server nicht neu starten muss, um zu wissen, dass ich den Klassennamen falsch geschrieben oder einen Konstruktorparameter hinzugefügt habe, sodass meine Spring-CFG ungültig ist.

Das letzte Mal, als ich es versuchte, konnte ich Eclipse unter Windows nicht ausführen XP x64.

und es wird vorschlagen, dass Sie person.name oder person.address. Klicken Sie bei gedrückter Strg-Taste auf person.name, um zur getName () -Methode der Person -Klasse zu navigieren.

Geben Sie Pattern.compile(""); put \\ ein, drücken Sie STRG-LEERTASTE und sehen Sie hilfreiche Hinweise, was Sie in Ihren regulären Ausdruck einfügen können. Sie können hier auch die Spracheinspeisung verwenden. Definieren Sie Ihre eigene Methode, die Zeichenfolgenparameter verwendet, und deklarieren Sie im IntelliLang-Optionsdialog, dass Ihr Parameter ein regulärer Ausdruck ist. Außerdem werden Sie dort automatisch vervollständigt. Unnötig zu erwähnen, dass hier falsche reguläre Ausdrücke hervorgehoben werden.

Andere Eigenschaften

Es gibt nur wenige Funktionen, von denen ich nicht sicher bin, ob sie in Eclipse vorhanden sind oder nicht. Zumindest jedes Mitglied unseres Teams, das Eclipse verwendet, verwendet jedoch auch ein Tool zum Zusammenführen, um lokale Änderungen mit Änderungen aus der Quellcodeverwaltung zusammenzuführen, normalerweise WinMerge. Ich brauche es nie - das Zusammenführen in IDEA ist genug für mich. Mit 3 Klicks kann ich eine Liste der Dateiversionen in der Quellcodeverwaltung sehen, mit 3 weiteren Klicks kann ich frühere Versionen oder frühere und aktuelle vergleichen ein und möglicherweise zusammenführen.

Sie können festlegen, dass ich alle .jars im Ordner WEB-INF\lib Benötige, ohne jede Datei einzeln auszuwählen. Wenn also jemand eine neue .jar-Datei in diesen Ordner schreibt, wird sie automatisch abgerufen.

Oben erwähnt ist wahrscheinlich 10% von dem, was es tut. Ich benutze nicht Maven, Flex, Swing, EJB und viele andere Sachen, deshalb kann ich nicht sagen, wie es bei ihnen hilft. Aber es tut.

185
Pavel Feldman

Es gibt nur einen Grund, warum ich Intellij und nicht Eclipse benutze: sability

Unabhängig davon, ob es sich um Debugging, Refactoring oder automatische Vervollständigung handelt. Intellij ist mit konsistenten Tastenkombinationen, verfügbaren Optionen, wo immer Sie danach suchen, viel einfacher zu verwenden Letzteres verfügt über viel mehr Plugins als Intellij und ist leicht erweiterbar.

81
amit

Wahrscheinlich ist es nicht eine Frage von was kann/kann nicht getan werden, aber wie.

Zum Beispiel haben beide Editoren Dock-Panels für Projekt, Klassenpfad, Ausgabe, Struktur usw. Aber in Idea, wenn ich mit der Eingabe beginne, kann ich mich automatisch auf den Code selbst konzentrieren. In Eclipse bleiben alle diese Bedienfelder geöffnet, sodass mein Editorbereich sehr reduziert ist, etwa 1/5 des gesamten sichtbaren Bereichs. Also muss ich die Maus greifen und klicken, um in diesen Bereichen zu minimieren. Dies den ganzen Tag zu tun ist eine sehr frustrierende Erfahrung in Eclipse.

Das genaue Gegenteil passiert mit dem Ausgabefenster der Ansicht. Bei der Ausführung eines Programms in Idea wird im Ausgabefenster/-fenster die Ausgabe des Programms angezeigt, auch wenn es zuvor minimiert wurde. In Eclipse muss ich erneut mit der Maus nach der Registerkarte "Ausgabe" suchen und darauf klicken, um die Programmausgabe anzuzeigen, da das Ausgabefenster/Bedienfeld wie alle anderen Fenster nur ein anderes ist, in Idea jedoch behandelt wird Ein besonderer Weg: "Wenn der Benutzer sein Programm ausführen möchte, möchte er höchstwahrscheinlich die Ausgabe dieses Programms sehen!" Es scheint so natürlich, wenn ich es schreibe, aber Eclipse versagt in diesem grundlegenden Konzept der Benutzeroberfläche.

Wahrscheinlich gibt es in Eclipse eine Verknüpfung dazu (Ausgabefenster beim Bearbeiten automatisch ausblenden und beim Ausführen des Programms automatisch anzeigen), aber wie einige andere Dutzend Funktionen muss die Verknüpfung in Foren, in der Online-Hilfe usw. gesucht werden, während in Idea etwas mehr vorhanden ist. " natürlich".

Dies kann für fast alle Funktionen wiederholt werden, die beide enthalten: automatische Vervollständigung, Zeilenumbruch, schnelle Dokumentationsansicht und alles. Ich denke, die Benutzererfahrung ist in Idea viel angenehmer als in Eclipse. Dann wird das Motto "Mit Freude entwickeln" wahr

Eclipse bearbeitet größere Projekte schneller (+300 Gläser und +4000 Klassen), und ich denke, IntelliJ Idea 8 arbeitet daran.

All dies ist natürlich subjektiv. Wie können wir die Benutzererfahrung messen?

54
OscarRyz

Idee 8.0 hat das Schöne ctrl+shift+space x 2, das die folgende automatische Vervollständigung ausführt:

 City city = customer.<ctrl-shift-space twice>

beschließt zu

 City city = customer.getAddress().getCity();

durch eine beliebige Anzahl von Ebenen von Gettern/Setzern.

45
krosenvold

Vergiss nicht "Vergleiche mit der Zwischenablage".

Etwas, das ich die ganze Zeit in IntelliJ verwende und das in Eclipse nichts Vergleichbares hat.

33
Daniel Alexiuc

Meine Lieblingsverknüpfung in IntelliJ, die in Eclipse keine Entsprechung hat (die ich gefunden habe), heißt "Gehe zum Symbol". CTRL-ALT-SHIFT-N Mit dieser Option können Sie Klassen, Methodennamen, Variablennamen usw. aus dem gesamten Projekt eingeben und globalisieren.

31
Paul Morie

Ich habe versucht, wegen des neuen Android Studio) zu IntelliJ zu wechseln. Aber jetzt bin ich sehr enttäuscht. Ich verwende Eclipse mit dem Code Recommanders Plugin Ein einfaches Beispiel, warum Eclipse so großartig ist:

Ich möchte ein neues SimpleTimeZone erstellen. SimpleTimeZone hat keinen Konstruktor mit Nullargumenten.

Ctrl + Space in Eclipse

enter image description here

Ctrl + Space in IntelliJ

enter image description here

In IntelliJ bekomme ich keine Informationen darüber, welche Art von Konstruktoren SimpleTimeZone hat.

Nach Enter in Eclipse

enter image description here

Ich bekomme den zuvor ausgewählten Konstruktor mit vordefinierten Variablennamen gefüllt. Und ich kann die Art jedes Arguments sehen. Mit Code Recommanders errät Eclipse den richtigen Konstruktor anhand der zuvor definierten Variablentypen im aktuellen Bereich und füllt den Konstruktor mit diesen Variablen.

Nach Enter in IntelliJ passiert nichts. Ich bekomme einen leeren Konstruktor. Ich muss drücken Ctrl + P die erwarteten Argumente zu sehen.

enter image description here

27
passsy

Wenn Sie den Cursor auf eine Methode haben, dann CTRL+SHIFT+I wird die Methodenimplementierung öffnen. Wenn die Methode eine interface -Methode ist, können Sie mit den Aufwärts- und Abwärtspfeilen durch die Implementierungen blättern:

Map<String, Integer> m = ...
m.contains|Key("Wibble");

Wo | ist (zum Beispiel), wo sich Ihr Cursor befindet.

25
oxbow_lakes

IntelliJ hat einige ziemlich fortgeschrittene Code-Inspektionen (vergleichbar, aber anders als FindBugs).

Obwohl ich bei der Verwendung von IntelliJ ein FindBugs-Plugin sehr vermisse (Die Eclipse/FindBugs-Integration ist ziemlich cool).

Here ist eine offizielle Liste der von IntelliJ unterstützten CodeInspections

EDIT: Schließlich gibt es ein findbugs-plugin für IntelliJ. Es ist noch ein bisschen Beta, aber die Kombination aus Code Inspections und FindBugs ist einfach fantastisch!

24
Mo.

Weit, weit, weit mehr Refactorings.

16
Tom

Es gibt viele Dinge, die die Idee viel einfacher löst, oder es gibt keine Entsprechung:

  • Autocomplete-Aktionen: Ausführen ctrl+shift+a Sie können jede Ideenaktion über die Tastatur aufrufen, ohne sich an die Tastenkombination zu erinnern ... Denken Sie an Gnome-Do oder Launchy in Windows, und Sie haben die Idee! Diese Funktion unterstützt auch CamelCasing-Abkürzungen;)

  • Regal: Ermöglicht es Ihnen, einige Codeteile einfach auseinander zu halten und sie dann über den Diff-Viewer zu überprüfen.

  • Lokale Geschichte: Es ist viel besser verwaltet und einfacher.

  • SVN-Anmerkungen und -Verlauf: Einfacher zu überprüfen, und Sie können den Verlauf auch problemlos nur für einen solchen Teil einer gesamten Quelldatei anzeigen.

  • Überall automatische Vervollständigung, z. B. Fenster für Auswertungsausdrücke und Haltepunktbedingungen.

  • Maven-Integration ... viel, viel einfacher und gut integriert.

  • Refaktoren, die sich viel näher an der Hand befinden, z. B. das Einfügen von Loops, das Umschließen/Casting, das Umbenennen und das Hinzufügen von Variablen.

  • Finden Sie viel mächtiger und gut organisiert. Auch bei großen Projekten

  • Sehr stabil, um mit mehreren Zweigen eines großen Projekts gleichzeitig zu arbeiten (da ein früherer Bugfixer von 1,5 Gb durch Zweigquellen und die Notwendigkeit, in ihnen gleichzeitig zu arbeiten, seine grundsoliden Fähigkeiten unter Beweis stellten)

  • Sauberere und einfachere Oberfläche ...

  • Und es ist einfacher, es nur mit der Tastatur zu bedienen, da es nicht mehr erforderlich ist, die Maus für viele einfache Aufgaben zu verwenden. So sparen Sie Zeit und können sich mehr auf den Code konzentrieren ... wo es darauf ankommt!

Und jetzt, da wir Open Source sind, wird die Benutzerbasis von Idea exponentiell wachsen.

15
Serginho

Eine Sache, die ich regelmäßig benutze, ist, einen Haltepunkt zu setzen, aber dann zu steuern, was er tut. (Bei meinem letzten Job haben die meisten anderen Eclipse verwendet ... Ich erinnere mich, dass ich überrascht war, dass niemand in Eclipse eine Anleitung dazu finden konnte.)

Beispielsweise kann der Haltepunkt nicht tatsächlich angehalten werden, sondern nur eine Meldung an die Konsole protokollieren. Das heißt, ich muss meinen Code nicht mit "System.out.println (...)" verunreinigen und dann neu kompilieren.

15
jgindin

Strukturelles Suchen und Ersetzen.

Suchen Sie beispielsweise nach:

  System.out.println($string$ + $expr$);

Wobei $ string $ ein Literal ist und $ expr $ ein Ausdruck vom Typ my.package.and.Class ist, und dann ersetzen durch:

  $expr$.inspect($string$);
14
Darron

Mein Timing mag in Bezug auf diesen Thread ein wenig abweichen, aber ich musste nur antworten.

Ich bin ein großer Eclipse-Fan - und benutze es seit seinem ersten Auftritt. Ein Freund sagte mir damals (vor über 10 Jahren), dass es ein Spieler sein würde. Er hatte recht.

Jedoch! Ich habe gerade mit der Verwendung von IntelliJ begonnen und wenn Sie es noch nicht gesehen oder verwendet haben änderungslisten - Sie verpassen die Möglichkeit, den Himmel zu programmieren.

Die Möglichkeit, meine geänderten Dateien (in meinem Entwicklungszweig, beispielsweise in Clearcase) zu verfolgen, suchte ich in einem Plugin für Eclipse. Intellij protokolliert alle Ihre Änderungen mit einem einzigen Commit - ganz einfach. Sie können geänderte Dateien mit benutzerdefinierten Listen isolieren. Ich verwende das für Konfigurationsdateien, die lokal eindeutig sein müssen, aber beim Synchronisieren oder Vergleichen mit dem Repository ständig gekennzeichnet sind. Wenn ich sie in einer Änderungsliste aufführe, kann ich sie überwachen, aber ordentlich verstauen, damit ich mich auf die tatsächlichen Ergänzungen konzentrieren kann Ich mache.

Es gibt auch ein Commit Log-Plugin, das einen Text aller Änderungen für diejenigen SCCS ausgibt, die nicht in Ihre Bug-Tracking-Software integriert sind. Durch Einfügen des Protokolls in den Arbeitsverlauf eines Tickets werden die Dateien, ihre Version, Datum/Uhrzeit und der Zweig/die Tags erfasst. Es ist verdammt cool.

All dies könnte über Plugins (oder zukünftige Erweiterungen) in Eclipse unterstützt werden. dennoch macht Intellij dies zu einem Kinderspiel.

Schließlich freue ich mich sehr über die große Liebe zu diesem Produkt - die Tastenanschläge, also ist es schmerzhaft, aber lustig.

13
G Craig

Der IntelliJ-Debugger verfügt über eine sehr praktische Funktion namens "Ausdruck auswerten", die weitaus besser ist als die von Eclipses. Es hat volle Code-Vervollständigung und ich halte es für "nützlicher".

12
Mo.

Für mich sind es tausend kleine Dinge. Einige der Makros, das GUI-Layout im Allgemeinen in Eclipse finde ich schrecklich. Ich kann in Eclipse nicht mehrere Projekte in verschiedenen Fenstern öffnen. Ich kann mehrere Projekte öffnen, aber dann wechselt das ansichtsbasierte System eine Reihe von Dingen auf mich, wenn ich Dateien wechsle. Die Code-Inspektionen von IntelliJ scheinen besser zu sein. Die Popup-Hilfsprogramme zur Behebung häufiger Probleme sind Nice. Viele einfache Usability-Dinge wie die Seitenleiste, in der ich über einen Hotspot schweben kann, und die mir jede implementierende Unterklasse einer Methode oder die Methode, die ich implementiere, und von wo aus.

Wann immer ich Eclipse verwenden musste oder jemanden dabei zuschauen musste, scheint es, als könnten sie die meisten Dinge tun, die ich in IntelliJ tun kann, aber es dauert länger und es ist klüger.

11
Chris Kessel

Variable einführen. (Ctrl+Alt+V unter Windows Cmd+Alt+V unter OSX)

Nehmen wir an, Sie rufen eine Methode auf, service.listAllPersons() Hit Ctrl+Alt+V und Enter, und die Variable für den Rückgabewert des Methodenaufrufs wird eingefügt:

List<Person> list = service.listAllPersons();

Spart Ihnen die Eingabe und Sie müssen den Rückgabetyp der aufgerufenen Methode nicht überprüfen. Besonders nützlich bei der Verwendung von Generika, z.

new ArrayList<String>()

[Variable einführen]

ArrayList<String> stringArrayList = new ArrayList<String>();

(Natürlich können Sie den Namen der Variablen leicht ändern, bevor Sie sie treffen Enter)

9
rlovtang

IntelliJ bietet Unterstützung für Intellisense und Refactoring vom Code in JSPX-Dokumente.

8
krosenvold

Für mich ist es die unübertroffene Unterstützung von IDEA, insbesondere in Version 9. Die direkte Synchronisierung des Projekts mit dem Maven-Modell ist einfach fantastisch und macht die Entwicklung angenehm.

7
mdma

Intellij hat ein weit überlegenes SVN-Plug-In als Subversive oder Subclipse und es funktioniert! Die Zeit, die wir für das Zusammenführen von Quelldateien mit Eclipse aufgewendet haben, ist nicht zu überlegen. Dies ist bei IntelliJ kein Problem, da das Plugin Ihnen viel mehr hilft.

Auch das Subclipse-Plugin ist unzuverlässig - wir haben regelmäßig Fälle, in denen das Plugin glaubt, dass kein Code von anderen Entwicklern in SVN eingecheckt wurde, aber es hat - der CI-Server hat sie verarbeitet!

6
Tony Ruddock

Einer der guten Punkte ist meiner Meinung nach die Abhängigkeitsstrukturmatrix : http://www.jetbrains.com/idea/features/ dependency_analysis.html # link

Die Website von Lattix (ein eigenständiges Produkt) bietet eine gute Einführung in die Verwendung und die Vorteile von DSM: http://www.lattix.com/files/dl/slides/s.php?directory=4tour

4
Herrmann

[~ # ~] vim [~ # ~] Emulator. Dieses Plugin bietet nahezu vollständige vi/vim/gvim-Emulation beim Bearbeiten von Dateien in IDEA. Die folgenden Funktionen werden unterstützt:

  • Bewegungstasten
  • Löschen/Ändern
  • Einfügemodus-Befehle
  • Marks
  • Register
  • VIM rückgängig machen/wiederholen
  • Befehle für den visuellen Modus
  • Einige Ex-Befehle
  • Einige: Optionen einstellen
  • Voll VIM reguläre Ausdrücke zum Suchen und Suchen/Ersetzen
  • Makros
  • Absätze
  • Befehlszeilenverlauf
  • Suchverlauf
  • Jumplists
  • VIM-Hilfe

einige Kommentare zu diesem Plugin von http://plugins.jetbrains.net/plugin/?id=164

4
Maciek Kreft

Ein paar andere Dinge:

  • propagieren von Parametern/Ausnahmen beim Ändern der Methodensignatur. Sehr praktisch zum Aktualisieren von Methoden tief im Aufrufstapel
  • SQL-Code-Validierung in den Zeichenfolgen, die als Argumente für JDBC-Aufrufe übergeben wurden (und das gesamte neu gebündelte Programm zur Spracheinspeisung)
  • in Icons für Interfaces & Klassen (und deren Methoden) und die smarte Implementierungsnavigation (Strg + Alt + Klick oder Strg + Alt + B) implementiert/überschrieben
  • verknüpfung zwischen den EJB 2.1-Schnittstellen und Bean-Klassen (einschließlich Refactoring-Unterstützung); alt, aber immer noch sehr wertvoll, wenn an älteren Projekten gearbeitet wird
3
Andrei

Zwei Dinge, die IntelliJ gegenüber Eclipse macht, sind für mich sehr wertvoll:

Methodentrennzeichen: Diese schwachen grauen Linien zwischen den Methoden machen den Code viel besser lesbar

Text-Anti-Aliasing: Lässt Code in der IDE so gut aussehen

2
yalestar

Präambel zu meiner Antwort: Meine Verwendung von Eclipse ist begrenzt. Wir brauchten ein Java IDE), um auf Windows und Mac zu arbeiten, und der Mac-Port wurde von Tag zu Tag langsamer. Das war vor Jahren und ich bin sicher, dass es das ist OK, aber genau das hat uns veranlasst, zu IntelliJ zu wechseln, und wir waren damit zufrieden.

Nun zu meiner Antwort: Ein großer Unterschied, den ich noch nicht gesehen habe, ist, dass der technische Support mit IntelliJ/Jet Brains besser ist. Wir senden eine E-Mail an JetBrains und erhalten in weniger als einer Stunde eine endgültige Antwort. Wenn Sie nach Antworten auf Eclipse-Probleme suchen, erhalten Sie die üblichen Antworten "Sie dummer Idiot" (in der Regel eine kleine Anzahl von Antworten) sowie eine viel größere Anzahl aufschlussreicher, hilfreicher Antworten. Um die richtige Antwort zu erhalten, ist jedoch eine gewisse Umstrukturierung erforderlich.

2
Jim Dodd

Zuallererst liebe ich intellij. Es gibt mindestens hundert Funktionen, die Eclipse fehlt. Ich spreche von Größenordnungen besserer Zuverlässigkeit und Intelligenz, die keine Übertreibung beschreiben kann, wenn es um das Umgestalten, Umbenennen, Bewegen und andere Dinge geht, die bereits erwähnt wurden.

ABER es gibt eine Sache, die Intellij nicht zulässt, was Eclipse tut. Es ist nicht möglich, mehrere Projekte gleichzeitig unter derselben VM auszuführen.

Wenn Sie separate Projekte für Front, Middle, Core, Agents usw. haben, bei denen alle miteinander interagieren müssen, können Sie nicht schnell Änderungen und Debugs gleichzeitig durchführen. Die einzige Möglichkeit, mit der ich derzeit zurechtkomme, besteht darin, Ant-Skripte zu verwenden, um Jars in abhängigen Projekten bereitzustellen und zu aktualisieren, oder Maven zu verwenden.

Eclipse ermöglicht das Debuggen mehrerer Projekte unter einer ide vm-Instanz.

2
blicket

Eine sehr nützliche Funktion ist die Möglichkeit, ein Maven-Reaktorprojekt teilweise so zu erstellen, dass nur die Teile enthalten sind, die Sie benötigen.

Um dies ein wenig klarer zu machen, betrachten Sie den Fall einer Sammlung von WAR-Dateien mit vielen gemeinsamen Ressourcen (z. B. JavaScript, Spring-Konfigurationsdateien usw.), die mithilfe der Überlagerungstechnik zwischen ihnen geteilt werden. Wenn Sie an einer Webseite arbeiten (die in Jetty ausgeführt wird) und einen Teil des Overlay-Codes ändern möchten, der in einem separaten Modul gespeichert ist, müssen Sie normalerweise Jetty stoppen, den Maven-Build ausführen, Jetty erneut starten und fortsetzen. Dies ist der Fall bei Eclipse und bei nahezu jedem anderen IDE, mit dem ich gearbeitet habe. Nicht so bei IntelliJ. In den Projekteinstellungen können Sie festlegen, welche Facette welches Moduls in einen Hintergrundbuild einbezogen werden soll. Folglich endet der Prozess nahtlos. Sie ändern so ziemlich jeden Code im Projekt, und der Code ist sofort verfügbar, nachdem Sie den Browser aktualisiert haben.

Sehr ordentlich und sehr schnell.

Ich könnte mir nicht vorstellen, ein Frontend in so etwas wie YUI-Backing auf DWR/SpringMVC zu programmieren.

2
Gary Rowe

Datenflussanalyse : Interprozedurale Rückwärtsflussanalyse und Vorwärtsflussanalyse, wie beschrieben hier . Meine Erfahrungen basieren auf der Community Edition, die Datenflussanalysen recht gut durchführt. In einigen Fällen, in denen der Code sehr komplex ist, ist er fehlgeschlagen (hat sich geweigert, irgendetwas zu tun).

2
Ville Laitila

Etwas, das ich in IntelliJ die ganze Zeit benutze, ist das Refactoring, während ich tippe. Ich habe Klassen aus einem Ausdruck (ursprünglich in Eclipse geschrieben) mit beiden IDEs neu geschrieben und etwa 40% weniger Tastenanschläge/Mausklicks verwendet, um dieselben Klassen in IntelliJ zu schreiben als in Eclipse.

Ich würde Eclipse erst dann verwenden wollen, wenn sie so viele Umgestaltungen mit unvollständigem Code unterstützen.

Hier ist eine längere Liste von Funktionen in IntelliJ 8.0/8.1 [ http://www.jetbrains.com/idea/features/index.html]

2
Peter Lawrey

Es gibt eine Sache, die IntelliJ viel besser macht als Eclipse und die Ihre Taschen leert!

Ich bevorzuge es jedoch und ein großer Vorteil, den es gegenüber Eclipce hat, ist die Art und Weise, wie es mit dem Dateisystem synchronisiert wird, für große Projekte und langsame Computer (ja, in Arbeitsumgebungen sind die PCs viel langsamer als unsere zu Hause) kämpfen, wo IntelliJ schneller zu sein scheint, wenn auch mit einer langsameren anfänglichen Indizierungszeit.

Mit der IntelliJ Community Edition ist die Nutzung natürlich kostenlos, aber Sie möchten bald das zusätzliche Refactoring und die netten kleinen Extras, die nicht in der CC Edition enthalten sind.

Meiner Meinung nach ist es im Allgemeinen eine bessere Benutzererfahrung, aber ob sich die Kosten lohnen, ist eine Frage, die jeder Entwickler selbst beantworten muss.

Aber seien wir dankbar, dass wir bis zu drei großartige IDEs für Java im Moment haben, wobei NetBeans immer besser wird.

2
Shawn Vader

Gegenwärtig ist es das einzige, bei dem Registerkarten in ein anderes Fenster herausgerissen werden können. Praktisch, wenn Sie mehr Bildschirme haben.

1
Scoobie

Ich habe kürzlich mindestens zwei Vorteile von IntelliJ IDEA gegenüber Eclipse entdeckt.

Wenn man versucht, Code im JSP-Code-Editor zu formatieren, werden die JSP-Scriptlets beschädigt. Eclipse wird ein bisschen verrückt, hier und da werden zufällige Codestücke angezeigt. IDEA verhält sich sehr gut.

Die andere Sache ist die Geschwindigkeit der Bereitstellung der Anwendung auf dem JBoss-Server. IntelliJ ersetzt die Anwendung im tmp-Ordner von JBoss, sodass die erneute Bereitstellung sehr schnell vonstatten geht. Eclipse WTP ersetzt die Anwendung im Bereitstellungsordner, was, wie sich herausstellt, viel länger dauert.

1

Ich kann mich nicht erinnern, ob in Eclipse ein Zeilen-/Methoden-/Klassenumbruch möglich ist

In Intellij Idea verwenden Sie Ctrl+W

0
OscarRyz

Öffnen Sie ein Projekt aus einem Maven POM. Wählen Sie einfach "Projekt öffnen ..." und navigieren Sie zu Ihrer pom.xml-Datei der obersten Ebene. Drücken Sie die Eingabetaste. NetBeans verfügt nun auch über diese Funktion.

0
rlovtang

Es tut mir leid, wenn dies bereits behandelt wurde, aber wenn ich nur die Registerkarte "Änderungen" habe, auf der ich meine lokalen Änderungen, eingehenden Änderungen und Remote-Änderungen sehen kann, kann ich nicht ohne leben. In Eclipse kann ich solche Änderungen nicht finden eine Eigenschaft!

Auch nur eine einfache Sache wie das Klicken mit der mittleren Maustaste, die an die 'offene Deklaration' gebunden ist, ist eine großartige UI-Ergänzung - etwas, das ich auch in Eclipse nicht sehen kann.

Es gibt nur Eclipse an meinem Arbeitsplatz, aber ich denke ernsthaft darüber nach, eine persönliche Idea-Lizenz zu erwerben.

0
ustad

In IntelliJ kann man durch den Verlauf der zuletzt mit "Last Edit Location" bearbeiteten Orte springen. Eclipse hat eine ähnliche Funktion, aber Eclipse kehrt nur zu einer Ebene des Bearbeitungsorts zurück.

Die Historie und nicht nur die von Eclipse angebotene Ebene zu haben, ist eine großartige Produktivitätsfunktion: Sie fungiert als eine Form der automatischen Lesezeichenerstellung, da Sie häufig zu den Stellen zurückkehren möchten, an denen Sie Änderungen vorgenommen haben. Ich benutze diese Fähigkeit mehrmals am Tag und habe das Gefühl, sie nicht zu haben, wenn ich gebeten werde, Eclipse für etwas zu verwenden.

0
TomW

Es gibt eine Reihe von Funktionen und Arbeitsabläufen, die sich in beiden unterscheiden, wie aus allen Antworten hervorgeht. Ich denke jedoch, dass bei der Entscheidung, welches Framework verwendet werden soll, auch die allgemeine Produktivitätsverbesserung berücksichtigt wird, die mit jedem Tool erzielt werden kann.

Ich bin ein großer Fan von Netbeans und Eclipse und verwende beide seit vielen Jahren. Sie sind ausgezeichnete Werkzeuge, und je nachdem, was Sie tun, möchten Sie vielleicht das eine oder das andere auswählen.

Vor ungefähr einem halben Jahr war ich jedoch gezwungen, bei der Arbeit an einem komplexen Java= Webprojekt mit viel Javascript-Front-End-Code für eine HMT5-Benutzeroberfläche nach Alternativen zu Eclipse zu suchen, da es sich um ein js handelte Autocomplete Bug. Ich war so verzweifelt, dass ich überlegte, zu einem einfachen Texteditor für meinen js-Code zurückzukehren !!!

Es ist nur ein Glücksfall, dass ich auf Intellij Idea gestoßen bin (leider keine Zeit, nach Tools zu suchen).

Obwohl es eine Weile dauert, bis man sich an die Art und Weise gewöhnt hat, wie Idea Dinge macht, ist die Produktivitätssteigerung, die sie von kleinen Dingen links und rechts bietet, meiner Meinung nach das größte Kapital. Es funktioniert einfach besser für mich und ich bin jetzt ein abonnementpflichtiger Kunde von Idea Ultimate. Sobald Sie sich daran gewöhnt haben, ist es sehr schwierig, auf etwas anderes zurückzukommen.

Es gibt nichts Schöneres und ich bin ein großer Fan von Open Source, aber letztendlich zahlt es sich jedes Mal aus, wenn Sie dies für Ihren Lebensunterhalt tun, in der Lage zu sein, Dinge schneller zu erledigen.

0
CuNimb

Ich denke, Sie können sich an eine dieser IDEs halten. Das beste Zeichen, sich keine Sorgen darüber zu machen, dass in dem von Ihnen nicht verwendeten IDE ein riesiger Vorteil verloren geht, sind die sehr langen Auseinandersetzungen, die wir zwischen Eclipse-Fans und IntelliJ-Fans gesehen haben. Dies ist ein gutes Zeichen dafür, dass beide Seiten fast dieselbe Macht haben, was dazu geführt hat, dass diese lange Diskussion überlebt hat.

0
Ali Motevallian