Как сделать автоматическое расширение или автозаполнение функций и переменных в Clojure repl

Есть ли способ расширить текущую команду в ответе Clojure, как я мог бы сделать в Common Lisp?

Например, скажем, я набрал:

Math/

Я хотел бы, чтобы клавиша табуляции расширилась до всех доступных переменных и функций в этом пространстве имен.

Я использую Clojure как inferior-lisp, хотел бы знать, как это сделать с помощью простого ванильного ответа в Clojure и с помощью swank slime.


person justinhj    schedule 27.11.2010    source источник


Ответы (3)


Еще одно голосование в пользу clojure-mode и slime под Emacs. В частности, если вы настроили автозаполнение, вы можете использовать мой ac-slime, чтобы получить завершение вкладки с учетом контекста в раскрывающемся списке. Вот скринкаст, демонстрирующий его в действии.

И, в дополнение к комментарию техномантии о расширении хиппи, вот как связать завершение слизи с расширением хиппи .

Обновление: с 2012 г., nrepl, nrepl.el и ac- nrepl заменяют слайм и ак-слайм; та же функциональность, меньшая и более чистая кодовая база.

Обновление 2: с октября 2013 г. nrepl.el переименован в сидр и его и ac-nrepl перемещены в организацию clojure-emacs на github. nrepl остается серверным компонентом.

person sanityinc    schedule 27.11.2010
comment
Все еще самый эффективный способ использования repl в середине 2012 года, теперь с Emacs24. - person raju-bitter; 09.08.2012

Вы пробовали режим Clojure для Emacs? У него есть автозаполнение (предложения отображаются в новом окне, и если есть только один возможный вариант, он используется для раскрытия имени), выделение и многие другие приятные функции (не больше, чем для CL, но не меньше).

Он доступен через ELPA. После установки ELPA введите M-x package-list-packages, установите курсор рядом с нужным пакетом и нажмите i (уже установленные пакеты отображаются красным ). Вам потребуются пакеты clojure-mode, slime, slime-repl и swank-clojure. Когда вы закончите с i-метками, нажмите x, чтобы завершить установку. Наконец, нажмите M-x slime - Emacs сообщит, что Clojure не установлен, и предложит загрузить и использовать последнюю версию. Просто согласен.

Вы также можете интегрировать Emacs с Leiningen.

person ffriend    schedule 27.11.2010

Ванильный ответ в Clojure изрядно урезан; у него даже нет истории. Избегайте этого для чего угодно, кроме самых примитивных задач. Я не думаю, что вы можете получить это в inferior-lisp, но в slime repl вы можете просто использовать TAB для выполнения таких вещей. В буферах режима закрытия с активированным слаймом это M-TAB, или вы можете связать его со своими функциями расширения хиппи.

person Community    schedule 27.11.2010