366 votos

Las cosas posibles en IntelliJ que no son posibles en Eclipse?

He escuchado de personas que han cambiado de cualquier manera y que juran por el uno o el otro.

Siendo un gran Eclipse ventilador, pero al no haber tenido el tiempo para probar IntelliJ, estoy interesado en saber de IntelliJ los usuarios que son "ex-Eclipsians" algunas cosas específicas que usted puede hacer con IntelliJ que no se puede hacer con Eclipse.

Nota: Esto no es una cuestión subjetiva, ni en todo destinado a convertirse en un IDE de la guerra santa. Por favor downvote cualquier flamebait respuestas.

185voto

Pavel Feldman Puntos 2140

CTRL-clic en cualquier lugar

CTRL-clic en el que te lleva a donde hizo clic en un objeto se define funciona en todas partes, no sólo en las clases de Java y variables en el código de Java, pero en la Primavera de configuración (puede hacer clic en el nombre de la clase, o de propiedad, o de frijol nombre), en modo de Hibernación (puede hacer clic en el nombre de la propiedad o de la clase, o incluido de recursos), se puede navegar dentro de un clic desde una clase Java a donde es utilizado como Spring o Hibernate bean; al hacer clic sobre incluido JSP o JSTL etiqueta también funciona, ctrl-clic en la variable de JavaScript o la función lleva al lugar en el que se define o muestra un menú si hay más de un lugar, incluyendo otros .js archivos y el código JS en HTML o archivos JSP.

Autocompletar para muchos idiomas

Hibernate

Función de autocompletar en HSQL expresiones, en la configuración de Hibernate (incluyendo la clase, la propiedad y DB nombres de columna), en la Primavera de configuración

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

y se le mostrará la lista de los granos, que puede inyectarse en dicho inmueble.

Java

Muy inteligente la función autocompletar en código Java:

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

y se muestra SÓLO getName(), getAddress() y toString() (sólo son compatibles por tipo) y getName() es el primero en la lista porque tiene nombre más relevante. Última versión 8, en el que todavía está en la EAP es incluso más inteligente de autocompletar.

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>

y silenciosamente, autocompletar para

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

Javascript

Smart función de autocompletar 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>;
}

y SÓLO muestra getName() y getAddress(), no importa cómo se puede obtener : * métodos tienen en otros objetos JS en su proyecto, y ctrl-clic en this.getName() trae a donde este se define uno, incluso si hay algunos otros getName() funciones en el proyecto.

HTML

Hice mención de autocompletar y ctrl-clic en las rutas de acceso a los archivos, como <script src=" <img src="", etc.?

Función de autocompletar en HTML y atributos de etiqueta. Función de autocompletar en el estilo de atributos de las etiquetas HTML, tanto los nombres de atributos y valores. Función de autocompletar en los atributos de la clase así.
Tipo <div class="<CTRL-SPACE> y se le mostrará la lista de clases CSS definidas en el proyecto. Elija uno, ctrl-clic en él y usted será redirigido a donde está definido.

Fácil propio idioma higlighting

Última versión de idioma de la inyección, así que usted puede declarar que usted personalizado de etiquetas JSTL contiene, generalmente JavaScript, y se pondrán de relieve JavaScript en su interior.

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

Búsqueda indexada a través de todo el proyecto.

Usted puede utilizar la función de búsqueda los Usos de cualquier clase de Java o método y que se encuentra donde se utiliza, incluyendo no sólo las clases de Java, pero Hibernate, Spring, JSP y otros lugares. Cambiar el nombre de Método de refactorización cambia el nombre de método no sólo en las clases de Java, pero en cualquier parte, incluidos los comentarios (no puede estar seguro de si la cadena en los comentarios es realmente el nombre del método así que pregunte). Y que sólo busca su método aún si no son métodos de otra clase con el mismo nombre. Buena fuente de integración de control (SVN apoyo changelists? IDEA de apoyarlos para cada fuente de control), la capacidad para crear un parche con los cambios de modo que usted puede enviar los cambios a otro miembro del equipo, sin cometer ellos.

Depurador mejorado

Cuando me miro en el HashMap en el depurador del reloj de la ventana, veo lógico de vista de claves y valores, la última vez que lo hice en Eclipse fue mostrando entradas con hash y campos de next - realmente no estoy de depuración HashMap, yo sólo quiero mirar los contenidos.

La primavera y de configuración de Hibernate de la validación

Valida la Primavera y de configuración de Hibernate derecho al editar, así que no es necesario reiniciar el servidor para saber que escribí mal el nombre de la clase, o agrega parámetro del constructor para mi la Primavera cfg no es válido.

La última vez que lo intentaba, no podía ejecutar Eclipse en Windows XP x64.

