eval form fix for quotes

This commit is contained in:
David Botton 2022-08-05 13:04:53 -04:00
parent 4fc57d42bb
commit 9c3274fca4
5 changed files with 41 additions and 36 deletions

View file

@ -1,6 +1,6 @@
<data id="I3868568770" data-in-package="clog-tools" data-custom-slots="" data-clog-next-id="4" data-clog-title="clog-builder-repl"></data><div style="--pixel-density:0.994318; --char-width:7.24432; box-sizing: content-box; position: absolute; inset: 30px 0px 0px;" class="terminal" data-clog-type="clog-terminal" data-clog-composite-control="t" data-clog-terminal-prompt="> " data-clog-terminal-greetings="CLOG Builder REPL" data-clog-name="terminal" data-on-command="(multiple-value-bind (result new-package)
<data id="I3868707672" data-in-package="clog-tools" data-custom-slots="" data-clog-next-id="4" data-clog-title="clog-builder-repl"></data><input type="TEXT" value="clog-user" data-clog-type="input" data-clog-name="package-div" style="box-sizing: content-box; position: absolute; inset: 0px 0px 338.5px; height: 25px;" placeholder="Current Package" class="w3-black"><div style="--pixel-density:1; --char-width:7.20312; box-sizing: content-box; position: absolute; inset: 30px 0px 0px;" class="terminal" data-clog-type="clog-terminal" data-clog-composite-control="t" data-clog-terminal-prompt="> " data-clog-terminal-greetings="CLOG Builder REPL" data-clog-name="terminal" data-on-command="(multiple-value-bind (result new-package)
(capture-eval data :clog-obj panel
: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))"></div><input type="TEXT" value="clog-user" data-clog-type="input" data-clog-name="package-div" style="box-sizing: content-box; position: absolute; inset: 0px 0px 338.5px; height: 25px;" placeholder="Current Package" class="w3-black">
(clog-terminal:echo target result))"></div>

View file

