2008-09-24 8 views

Respuesta

2

Buscando en la web me parece http://www.emacswiki.org/cgi-bin/wiki/EmacsTags#toc7 describir complete-tab en etags. Está obligado a M-Tab por defecto. Esta unión puede ser un problema para usted

Además, etags tiene algunos límites, que puedan molestar a usted ...

El enlace apunta también a CEDET como tener un mejor soporte finalización símbolo.

8

Solo puedo responder su 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 que escribió o examinó en sus memorias intermedias de emacs, y obtuvo inteligente completando 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 
18

M-/ es un autocompletar rápido y sucio basado en el contenido de la memoria intermedia actual. No te dará todo lo que obtienes en Eclipse pero es sorprendentemente poderoso.

+1

Sin olvidar que atar M-/a 'hippie-expand proporciona incluso más posibilidades de finalización. –

7

Cuando estaba haciendo el desarrollo de Java Solía ​​usar el:

Java Development Environment for Emacs (JDEE)

El JDEE proporcionará el nombre del método de terminación cuando se invoca explícitamente una función JDEE proporcionado. Tiene un enlace de teclado para esta funcionalidad en el modo jdee.

6

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

3

En este momento, estoy usando Auto Complete 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 Semantic 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 (como lo haría normalmente con Semántica). Solo lo he usado mientras tenía un proyecto EDE, así que supongo que esto es cierto.

0

He escrito un paquete específico de C++ encima de CEDET que podría proporcionar lo que desea. Proporciona una sugerencia de argumentos de función similar a Eclipse. Las funciones sobrecargadas son compatibles tanto para los argumentos de la función sugerencia como para la finalización. paquete se encuentra aquí:

https://github.com/abo-abo/function-args

Asegúrese de revisar la bonita pantalla:

https://raw.github.com/abo-abo/function-args/master/doc/screenshot-1.png

0

auto-complete-clang es lo que desea. 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 manera de saber qué indicadores -I y -D pasan al compilador. Hay paquetes para emacs que le permiten declarar proyectos y luego puede usarlos.

Personalmente, uso CMake para todos los trabajos en C y C++, así que escribí algunos CMake code 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.