@@ -1302,12 +1302,15 @@ nil."
1302
1302
(define-key map (kbd " j s" ) #'cider-jack-in-cljs )
1303
1303
(define-key map (kbd " j m" ) #'cider-jack-in-clj&cljs )
1304
1304
(define-key map (kbd " j u" ) #'cider-jack-in-universal )
1305
+ (define-key map (kbd " j n" ) #'cider-start-nrepl-server )
1305
1306
(define-key map (kbd " C-j j" ) #'cider-jack-in-clj )
1306
1307
(define-key map (kbd " C-j s" ) #'cider-jack-in-cljs )
1308
+ (define-key map (kbd " C-j n" ) #'cider-start-nrepl-server )
1307
1309
(define-key map (kbd " C-j m" ) #'cider-jack-in-clj&cljs )
1308
1310
(define-key map (kbd " C-j C-j" ) #'cider-jack-in-clj )
1309
1311
(define-key map (kbd " C-j C-s" ) #'cider-jack-in-cljs )
1310
1312
(define-key map (kbd " C-j C-m" ) #'cider-jack-in-clj&cljs )
1313
+ (define-key map (kbd " C-j C-n" ) #'cider-start-nrepl-server )
1311
1314
(define-key map (kbd " c j" ) #'cider-connect-clj )
1312
1315
(define-key map (kbd " c s" ) #'cider-connect-cljs )
1313
1316
(define-key map (kbd " c m" ) #'cider-connect-clj&cljs )
@@ -1326,24 +1329,49 @@ nil."
1326
1329
map)
1327
1330
" CIDER jack-in and connect keymap." )
1328
1331
1332
+ (defun cider--start-nrepl-server (params &optional on-port-callback )
1333
+ " Starts an nrepl server and passes the callback to it.
1334
+ PARAMS is a plist optionally containing :project-dir and :jack-in-cmd.
1335
+ ON-PORT-CALLBACK is a function of one argument (server buffer)
1336
+ which is called by the process filter once the port of the connection has
1337
+ been determined. Can be nil."
1338
+ (nrepl-start-server-process
1339
+ (plist-get params :project-dir )
1340
+ (plist-get params :jack-in-cmd )
1341
+ on-port-callback))
1342
+
1343
+
1344
+ (defun cider--update-params (params )
1345
+ " Completes the passed in PARAMS from user input.
1346
+ Updates :project-dir, confirmation for existing session and :jack-in-cmd."
1347
+ (thread-first
1348
+ params
1349
+ (cider--update-project-dir)
1350
+ (cider--check-existing-session)
1351
+ (cider--update-jack-in-cmd)))
1352
+
1329
1353
;;;### autoload
1330
1354
(defun cider-jack-in-clj (params )
1331
1355
" Start an nREPL server for the current project and connect to it.
1332
1356
PARAMS is a plist optionally containing :project-dir and :jack-in-cmd.
1333
1357
With the prefix argument, allow editing of the jack in command; with a
1334
1358
double prefix prompt for all these parameters."
1335
1359
(interactive " P" )
1336
- (let ((params (thread-first
1337
- params
1338
- (cider--update-project-dir)
1339
- (cider--check-existing-session)
1340
- (cider--update-jack-in-cmd))))
1341
- (nrepl-start-server-process
1342
- (plist-get params :project-dir )
1343
- (plist-get params :jack-in-cmd )
1360
+ (let ((params (cider--update-params params)))
1361
+ (cider--start-nrepl-server
1362
+ params
1344
1363
(lambda (server-buffer )
1345
1364
(cider-connect-sibling-clj params server-buffer)))))
1346
1365
1366
+
1367
+ (defun cider-start-nrepl-server (params )
1368
+ " Start an nREPL server for the current project, but don't connect to it.
1369
+ PARAMS is a plist optionally containing :project-dir and :jack-in-cmd.
1370
+ With the prefix argument, allow editing of the start server in command; with a
1371
+ double prefix prompt for all these parameters."
1372
+ (interactive " P" )
1373
+ (cider--start-nrepl-server (cider--update-params params)))
1374
+
1347
1375
;;;### autoload
1348
1376
(defun cider-jack-in-cljs (params )
1349
1377
" Start an nREPL server for the current project and connect to it.
0 commit comments