summaryrefslogtreecommitdiff
path: root/cider.el
diff options
context:
space:
mode:
authorBozhidar Batsov <bozhidar@batsov.com>2013-10-20 13:32:18 +0300
committerBozhidar Batsov <bozhidar@batsov.com>2013-10-20 13:33:56 +0300
commitc12ed5f8217cc614b70ced5ba47ae6b25b71abcd (patch)
tree9b48bc0a3f347062c0b50382ff70aac40e2df736 /cider.el
parent94cae2b39b842b7d5e43054ef9f3cbfbcf28d3f8 (diff)
[Fix #385] Make cider and cider-jack-in autoload the entire cider.el file
Diffstat (limited to 'cider.el')
-rw-r--r--cider.el35
1 files changed, 33 insertions, 2 deletions
diff --git a/cider.el b/cider.el
index 664d0560..bf64aae1 100644
--- a/cider.el
+++ b/cider.el
@@ -67,10 +67,41 @@
(require 'cider-macroexpansion)
;;;###autoload
-(defalias 'cider 'nrepl)
+(defun cider-jack-in (&optional prompt-project)
+ "Start a nREPL server for the current project and connect to it.
+If PROMPT-PROJECT is t, then prompt for the project for which to
+start the server."
+ (interactive "P")
+ (setq nrepl-current-clojure-buffer (current-buffer))
+ (lexical-let* ((project (when prompt-project
+ (ido-read-directory-name "Project: ")))
+ (project-dir (nrepl-project-directory-for
+ (or project (nrepl-current-dir)))))
+ (when (nrepl-check-for-repl-buffer nil project-dir)
+ (let* ((nrepl-project-dir project-dir)
+ (cmd (if project
+ (format "cd %s && %s" project nrepl-server-command)
+ nrepl-server-command))
+ (process (start-process-shell-command
+ "nrepl-server"
+ (generate-new-buffer-name (nrepl-server-buffer-name))
+ cmd)))
+ (set-process-filter process 'nrepl-server-filter)
+ (set-process-sentinel process 'nrepl-server-sentinel)
+ (set-process-coding-system process 'utf-8-unix 'utf-8-unix)
+ (with-current-buffer (process-buffer process)
+ (setq nrepl-project-dir project-dir))
+ (message "Starting nREPL server...")))))
;;;###autoload
-(defalias 'cider-jack-in 'nrepl-jack-in)
+(defun cider (host port)
+ "Connect to an nREPL server identified by HOST and PORT."
+ (interactive (list (read-string "Host: " nrepl-host nil nrepl-host)
+ (string-to-number (let ((port (nrepl-default-port)))
+ (read-string "Port: " port nil port)))))
+ (setq nrepl-current-clojure-buffer (current-buffer))
+ (when (nrepl-check-for-repl-buffer `(,host ,port) nil)
+ (nrepl-connect host port)))
;;;###autoload
(eval-after-load 'clojure-mode