harbour-sextant/lisp/local-projects/sextant/sextant.lisp
Renaud Casenave-Péré e6b27769fa WIP Backup
2025-10-09 09:25:45 +02:00

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)))