@ -1,21 +1,21 @@
(in-package "CLOG-TOOLS")
(in-package :clog-tools)
(defclass clog-builder-repl (clog:clog-panel)
((package-div :reader package-div) (terminal :reader terminal)))
((terminal :reader terminal) (package-div :reader package-div)))
(defun create-clog-builder-repl
(clog-obj &key (hidden nil) (class nil) (html-id nil) (auto-place t))
(let ((panel
(change-class
(clog:create-div clog-obj :content
"<div style=\"--pixel-density:0.994318; --char-width:7.24432; box-sizing: content-box; position: absolute; inset: 30px 0px 0px;\" class=\"terminal\" id=\"CLOGB3868568690\" data-clog-name=\"terminal\"></div><input type=\"TEXT\" value=\"clog-user\" style=\"box-sizing: content-box; position: absolute; inset: 0px 0px 338.5px; height: 25px;\" placeholder=\"Current Package\" class=\"w3-black\" id=\"CLOGB3868568691\" data-clog-name=\"package-div\">"
"<input type=\"TEXT\" value=\"clog-user\" style=\"box-sizing: content-box; position: absolute; inset: 0px 0px 338.5px; height: 25px;\" placeholder=\"Current Package\" class=\"w3-black\" id=\"CLOGB3868707662\" data-clog-name=\"package-div\"><div style=\"--pixel-density:1; --char-width:7.20312; box-sizing: content-box; position: absolute; inset: 30px 0px 0px;\" class=\"terminal\" id=\"CLOGB3868707661\" data-clog-name=\"terminal\"></div>"
:hidden hidden :class class :html-id html-id
:auto-place auto-place)
'clog-builder-repl)))
(setf (slot-value panel 'package-div)
(attach-as-child clog-obj "CLOGB3868568691" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'terminal)
(attach-as-child clog-obj "CLOGB3868568690" :clog-type
(attach-as-child clog-obj "CLOGB3868707661" :clog-type
'clog-terminal:clog-terminal-element :new-id t))
(setf (slot-value panel 'package-div)
(attach-as-child clog-obj "CLOGB3868707662" :clog-type
'clog:clog-form-element :new-id t))
(let ((target (terminal panel)))
(declare (ignorable target))
(clog-terminal:attach-clog-terminal target :greetings

View file

@ -146,6 +146,12 @@
(format nil "~&Error: ~A" condition)
:time-out 3))
(format t "~&Error: ~A" condition)))
(unless (stringp form)
(let ((r (make-array '(0) :element-type 'base-char
:fill-pointer 0 :adjustable t)))
(with-output-to-string (s r)
(print form s))
(setf form r)))
(let* ((*standard-output* stream)
(*error-output* stream)
(*debugger-hook* #'my-debugger)
@ -1212,7 +1218,7 @@ of controls and double click to select control."
(setf pk (second lf)))
(when (> cp p) (return lf)))
(when lf
(let ((result (capture-eval (format nil "~A" lf)
(let ((result (capture-eval lf
:clog-obj (connection-body editor)
:eval-in-package (format nil "~A" pk))))
(clog-web-alert (connection-body editor) "Result"
@ -2211,6 +2217,7 @@ of controls and double click to select control."
(status (create-div content :class "w3-tiny w3-border"))
(lisp-file t)
(file-name ""))
(declare (ignore spacer))
(set-on-window-focus win
(lambda (obj)
(declare (ignore obj))
@ -2264,8 +2271,7 @@ of controls and double click to select control."
(when fname
(setf file-name fname)
(setf (window-title win) fname)
(let ((c (or (read-file fname) ""))
loc)
(let ((c (or (read-file fname) "")))
(cond ((or (equalp (pathname-type fname) "lisp")
(equalp (pathname-type fname) "asd"))
(setf (clog-ace:mode ace) "ace/mode/lisp")
@ -2318,7 +2324,6 @@ of controls and double click to select control."
(clog-ace::js-ace ace)))
:junk-allowed t))
(tv (text-value ace))
(pk (text-value pac-line))
(lf nil)
(cp 0))
(loop
@ -2326,9 +2331,9 @@ of controls and double click to select control."
(unless lf (return nil))
(when (> cp p) (return lf)))
(when lf
(let ((result (capture-eval (format nil "~A" lf)
(let ((result (capture-eval lf
:clog-obj (connection-body obj)
:eval-in-package (format nil "~A" pk))))
:eval-in-package (text-value pac-line))))
(clog-web-alert (connection-body obj) "Result"
(format nil "~&result: ~A" result)
:color-class "w3-green"

View file

@ -1,4 +1,4 @@
<data id="I3868699706" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="24" data-clog-title="sys-browser"></data><select data-clog-type="dropdown" data-clog-name="type-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;" data-on-create="(add-select-options target '(ALIEN-TYPE
<data id="I3868704998" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="24" data-clog-title="sys-browser"></data><select data-clog-type="dropdown" data-clog-name="type-box" style="box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;" data-on-create="(add-select-options target '(ALIEN-TYPE
CALLABLE
CLASS
COMPILER-MACRO
@ -55,7 +55,7 @@
(unless lf (return nil))
(when (> cp p) (return lf)))
(when lf
(let ((result (capture-eval (format nil &quot;~A&quot; lf)
(let ((result (capture-eval lf
:clog-obj (connection-body panel)
:eval-in-package (format nil &quot;~A&quot; pk))))
(clog-web-alert (connection-body panel) &quot;Result&quot;

View file

@ -17,54 +17,54 @@
(let ((panel
(change-class
(clog:create-div clog-obj :content
"<select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\" id=\"CLOGB3868698944\" data-clog-name=\"type-box\"></select><select style=\"box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;\" id=\"CLOGB3868698945\" data-clog-name=\"package-box\"></select><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3868698946\" data-clog-name=\"label-class-only\">pkg only</label><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\" checked=\"checked\" id=\"CLOGB3868698947\" data-clog-name=\"class-only\"><input type=\"TEXT\" value=\"\" style=\"box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;\" placeholder=\"search\" name=\"\" id=\"CLOGB3868698948\" data-clog-name=\"search-box\"><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\" class=\"w3-small\" id=\"CLOGB3868698949\" data-clog-name=\"class-box\"></select><textarea name=\"\" cols=\"20\" rows=\"2\" style=\"box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;\" class=\"&nbsp;w3-small\" id=\"CLOGB3868698950\" data-clog-name=\"doc-box\"></textarea><input type=\"TEXT\" value=\"clog-user\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;\" placeholder=\"Current Package\" class=\"w3-small\" id=\"CLOGB3868698951\" data-clog-name=\"pac-box\"><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;\" id=\"CLOGB3868698952\" data-clog-name=\"src-box\"></div><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 27px; right: 290px;\" class=\"w3-small\" id=\"CLOGB3868698953\" data-clog-name=\"file-name\">&nbsp;</div><input type=\"BUTTON\" value=\"Eval Form\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3868698954\" data-clog-name=\"eval-form-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-tiny\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3868698955\" data-clog-name=\"eval-sel-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3868698956\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3868698957\" data-clog-name=\"save-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3868698958\" data-clog-name=\"status-box\">status</div>"
"<select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\" id=\"CLOGB3868704965\" data-clog-name=\"type-box\"></select><select style=\"box-sizing: content-box; position: absolute; left: 205px; top: 10px; width: 300px; height: 20px; bottom: 335.028px;\" id=\"CLOGB3868704966\" data-clog-name=\"package-box\"></select><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3868704967\" data-clog-name=\"label-class-only\">pkg only</label><input type=\"CHECKBOX\" value=\"\" style=\"box-sizing: content-box; position: absolute; left: 516px; top: 15px;\" checked=\"checked\" id=\"CLOGB3868704968\" data-clog-name=\"class-only\"><input type=\"TEXT\" value=\"\" style=\"box-sizing: content-box; position: absolute; inset: 7px 5px 332.045px 605px; height: 22px;\" placeholder=\"search\" name=\"\" id=\"CLOGB3868704969\" data-clog-name=\"search-box\"><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\" class=\"w3-small\" id=\"CLOGB3868704970\" data-clog-name=\"class-box\"></select><textarea name=\"\" cols=\"20\" rows=\"2\" style=\"box-sizing: content-box; position: absolute; right: 5px; height: 50px; resize: none; min-width: 0px; top: 175px; left: 5px;\" class=\"&nbsp;w3-small\" id=\"CLOGB3868704971\" data-clog-name=\"doc-box\"></textarea><input type=\"TEXT\" value=\"clog-user\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 239px; right: 5px; height: 18px;\" placeholder=\"Current Package\" class=\"w3-small\" id=\"CLOGB3868704972\" data-clog-name=\"pac-box\"><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 273px 5px 50px;\" id=\"CLOGB3868704973\" data-clog-name=\"src-box\"></div><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 27px; right: 290px;\" class=\"w3-small\" id=\"CLOGB3868704974\" data-clog-name=\"file-name\">&nbsp;</div><input type=\"BUTTON\" value=\"Eval Form\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 215px; bottom: 24px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3868704975\" data-clog-name=\"eval-form-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-tiny\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3868704976\" data-clog-name=\"eval-sel-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3868704977\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-tiny\" disabled=\"disabled\" id=\"CLOGB3868704978\" data-clog-name=\"save-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3868704979\" data-clog-name=\"status-box\">status</div>"
:hidden hidden :class class :html-id html-id
:auto-place auto-place)
'sys-browser)))
(setf (slot-value panel 'status-box)
(attach-as-child clog-obj "CLOGB3868698958" :clog-type
(attach-as-child clog-obj "CLOGB3868704979" :clog-type
'clog:clog-div :new-id t))
(setf (slot-value panel 'save-button)
(attach-as-child clog-obj "CLOGB3868698957" :clog-type
(attach-as-child clog-obj "CLOGB3868704978" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-button)
(attach-as-child clog-obj "CLOGB3868698956" :clog-type
(attach-as-child clog-obj "CLOGB3868704977" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-sel-button)
(attach-as-child clog-obj "CLOGB3868698955" :clog-type
(attach-as-child clog-obj "CLOGB3868704976" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-form-button)
(attach-as-child clog-obj "CLOGB3868698954" :clog-type
(attach-as-child clog-obj "CLOGB3868704975" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'file-name)
(attach-as-child clog-obj "CLOGB3868698953" :clog-type
(attach-as-child clog-obj "CLOGB3868704974" :clog-type
'clog:clog-div :new-id t))
(setf (slot-value panel 'src-box)
(attach-as-child clog-obj "CLOGB3868698952" :clog-type
(attach-as-child clog-obj "CLOGB3868704973" :clog-type
'clog-ace:clog-ace-element :new-id t))
(setf (slot-value panel 'pac-box)
(attach-as-child clog-obj "CLOGB3868698951" :clog-type
(attach-as-child clog-obj "CLOGB3868704972" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'doc-box)
(attach-as-child clog-obj "CLOGB3868698950" :clog-type
(attach-as-child clog-obj "CLOGB3868704971" :clog-type
'clog:clog-text-area :new-id t))
(setf (slot-value panel 'class-box)
(attach-as-child clog-obj "CLOGB3868698949" :clog-type
(attach-as-child clog-obj "CLOGB3868704970" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'search-box)
(attach-as-child clog-obj "CLOGB3868698948" :clog-type
(attach-as-child clog-obj "CLOGB3868704969" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'class-only)
(attach-as-child clog-obj "CLOGB3868698947" :clog-type
(attach-as-child clog-obj "CLOGB3868704968" :clog-type
'clog:clog-form-element :new-id t))
(setf (slot-value panel 'label-class-only)
(attach-as-child clog-obj "CLOGB3868698946" :clog-type
(attach-as-child clog-obj "CLOGB3868704967" :clog-type
'clog:clog-label :new-id t))
(setf (slot-value panel 'package-box)
(attach-as-child clog-obj "CLOGB3868698945" :clog-type
(attach-as-child clog-obj "CLOGB3868704966" :clog-type
'clog:clog-select :new-id t))
(setf (slot-value panel 'type-box)
(attach-as-child clog-obj "CLOGB3868698944" :clog-type
(attach-as-child clog-obj "CLOGB3868704965" :clog-type
'clog:clog-select :new-id t))
(let ((target (type-box panel)))
(declare (ignorable target))
@ -151,9 +151,9 @@
(when (> cp p) (return lf)))
(when lf
(let ((result
(capture-eval (format nil "~A" lf)
:clog-obj (connection-body panel)
:eval-in-package (format nil "~A" pk))))
(capture-eval lf :clog-obj
(connection-body panel) :eval-in-package
(format nil "~A" pk))))
(clog-web-alert (connection-body panel) "Result"
(format nil "~&result: ~A" result) :color-class
"w3-green" :time-out 3))))))