emacs autocomplete intellisense

Eclipse Style Function Completions en Emacs para C, C++ y JAVA?



autocomplete intellisense (9)

¿Cómo obtengo complementos de funciones de estilo Eclipse en Emacs para C, C ++ y JAVA? Me encanta el poder del editor de texto de Emacs, pero la falta de una característica "intellisense" me deja usando Eclipse.



Al buscar en la web, encuentro http://www.emacswiki.org/cgi-bin/wiki/EmacsTags#toc7 que describe complete-tab en etags. Está vinculado a M-Tab por defecto. Este enlace puede ser un problema para ti

Además, etags tiene algunos límites, que pueden molestarte ...

El enlace también señala que CEDET tiene un mejor soporte para la finalización de símbolos.


Solo puedo responder a tu pregunta como alguien que no ha usado mucho Eclipse. ¡Pero! ¿Qué pasaría si hubiera un análisis heurístico rápido realmente bueno de todo lo que escribió o analizó en los búferes de emacs, y obtuvo la finalización inteligente de todo eso en todas partes, no solo en el código?

M-x load-library completion M-x global-set-key C-RET complete RET


M-/ es una autocompleta rápida y sucia basada en el contenido de su búfer actual. No te dará todo lo que obtienes en Eclipse pero es sorprendentemente poderoso.


Cuando estaba haciendo el desarrollo de Java solía usar:

Entorno de desarrollo Java para Emacs (JDEE)

El JDEE proporcionará la finalización del nombre del método cuando invoque explícitamente una función provista por jdee. Tiene un enlace de teclado para esta funcionalidad en el modo jdee.


En este momento, estoy usando Autocompletar para Emacs. Como usuario actual de Visual Studio y ex-Eclipse, puedo decir que compite bastante bien con ambas aplicaciones. Todavía no es tan bueno como el IntelliSense para C # de Microsoft, pero algunos dirían que C ++ es notoriamente difícil de analizar.

Aprovecha el poder de (creo) el paquete semántico de Cedet , y me parece más agradable de usar en comparación con Smart Complete . Completa miembros de C ++, variables locales, etc. Es bastante bueno. Sin embargo, se cae al no poder completar los métodos sobrecargados (solo muestra la función una vez sin parámetros, pero eso es una limitación de Cedet, creo) y otras cosas. ¡Puede mejorar en el futuro sin embargo!

Por cierto, podría estar equivocado aquí, pero creo que necesita un proyecto de EDE configurado para que la finalización del miembro de la clase funcione (al igual que lo haría normalmente con Semántica). Solo lo he usado mientras tenía un proyecto EDE, así que supongo que esto es cierto.



El paquete CEDET proporciona terminación para C / C ++ y Java (y para algunos otros idiomas). Para la personalización inicial puede tomar mi configuración que utilizo para trabajar con proyectos de C ++


auto-complete-clang es lo que quieres. No se puede equivocar con el uso de un compilador de C ++ real para las terminaciones.

El único problema que tiene es que no hay forma de saber qué indicadores -I y -D pasan al compilador. Hay paquetes para emacs que le permiten declarar proyectos y luego puede usarlos.

Personalmente, utilizo CMake para todos los trabajos en C y C ++, así que escribí un código CMake para pasar esa información a emacs a través de variables locales de directorio. Funciona, pero estoy pensando en escribir un paquete que llame a cmake desde emacs para que haya menos intrusión.