He estado actualizando mi configuración de emacs con el uso de Rsense para permitir que aparezca un cuadro desplegable de autocompletar mientras escribo código. Esto funciona bien en la mayoría de los archivos, excepto que he descubierto que no me permite seleccionar una respuesta de la tabla cuando estoy editando algún código en mi proyecto ruby on rails.
Aquí está mi configuración: https://github.com/map7/simple_emacs
Estoy usando esto en Ubuntu 10.04.
Para archivos de script ruby simples, funciona muy bien. Puedo abrir un nuevo archivo y escribir.
"test".up...
Justo cuando escribo el carácter 'p' en la parte superior, aparece una lista de opciones y puedo subir y bajar la lista con las teclas de flecha y seleccionar una (por ejemplo: mayúscula) con la tecla Intro.
Lo que no funciona es cuando hago exactamente la misma prueba pero dentro del directorio base de un proyecto rails.
Actualizar:
Descubrí que el problema es con (require 'rails), por lo que es algo en el complemento emacs-rails que no le gusta al autocompletado.
Actualizar:
Está dentro de emacs-rails -> rails-project.el. Si comento esta macro, el autocompletado funciona; de lo contrario, no funciona:
(defmacro* rails-project:with-root ((root) &body body)
"If you use `rails-project:root' or functions related on it
several times in a block of code, you can optimize your code by
using this macro. Also, blocks of code will be executed only if
rails-root exist.
(rails-project:with-root (root)
(foo root)
(bar (rails-core:file \"some/path\")))
"
`(let ((,root (rails-project:root)))
(when ,root
(flet ((rails-project:root () ,root))
,@body))))
¿Alguien puede explicar por qué esto rompe el autocompletado?