Как сделать автоматическое расширение или автозаполнение функций и переменных в репорте Clojure - PullRequest
11 голосов
/ 27 ноября 2010

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

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

Math/

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

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

Ответы [ 3 ]

19 голосов
/ 27 ноября 2010

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

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

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

Update2: по состоянию на октябрь 2013 года nrepl.el переименован в cider , и он и ac-nrepl перемещены в clojure-emacs организация на github. nrepl остается в качестве серверного компонента

3 голосов
/ 27 ноября 2010

Вы пробовали Режим 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 .

2 голосов
/ 27 ноября 2010

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

...