Ho aggiornato la mia configurazione di emacs con l'uso di Rsense per consentire la visualizzazione di una casella a discesa di completamento automatico durante la digitazione del codice. Funziona bene nella maggior parte dei file, tranne che ho scoperto che non mi permette di selezionare una risposta dalla tabella quando sto modificando del codice nel mio progetto Ruby on Rails.
Ecco la mia configurazione: https://github.com/map7/simple_emacs
Sto usando questo sotto Ubuntu 10.04.
Per semplici file di script ruby funziona alla grande. Posso aprire un nuovo file e digitare.
"test".up...
Proprio mentre digito il carattere 'p' in alto appare un elenco di opzioni e posso andare su e giù nell'elenco con i tasti freccia e selezionarne uno (es. Upcase) con il tasto invio.
Ciò che non funziona è quando eseguo esattamente lo stesso test ma all'interno della directory di base di un progetto Rails.
Aggiornare:
Abbiamo scoperto che il problema è (richiedi 'rails), quindi è qualcosa nel plugin emacs-rails che il completamento automatico non piace.
Aggiornare:
È all'interno di emacs-rails -> rails-project.el. Se commento questa macro, il completamento automatico funziona, altrimenti no:
(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))))
Qualcuno può spiegare perché questo si rompe il completamento automatico?