J'ai mis à jour ma configuration emacs avec l'utilisation de Rsense pour permettre à une liste déroulante de saisie semi-automatique d'apparaître lors de la saisie du code. Cela fonctionne bien dans la plupart des fichiers, sauf que j'ai trouvé que cela ne me permet pas de sélectionner une réponse dans le tableau lorsque j'édite du code dans mon projet ruby on rails.
Voici ma configuration: https://github.com/map7/simple_emacs
J'utilise ceci sous Ubuntu 10.04.
Pour les fichiers de script ruby simples, cela fonctionne très bien. Je peux ouvrir un nouveau fichier et taper.
"test".up...
Tout comme je tape le caractère «p» dans le haut, une liste d'options apparaît et je peux monter et descendre la liste avec les touches fléchées et en sélectionner une (par exemple: vers le haut) avec la touche Entrée.
Ce qui ne fonctionne pas, c'est quand je fais exactement le même test mais dans le répertoire de base d'un projet de rails.
Mettre à jour:
J'ai trouvé que le problème venait de (require 'rails), donc c'est quelque chose dans le plugin emacs-rails que la saisie semi-automatique n'aime pas.
Mettre à jour:
C'est dans emacs-rails -> rails-project.el. Si je commente cette macro, la saisie semi-automatique fonctionne, sinon ce n'est pas le cas:
(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))))
Quelqu'un peut-il expliquer pourquoi cela interrompt la saisie semi-automatique?