2010-06-03 8 views
7

Trabajo en mi proyecto Django con emacs. En mi virtualenv guión "postactivate" Tengo el siguiente orden sencilla:¿Es posible hacer que Python etags sea un poco más inteligente con emacs?

find -L . -type f -name "*.py" | xargs etags -e > /dev/null 2>&1 & 

El fichero de etiquetas genera muy bien, pero el sistema parece bastante tonto. Cuando el cursor es una llamada de filtro modelo, p.

MyModel.objects.filter(...) 

y me golpeó M-., A veces me lleva emacs lugar donde MyModel ha sido importada en el momento del archivo (la declaración de importación real). Solo quiero visitar definiciones de clases, métodos y funciones.

¿Hay alguna manera de hacer que los etags sean más inteligentes?

Gracias, Ryan Kaskel

Respuesta

3

Obtención de un análisis correcto del módulo con un lenguaje como Python es muy difícil, debido a su naturaleza dinámica la mejor manera de obtener información correcta está haciendo el análisis heurísticos o estática.

Actualmente, lo mejor que he encontrado es explorar métodos con la extensión de ropemacs que tiene excelentes características como la ayuda de código (bastante inteligente) y consejos de llamada.

Desafortunadamente no es fácil hacerlo bien con los ropemacs, debe instalar los primeros pymacs y luego configurar instalar varias bibliotecas de cables. (Estoy trabajando en un packaged version of it)

Otro paquete que analizar estáticamente el código Python y producir "etiquetas inteligentes" sería algo así como pysmell, pero no he utilizado ampliamente

Cuestiones relacionadas