34 lines
950 B
Common Lisp
34 lines
950 B
Common Lisp
(uiop:define-package :sextant
|
|
(:use :cl)
|
|
(:export #:start-slynk
|
|
#:stop-slynk
|
|
#:slynkp))
|
|
(in-package :sextant)
|
|
|
|
(defun sym (symbol package)
|
|
(intern (symbol-name symbol) package))
|
|
|
|
(let (slynkp)
|
|
(defun start-slynk ()
|
|
(unless (find-package :slynk)
|
|
(require :ecl-quicklisp)
|
|
(funcall (sym 'quickload :ql) :slynk))
|
|
(funcall (sym 'create-server :slynk)
|
|
:interface "0.0.0.0" :port 4005 :dont-close t :style :spawn)
|
|
(setf slynkp t))
|
|
|
|
(defun stop-slynk ()
|
|
(when (find-package :slynk)
|
|
(funcall (sym 'stop-server :slynk) 4005)
|
|
(setf slynkp nil)))
|
|
|
|
(defun slynkp () slynkp))
|
|
|
|
(defparameter *current-file-pathname* nil)
|
|
(defparameter *current-file-gb* nil)
|
|
|
|
(defun open-file (filepath)
|
|
(let* ((pathname (parse-namestring filepath))
|
|
(gb (make-gap-buffer (read-file-into-string pathname))))
|
|
(setf *current-file-pathname* pathname
|
|
*current-file-gb* gb)))
|