diff options
Diffstat (limited to 'vim/bundle/slimv/slime/start-swank.lisp')
-rw-r--r-- | vim/bundle/slimv/slime/start-swank.lisp | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/vim/bundle/slimv/slime/start-swank.lisp b/vim/bundle/slimv/slime/start-swank.lisp new file mode 100644 index 0000000..77bd3aa --- /dev/null +++ b/vim/bundle/slimv/slime/start-swank.lisp @@ -0,0 +1,39 @@ +;;; This file is intended to be loaded by an implementation to +;;; get a running swank server +;;; e.g. sbcl --load start-swank.lisp +;;; +;;; Default port is 4005 + +;;; For additional swank-side configurations see +;;; 6.2 section of the Slime user manual. +;;; +;;; Modified for Slimv: +;;; - don't close connection +;;; - pass swank port in environment variable + +(load (merge-pathnames "swank-loader.lisp" *load-truename*)) + +(swank-loader:init + :delete nil ; delete any existing SWANK packages + :reload nil ; reload SWANK, even if the SWANK package already exists + :load-contribs nil) ; load all contribs + +(defun my-getenv (name &optional default) + #+CMU + (let ((x (assoc name ext:*environment-list* + :test #'string=))) + (if x (cdr x) default)) + #-CMU + (or + #+Allegro (sys:getenv name) + #+CLISP (ext:getenv name) + #+ECL (si:getenv name) + #+SBCL (sb-unix::posix-getenv name) + #+LISPWORKS (lispworks:environment-variable name) + #+CCL (ccl::getenv name) + default)) + +(swank:create-server :port (parse-integer (my-getenv "SWANK_PORT" "4005")) + ;; if non-nil the connection won't be closed + ;; after connecting + :dont-close t) |