Ich habe meine Emacs-Konfiguration mithilfe von Rsense aktualisiert, damit beim Eingeben von Code ein Dropdown-Feld für die automatische Vervollständigung angezeigt wird. Dies funktioniert in den meisten Dateien gut, außer ich habe festgestellt, dass ich keine Antwort aus der Tabelle auswählen kann, wenn ich Code in meinem Ruby on Rails-Projekt bearbeite.
Hier ist mein Setup: https://github.com/map7/simple_emacs
Ich benutze dies unter Ubuntu 10.04.
Für einfache Ruby-Skriptdateien funktioniert es hervorragend. Ich kann eine neue Datei öffnen und eingeben.
"test".up...
Gerade als ich das 'p'-Zeichen eintippe, erscheint eine Liste mit Optionen, und ich kann die Liste mit den Pfeiltasten auf und ab gehen und mit der Eingabetaste eine auswählen (z. B. Groß- / Kleinschreibung).
Was nicht funktioniert, ist, wenn ich genau den gleichen Test mache, aber im Basisverzeichnis eines Rails-Projekts.
Aktualisieren:
Es wurde festgestellt, dass das Problem bei (erfordert 'Schienen) liegt, daher ist es etwas im Emacs-Rails-Plugin, das der Autovervollständigung nicht gefällt.
Aktualisieren:
Es ist in emacs-Rails -> Rails-Projekt.el. Wenn ich dieses Makro auskommentiere, funktioniert die automatische Vervollständigung, andernfalls nicht:
(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))))
Kann jemand erklären, warum dies die automatische Vervollständigung unterbricht?