mirror of
https://github.com/rabbibotton/clog.git
synced 2025-12-06 02:30:42 -08:00
private repl console
This commit is contained in:
parent
16c605aad1
commit
b4ffb58a3f
4 changed files with 30 additions and 8 deletions
|
|
@ -18,8 +18,8 @@
|
|||
;;;;;;;;;;;;;;;;;;;;;;;;
|
||||
|
||||
(defclass console-out-stream (trivial-gray-streams:fundamental-character-output-stream)
|
||||
((clog-obj :reader clog-obj :initarg :clog-obj)
|
||||
(win :accessor win :initform nil)
|
||||
((clog-obj :reader clog-obj :initarg :clog-obj)
|
||||
(win :accessor win :initform nil :initarg :win)
|
||||
(ace :accessor ace :initform nil)
|
||||
(col :accessor col :initform 0))
|
||||
(:documentation "console-in-stream and console-out-stream when used together
|
||||
|
|
@ -83,6 +83,7 @@ provide an interactive console.)"))
|
|||
(capture-result-form "=>~A~%")
|
||||
(eval-form "~A~%=>~A~%")
|
||||
(clog-obj nil)
|
||||
(private-console-win nil)
|
||||
(eval-in-package "clog-user"))
|
||||
"Capture lisp evaluaton of FORM."
|
||||
(let (console
|
||||
|
|
@ -116,7 +117,7 @@ provide an interactive console.)"))
|
|||
(setf form r)))
|
||||
(setf console (if capture-console
|
||||
stream
|
||||
(make-instance 'console-out-stream :clog-obj clog-obj)))
|
||||
(make-instance 'console-out-stream :clog-obj clog-obj :win private-console-win)))
|
||||
(let* ((*query-io* (make-two-way-stream in-stream out-stream))
|
||||
(*standard-output* console)
|
||||
(*standard-input* (make-instance 'console-in-stream :clog-obj clog-obj))
|
||||
|
|
|
|||
|
|
@ -1,5 +1,15 @@
|
|||
(in-package :clog-tools)
|
||||
|
||||
(defun on-open-repl-console (obj repl)
|
||||
(let* ((app (connection-data-item obj "builder-app-data"))
|
||||
(win (on-open-file obj :title "CLOG REPL Console"
|
||||
:editor-use-console-for-evals t)))
|
||||
(set-on-window-can-close win (lambda (obj)
|
||||
(declare (ignore obj))
|
||||
(window-focus repl)
|
||||
nil))
|
||||
win))
|
||||
|
||||
(defun on-repl (obj)
|
||||
"Open a REPL"
|
||||
(let* ((*default-title-class* *builder-title-class*)
|
||||
|
|
@ -8,6 +18,13 @@
|
|||
:top 40 :left 225
|
||||
:width 600 :height 400
|
||||
:client-movement *client-side-movement*)))
|
||||
(when *clog-repl-private-console*
|
||||
(let ((pcon (on-open-repl-console obj win)))
|
||||
(setf (window-param win) pcon)
|
||||
(set-on-window-close win (lambda (obj)
|
||||
(declare (ignore obj))
|
||||
(window-close pcon))))
|
||||
(window-focus win))
|
||||
(set-geometry (create-clog-builder-repl (window-content win))
|
||||
:units "%" :width 100 :height 100)))
|
||||
|
||||
|
|
@ -30,10 +47,12 @@
|
|||
(setf clog-user::*body* (window-content win))))
|
||||
(t
|
||||
(multiple-value-bind (result new-package)
|
||||
(capture-eval data :clog-obj panel
|
||||
:capture-console (not *clog-repl-use-console*)
|
||||
:capture-result (not *clog-repl-send-result-to-console*)
|
||||
:eval-in-package (text-value (package-div panel)))
|
||||
(capture-eval data :clog-obj panel
|
||||
:private-console-win (when *clog-repl-private-console*
|
||||
(window-param (parent (parent panel))))
|
||||
:capture-console (not *clog-repl-use-console*)
|
||||
:capture-result (not *clog-repl-send-result-to-console*)
|
||||
:eval-in-package (text-value (package-div panel)))
|
||||
(setf (text-value (package-div panel))
|
||||
(string-downcase (package-name new-package)))
|
||||
(clog-terminal:echo target result)))))
|
||||
(clog-terminal:echo target result)))))
|
||||
|
|
|
|||
|
|
@ -47,6 +47,7 @@
|
|||
(defparameter *clog-repl-use-console* t)
|
||||
(defparameter *clog-repl-open-console-on-start* nil)
|
||||
(defparameter *clog-repl-send-result-to-console* nil)
|
||||
(defparameter *clog-repl-private-console* nil)
|
||||
|
||||
;; Builder Look and Feel
|
||||
|
||||
|
|
|
|||
1
tools/preferences.lisp.sample
vendored
1
tools/preferences.lisp.sample
vendored
|
|
@ -55,6 +55,7 @@
|
|||
(setf *clog-repl-use-console* t)
|
||||
(setf *clog-repl-open-console-on-start* nil)
|
||||
(setf *clog-repl-send-result-to-console* nil)
|
||||
(setf *clog-repl-private-console* nil)
|
||||
|
||||
;; Builder Look and Feel
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue