Я оновлював конфігурацію emacs із застосуванням Rsense, щоб дозволити з'являтися спадне поле автозаповнення під час введення коду. Це добре працює в більшості файлів, за винятком того, що я виявив, що це не дозволяє мені вибрати відповідь із таблиці, коли я редагую якийсь код у своєму проекті «рубін на рейках».
Ось моя настройка: https://github.com/map7/simple_emacs
Я використовую це під Ubuntu 10.04.
Для простих файлів сценаріїв з рубіном він чудово працює. Я можу відкрити новий файл і ввести.
"test".up...
Так само, як я набираю символ 'p' вгорі, з’являється список параметрів, і я можу переходити вгору і вниз по списку за допомогою клавіш зі стрілками і вибирати один (наприклад: upcase) за допомогою клавіші enter.
Що не працює, коли я роблю точно такий же тест, але в базовій директорії проекту рейки.
Оновлення:
Виявлено, що проблема полягає в (вимагають 'rails), тому в плагіні emacs-rails це щось, що автозаповнення не подобається.
Оновлення:
Це в emacs-rails -> rails-project.el. Якщо я коментую цей макрос, то автозаповнення працює, інакше він не:
(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))))
Чи може хтось пояснити, чому це порушує автозаповнення?