y le sugieren person.name o person.address. Ctrl-clic en person.name y le llevara a getName() método de Persona de clase.

Tipo Pattern.compile(""); poner \\ no, presione CTRL-ESPACIO y ver consejos útiles sobre lo que puede poner en la expresión regular. También puede utilizar el lenguaje de la inyección de aquí a definir su propio método que toma el parámetro de cadena, declarar en IntelliLang de diálogo de opciones de que el parámetro es expresión regular - y se le dará de autocompletar. Ni que decir tiene que destaca incorrectas expresiones regulares.

Otras características

Hay algunas características que no estoy seguro de que están presentes en Eclipse o no. Pero al menos cada uno de los miembros de nuestro equipo que utiliza Eclipse, también utiliza algunas de fusión de la herramienta para combinar los cambios locales con los cambios de control de código fuente, generalmente WinMerge. Nunca me necesita - la fusión de la IDEA, para mí es suficiente. Por 3 clics puedo ver la lista de versiones de archivo en el control de código fuente, por más de 3 clics se puede comparar versiones anteriores, o a la anterior y actual y, posiblemente, de combinación.

Permite especificar que necesito todos los .jars dentro de WEB-INF\lib carpeta, sin recoger cada archivo por separado, de modo que cuando alguien comete nuevos .jar en la carpeta que recoge de forma automática.

Mencionado anteriormente es probablemente el 10% de lo que hace. Yo no uso de Maven, Flex, Swing, EJB y un montón de otras cosas, así que no puedo decir cómo se ayuda con ellos. Pero no es así.

81voto

amit Puntos 4092

Sólo hay una razón por la que utilizo intellij y no eclipse: Usabilidad

Si es la depuración, la refactorización, la auto-realización.. Intellij es mucho más fácil de usar, con la uniformidad de los atajos de teclado, las opciones disponibles en su lugar de mirar para ellos, etc. Característica-sabio, que va a ser difícil para intellij para ponerse al día con Eclipse, ya que este último tiene mucho más plugins que intellij, y es fácilmente ampliable.

54voto

OscarRyz Puntos 82553

Probablemente no es una cuestión de lo que puede/no puede hacer, sino cómo.

Por ejemplo, ambos han editor rodeado de acoplar los paneles para el proyecto, classpath, la producción, la estructura, etc. Pero en la Idea de que cuando me pongo a escribir todas estas colapso automáticamente permítanme centrarme en el código en sí; En eclipse todos estos paneles mantener abiertas dejando a mi editor área muy reducida, alrededor de 1/5 del total del área visible. Así que me tengo que agarrar el ratón y haga clic para minimizar en los paneles. Haciendo esto todo el día es una experiencia muy frustrante en eclipse.

Justo lo contrario sucede con la vista de la ventana de salida. En la Idea de ejecutar un programa trae la ventana de salida/panel para ver la salida del programa, incluso si se perviously minimizado. En eclipse, yo tengo que agarrar mi ratón de nuevo y buscar la pestaña salida y haga clic en él para ver mi programa de salida, debido a que la ventana de salida/panel es otro, como en el resto de las ventanas, pero la Idea es tratado de una manera especial: "Si el usuario desea ejecutar su programa, es muy probable que él quiere para ver la salida de ese programa!" Parece tan natural que cuando lo escribo, pero eclipse falla en esta interfaz de usuario básica concepto.

Probablemente no hay un atajo para esta en eclipse ( ocultar automáticamente la ventana de salida, mientras que la edición y el autoshow de que cuando se ejecuta el programa ) , pero como algunas otras decenas de características que el acceso directo debe ser objeto de caza en los foros, ayuda en línea, etc, mientras que en la Idea de que es un poco más "natural".

Esto puede ser repetido para casi todas las características de ambos, autocompletar, de ajuste de palabra, rápidos la vista de la documentación, todo. Creo que la experiencia de usuario es mucho más agradable en la Idea de que en eclipse. A continuación, el lema se cumple "Desarrollar con placer"

Eclipse maneja más rápido en proyectos grandes ( +de 300 tarros y +4000 clases ) y creo que IntelliJ Idea 8 está trabajando en esto.

Todo esto por supuesto es subjetivo. ¿Cómo podemos medir la experiencia de usuario?

45voto

krosenvold Puntos 35979

Idea 8.0 tiene la hermosa ctrl+shift+space x 2 que hace de la siguiente autocompletar:

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

resuelve

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

a través de cualquier número de niveles de getters/setters.

33voto

Daniel Alexiuc Puntos 2304

No olvide la "comparar con el portapapeles".

Algo que uso todo el tiempo en IntelliJ y que no tiene equivalente en Eclipse.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by: