Предполагая, что вы хотите запустить сервер причала и загрузите или перезагрузите его, когда вы измените его из emacs. Хотя уже предоставленный совет хорош, он может быть более сложным, чем вам нужно при начале работы. Мой совет состоит в том, чтобы воспользоваться некоторыми из шаблонов там для lein, которые будут настраивать среду по умолчанию и рабочий процесс для вас. Затем вы можете уточнить это значение по умолчанию, пока вы узнаете больше, пока не получите рабочий процесс, который вам подходит. Моя рекомендация будет начать witht по умолчанию compojure шаблон т.е.
lein new compojure my-project
Это создает проект голых костей с основным кольцом и compojure библиотеками и LEIN плагин, а также простым профилем Dev.
Редактируйте файл src/my_project/handler.clj и добавьте промежуточное программное обеспечение ring.middleware.reload, например.
(ns my-project.handler
(:require [compojure.core :refer :all]
[compojure.route :as route]
[ring.middleware.reload :refer [wrap-reload]]
[ring.middleware.defaults :refer [wrap-defaults site-defaults]]))
(defroutes app-routes
(GET "/" [] "Hello World")
(route/not-found "Not Found"))
(def app
(-> app-routes
wrap-reload
(wrap-defaults site-defaults)))
Средство промежуточного перезарядки приведет к перезагрузке вашего кода при его изменении. Вам не нужно будет перезагружать сервер причала, чтобы изменения вашего кода вступили в силу - просто перезагрузите страницу.
В терминальном периоде либо
lein ring server
или
lein ring server-headless
Это запустит сервер пристани прослушивает порт 3000. Затем внутри Emacs, вы можете просто открыть сидр Repl использовать время написав свой код. Вам не нужно будет перезапускать серверный процесс, если вы не внесете изменения в файл project.clj. То же самое с процессом сидра.
Затем, как только вам станет удобно, посмотрите на документацию лейн-кольца. Там вы найдете информацию о том, как настроить файл repl.clj в проекте. После того, как вы сделаете это, вы будете в состоянии сделать что-то вроде
lein repl
, а затем из этого РЕПЛ, сделать что-то вроде
(start-server)
, которая запустит сервер. Затем вы можете переключиться на emacs и вместо запуска cider-jack-in вы можете сделать cider-connect, который будет подключать то, что он уже выполняет, вместо того, чтобы начинать второй сеанс репликации. Позже, если вы решите также начать просмотр clojurescript, вы можете посмотреть некоторые из шаблонов по умолчанию для приложений clojure + clojurescript. Мне очень нравится фиолетовый и использовать реагент честно, поэтому я также нашел шаблон реагента неплохим.
Существует довольно много шаблонов lein, и мне очень полезно просто запустить их и посмотреть, что они делают. Затем я стараюсь, чтобы вишня выбирала функции/варианты, которые мне нравятся.
Я предлагаю вам прочитать https://github.com/stuartsierra/component и смотреть это видео https: // WWW. youtube.com/watch?v=13cmHf_kt-Q, чтобы получить общее представление о том, как начать, остановить, перезагрузить код и запустить веб-сервер. – mavbozo
Вы просмотрели https://github.com/clojure-emacs/cider#basic- использования и на быстрых клавишах, перечисленных там? Вероятно, вы просто захотите переопределить буфер ('C-c C-k') после изменения (или использовать' C-x C-e' для одной формы). Если вам действительно нужно перезапустить Clojure, вы можете остановить его ('C-c C-q') и перезапустить из Emacs (' M-x cider-jack-in'). Кроме того, 'server' - это простой var, а не функция, поэтому просто сервер будет возвращать объект сервера (он запускается через' -main', когда вы оцениваете '(defonce server ...)'. Наконец, вы хотите посмотрите на плагин 'lein-ring', который упростит ваш рабочий процесс. – schaueho
Если вы новичок в Clojure, посмотрите эту главу на ebook _Clojure for the Brave and True_: http://www.braveclojure.com/basic-emacs/для пошагового простого руководства по установке Emacs и Cider. –