Idoneidad de Emacs como IDE de desarrollo Java

22

Estoy haciendo otro intento de convertirme a Emacs. Soy un usuario decente de Vi, pero he estado usando Eclipse para la mayor parte de mi trabajo de desarrollo durante los últimos 10 años (ha pasado tanto tiempo).

Así que leí un poco y pensé que JDEE es el camino a seguir: lo configuré pero aún tengo algunas preguntas básicas.

Pero, después de investigar un poco más, ¿parece que JDEE no está bien mantenido y quizás todo lo que necesito es CEDET?

Entonces pregunta:

  1. ¿Puede Emacs servir como mi reemplazo de Eclipse? ¿Organizo mi construcción usando Maven?
  2. Si "1" es sí, ¿con qué conjunto de herramientas debo comenzar: CEDET? JDEE?

Gracias.

usuario1172468
fuente
44
Emacs es un gran editor, pero no un gran IDE de Java. Te decepcionará.
Thorbjørn Ravn Andersen

Respuestas:

20

Voy a ser conservador y decir que no , Emacs no es un reemplazo directo para Eclipse (especialmente no fuera de la caja). Sin embargo, eso no significa que no sea adecuado para el desarrollo de Java.

Como ya está familiarizado con Eclipse, le sugiero que eche un vistazo a eclim:

Eclim proporciona la capacidad de acceder a las funciones de edición de código de Eclipse (finalización de código, búsqueda, validación de código y muchas más ) a través de la línea de comando o una conexión de red local, permitiendo que esas funciones se integren con su editor favorito.

Eclim es compatible con Maven . Se integra con Emacs a través de un paquete llamado emacs-eclim. Siga los pasos descritos en el emacs-eclim archivo README para instalarlo 1 :

  1. Descargue e instale eclim.

  2. Instalar emacs-eclim:

    • Si aún no lo ha hecho, agregue MELPA a package-archives:

      (add-to-list 'package-archives '("melpa" . "http://melpa.org/packages/") t)

    • Evalúe el código anterior (presionando C-x C-econ el punto colocado después del último par de cierre) o reinicie Emacs.

    • Instalar emacs-eclimhaciendo M-x package-install RET emacs-eclim RET.
  3. Agregue el siguiente código a su archivo init:

(require 'eclim)
(global-eclim-mode)

1 Instrucciones modificadas para incluir un solo método de instalación.

itsjeyd
fuente
1
Muchas gracias por la respuesta: estoy familiarizado con eclim, sin embargo, estoy tratando de alejarme del eclipse debido a su hinchazón, aunque aprecio que este sea un buen paso de transición.
user1172468
1
Entonces pregunta: diga si eclim no existiera, ¿cuál sería su recomendación?
user1172468
Aprende a vivir sin refactorizar entonces.
wasamasa
2
@ user1172468 Depende: ¿qué tipos de funciones desea? Un reemplazo completo para Eclipse inevitablemente contendrá algo de hinchazón. Si quiere alejarse de eso, su mejor opción es crear una lista de casos de uso específicos y verificar si (a) Emacs los admite de inmediato y / o (b) hay un paquete adicional que proporciona Funcionalidad relevante. Podemos ayudarlo con eso, pero solo si nos deja entrar en sus funciones
imprescindibles
1
Cabe señalar que con Eclim puede ejecutar Eclipse sin la interfaz gráfica de usuario, que utilizará menos recursos. Otra cosa sobre Eclim es que su autocompletado no se puede usar (tiene que guardar el búfer antes de solicitar la finalización + bloquea el editor mientras espera la respuesta).
wvxvw
11

Emacs / eclim ha sido mi IDE Java principal durante los últimos años y diría que funciona muy bien, incluso con grandes bases de código (mi espacio de trabajo actual de emacs / eclim tiene más de 4000 archivos Java). Es cierto que emacs-eclim requiere que se guarde el archivo antes de hacer su llamada eclimd, pero no es un gran problema IMO. La experiencia de edición sigue siendo buena y el depurador (usando gud) está bien.

Si resiente todas las soluciones basadas en Eclipse, recomendaría el modo Malabar . También lo he usado durante un par de años (antes de cambiarme a emacs-eclim) y tiene algunas características agradables, además de que funciona de forma inmediata con cualquier proyecto Maven. Si usa Maven, malabar-modeinstantáneamente le dará autocompletado y navegación de código (entre otras cosas). Con malabar, utilicé jdibug para depurar procesos remotos de Java.

También vale la pena echarle un vistazo al paquete Java más antiguo para Emacs, JDEE . Aquí, encontrará muchas características IDE implementadas en elisp puro (o los programas Java que se inician a través de bsh), pero la última vez que lo usé, estaba bastante anticuado. Puedo estar equivocado, pero la última vez que lo comprobé, JDEE era el más adecuado para Java <= 1.4 y el depurador que funcionaba mejor con él jdb(los otros eran demasiado lentos).

Por último, independientemente del paquete Java que elija, también agregaría Projectile para obtener muchas bondades relacionadas con el proyecto.

skybert
fuente
8

En este punto (2018), LSP Java ( https://github.com/emacs-lsp/lsp-java ) es bastante bueno. Algunas de las características:

  1. Autocompletar
  2. Refactorización (método de extracción, cambio de nombre, interfaz de implementación, extracción local, extracción constante, etc.)
  3. Importación automática
  4. Navegación de código mientras trabaja en múltiples proyectos
  5. Encuentra referencias, implementaciones, tipo abierto.
  6. Importación de proyectos Maven / Gradle, compilación automática, actualización automática de la configuración del proyecto
  7. Fácil de configurar
  8. Preferencia de formateador
  9. Soporte Flycheck + soluciones rápidas como "Agregar reparto", "Rodear con try / catch", etc.

El principal punto de venta es que hay desarrolladores a tiempo completo que trabajan en el backend de LSP Java https://github.com/eclipse/eclipse.jdt.ls, que presenta nuevas características casi todas las semanas.

Ivan Dimitrov Yonchovski
fuente