fixes to eval

This commit is contained in:
David Botton 2022-08-01 14:34:24 -04:00
parent bcb011c6fb
commit 4d87d26ec8
4 changed files with 70 additions and 41 deletions

View file

@ -2110,9 +2110,11 @@ of controls and double click to select control."
(btn-del (create-img tool-bar :alt-text "delete" :url-src img-btn-del :class btn-class)) (btn-del (create-img tool-bar :alt-text "delete" :url-src img-btn-del :class btn-class))
(btn-undo (create-img tool-bar :alt-text "undo" :url-src img-btn-undo :class btn-class)) (btn-undo (create-img tool-bar :alt-text "undo" :url-src img-btn-undo :class btn-class))
(btn-redo (create-img tool-bar :alt-text "redo" :url-src img-btn-redo :class btn-class)) (btn-redo (create-img tool-bar :alt-text "redo" :url-src img-btn-redo :class btn-class))
(btn-test (create-img tool-bar :alt-text "eval" :url-src img-btn-test :class btn-class))
(btn-save (create-img tool-bar :alt-text "save" :url-src img-btn-save :class btn-class)) (btn-save (create-img tool-bar :alt-text "save" :url-src img-btn-save :class btn-class))
(btn-load (create-img tool-bar :alt-text "load" :url-src img-btn-load :class btn-class)) (btn-load (create-img tool-bar :alt-text "load" :url-src img-btn-load :class btn-class))
(spacer (create-span tool-bar :content "&nbsp"))
(btn-esel (create-button tool-bar :content "Eval Sel" :class (format nil "w3-tiny ~A" btn-class)))
(btn-test (create-button tool-bar :content "Eval" :class (format nil "w3-tiny ~A" btn-class)))
(content (center-panel box)) (content (center-panel box))
(ace (clog-ace:create-clog-ace-element content)) (ace (clog-ace:create-clog-ace-element content))
(status (create-div content :class "w3-tiny w3-border")) (status (create-div content :class "w3-tiny w3-border"))
@ -2129,18 +2131,22 @@ of controls and double click to select control."
(setf (advisory-title btn-del) "delete") (setf (advisory-title btn-del) "delete")
(setf (advisory-title btn-undo) "undo") (setf (advisory-title btn-undo) "undo")
(setf (advisory-title btn-redo) "redo") (setf (advisory-title btn-redo) "redo")
(setf (advisory-title btn-test) "evaluate")
(setf (advisory-title btn-save) "save") (setf (advisory-title btn-save) "save")
(setf (advisory-title btn-load) "load") (setf (advisory-title btn-load) "load")
(setf (advisory-title btn-esel) "evaluate selection")
(setf (advisory-title btn-test) "evaluate")
(setf (height btn-copy) "12px") (setf (height btn-copy) "12px")
(setf (height btn-paste) "12px") (setf (height btn-paste) "12px")
(setf (height btn-cut) "12px") (setf (height btn-cut) "12px")
(setf (height btn-del) "12px") (setf (height btn-del) "12px")
(setf (height btn-undo) "12px") (setf (height btn-undo) "12px")
(setf (height btn-redo) "12px") (setf (height btn-redo) "12px")
(setf (height btn-test) "12px")
(setf (height btn-save) "12px") (setf (height btn-save) "12px")
(setf (height btn-load) "12px") (setf (height btn-load) "12px")
(setf (height btn-esel) "12px")
(setf (height btn-test) "12px")
(setf (width btn-esel) "40px")
(setf (width btn-test) "40px")
(setf (positioning ace) :absolute) (setf (positioning ace) :absolute)
(setf (positioning status) :absolute) (setf (positioning status) :absolute)
(set-geometry ace :units "" :width "" :height "" (set-geometry ace :units "" :width "" :height ""
@ -2202,11 +2208,24 @@ of controls and double click to select control."
(set-on-click btn-redo (lambda (obj) (set-on-click btn-redo (lambda (obj)
(declare (ignore obj)) (declare (ignore obj))
(clog-ace:execute-command ace "redo"))) (clog-ace:execute-command ace "redo")))
(set-on-click btn-esel (lambda (obj)
(let ((val (clog-ace:selected-text ace)))
(unless (equal val "")
(let ((result (capture-eval val :clog-obj obj
:eval-in-package "CLOG-USER")))
(clog-web-alert (connection-body obj) "Result"
(format nil "~&result: ~A" result)
:color-class "w3-green"
:time-out 3))))))
(set-on-click btn-test (lambda (obj) (set-on-click btn-test (lambda (obj)
(alert-dialog obj (let ((val (text-value ace)))
(capture-eval (text-value ace)) (unless (equal val "")
:title "Eval Result"))))) (let ((result (capture-eval val :clog-obj obj
:eval-in-package "CLOG-USER")))
(clog-web-alert (connection-body obj) "Result"
(format nil "~&result: ~A" result)
:color-class "w3-green"
:time-out 3))))))))
(defun on-repl (obj) (defun on-repl (obj)
"Open quick start" "Open quick start"
(let* ((win (create-gui-window obj :title "CLOG Builder REPL" (let* ((win (create-gui-window obj :title "CLOG Builder REPL"
@ -2220,7 +2239,7 @@ of controls and double click to select control."
(let* ((app (connection-data-item obj "builder-app-data")) (let* ((app (connection-data-item obj "builder-app-data"))
(win (create-gui-window obj :title "ASDF System Browser" (win (create-gui-window obj :title "ASDF System Browser"
:top 40 :left 225 :top 40 :left 225
:width 592 :height 430 :width 592 :height 435
:client-movement t)) :client-movement t))
(panel (create-asdf-systems (window-content win)))) (panel (create-asdf-systems (window-content win))))
(when project (when project

View file

@ -1,4 +1,4 @@
<data id="I3868308897" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="22" 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="I3868359720" data-in-package="clog-tools" data-custom-slots="(classes :accessor classes) (fname :accessor fname) (state :accessor state :initform t)" data-clog-next-id="22" 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 CALLABLE
CLASS CLASS
COMPILER-MACRO COMPILER-MACRO
@ -43,18 +43,24 @@
(sys-browser-populate panel)))" placeholder="search" name=""><input type="BUTTON" value="Save" data-clog-type="fbutton" data-clog-name="save-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;" class="w3-small" disabled="disabled" data-on-click="(when (fname panel) (sys-browser-populate panel)))" placeholder="search" name=""><input type="BUTTON" value="Save" data-clog-type="fbutton" data-clog-name="save-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;" class="w3-small" disabled="disabled" data-on-click="(when (fname panel)
(write-file (text-value (src-box panel)) (fname panel)) (write-file (text-value (src-box panel)) (fname panel))
(setf (state panel) nil) (setf (state panel) nil)
(setf (disabledp (save-button panel)) t))"><input type="BUTTON" value="Eval File" data-clog-type="fbutton" data-clog-name="eval-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;" class="w3-small" data-on-click="(let ((val (text-value (src-box panel)))) (setf (disabledp (save-button panel)) t))"><input type="BUTTON" value="Eval File" data-clog-type="fbutton" data-clog-name="eval-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;" class="w3-small" data-on-click="(let ((pac (text-value (package-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(when (equalp &quot;All&quot; pac)
(setf pac &quot;CLOG-USER&quot;))
(unless (equal val &quot;&quot;) (unless (equal val &quot;&quot;)
(let ((result (capture-eval val :clog-obj panel (let ((result (capture-eval val :clog-obj panel
:eval-in-package (text-value (package-box panel))))) :eval-in-package (text-value (package-box panel)))))
(clog-web-alert (connection-body clog-obj) &quot;Result&quot; (clog-web-alert (connection-body panel) &quot;Result&quot;
(format nil &quot;~&amp;result: ~A&quot; result) (format nil &quot;~&amp;result: ~A&quot; result)
:color-class &quot;w3-green&quot; :color-class &quot;w3-green&quot;
:time-out 3))))" disabled="disabled"><input type="BUTTON" value="Eval Sel" data-clog-type="fbutton" data-clog-name="eval-sel-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;" class="w3-small" data-on-click="(let ((val (clog-ace:selected-text (src-box panel)))) :time-out 3))))" disabled="disabled"><input type="BUTTON" value="Eval Sel" data-clog-type="fbutton" data-clog-name="eval-sel-button" style="box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;" class="w3-small" data-on-click="(let ((pac (text-value (package-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(when (equalp &quot;All&quot; pac)
(setf pac &quot;CLOG-USER&quot;))
(unless (equal val &quot;&quot;) (unless (equal val &quot;&quot;)
(let ((result (capture-eval val :clog-obj panel (let ((result (capture-eval val :clog-obj panel
:eval-in-package (text-value (package-box panel))))) :eval-in-package pac)))
(clog-web-alert (connection-body clog-obj) &quot;Result&quot; (clog-web-alert (connection-body panel) &quot;Result&quot;
(format nil &quot;~&amp;result: ~A&quot; result) (format nil &quot;~&amp;result: ~A&quot; result)
:color-class &quot;w3-green&quot; :color-class &quot;w3-green&quot;
:time-out 3))))" placeholder="" disabled="disabled"><div data-clog-type="div" data-clog-name="file-name" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 27px; right: 220px;" class="w3-small">&nbsp;</div> :time-out 3))))" placeholder="" disabled="disabled"><div data-clog-type="div" data-clog-name="file-name" style="box-sizing: content-box; position: absolute; left: 5px; bottom: 27px; right: 220px;" class="w3-small">&nbsp;</div>

View file

@ -1,3 +1,4 @@
(in-package "CLOG-TOOLS") (in-package "CLOG-TOOLS")
(defclass sys-browser (clog:clog-panel) (defclass sys-browser (clog:clog-panel)
((file-name :reader file-name) ((file-name :reader file-name)
@ -15,48 +16,48 @@
(let ((panel (let ((panel
(change-class (change-class
(clog:create-div clog-obj :content (clog:create-div clog-obj :content
"<select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\" id=\"CLOGB3868308743\" 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=\"CLOGB3868308744\" data-clog-name=\"package-box\"></select><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\" class=\"w3-small\" id=\"CLOGB3868308745\" 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=\"CLOGB3868308746\" data-clog-name=\"doc-box\"></textarea><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 240px 5px 50px;\" id=\"CLOGB3868308747\" data-clog-name=\"src-box\"></div><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3868308748\" data-clog-name=\"status-box\">status</div><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3868308749\" 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=\"CLOGB3868308750\" 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=\"CLOGB3868308751\" data-clog-name=\"search-box\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-small\" disabled=\"disabled\" id=\"CLOGB3868308752\" data-clog-name=\"save-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-small\" disabled=\"disabled\" id=\"CLOGB3868308753\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-small\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3868308754\" data-clog-name=\"eval-sel-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 27px; right: 220px;\" class=\"w3-small\" id=\"CLOGB3868308755\" data-clog-name=\"file-name\">&nbsp;</div>" "<select style=\"box-sizing: content-box; position: absolute; left: 5px; top: 10px; width: 190px; height: 20px;\" id=\"CLOGB3868359570\" 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=\"CLOGB3868359571\" data-clog-name=\"package-box\"></select><select size=\"4\" style=\"box-sizing: content-box; position: absolute; left: 5px; top: 40px; right: 5px; height: 125px;\" class=\"w3-small\" id=\"CLOGB3868359572\" 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=\"CLOGB3868359573\" data-clog-name=\"doc-box\"></textarea><div class=\"ace_editor ace_hidpi ace-xcode ace-tm\" style=\"border: thin solid black; box-sizing: content-box; position: absolute; inset: 240px 5px 50px;\" id=\"CLOGB3868359574\" data-clog-name=\"src-box\"></div><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 5px; right: 5px;\" class=\"w3-tiny w3-border\" id=\"CLOGB3868359575\" data-clog-name=\"status-box\">status</div><label for=\"CLOGB386795982312\" style=\"box-sizing: content-box; position: absolute; left: 535px; top: 9px;\" class=\"\" id=\"CLOGB3868359576\" 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=\"CLOGB3868359577\" 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=\"CLOGB3868359578\" data-clog-name=\"search-box\"><input type=\"BUTTON\" value=\"Save\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 5px; bottom: 25px;\" class=\"w3-small\" disabled=\"disabled\" id=\"CLOGB3868359579\" data-clog-name=\"save-button\"><input type=\"BUTTON\" value=\"Eval File\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 75px; bottom: 25px;\" class=\"w3-small\" disabled=\"disabled\" id=\"CLOGB3868359580\" data-clog-name=\"eval-button\"><input type=\"BUTTON\" value=\"Eval Sel\" style=\"box-sizing: content-box; position: absolute; width: 50px; height: 15px; right: 145px; bottom: 25px;\" class=\"w3-small\" placeholder=\"\" disabled=\"disabled\" id=\"CLOGB3868359581\" data-clog-name=\"eval-sel-button\"><div style=\"box-sizing: content-box; position: absolute; left: 5px; bottom: 27px; right: 220px;\" class=\"w3-small\" id=\"CLOGB3868359582\" data-clog-name=\"file-name\">&nbsp;</div>"
:hidden hidden :class class :html-id html-id :hidden hidden :class class :html-id html-id
:auto-place auto-place) :auto-place auto-place)
'sys-browser))) 'sys-browser)))
(setf (slot-value panel 'file-name) (setf (slot-value panel 'file-name)
(attach-as-child clog-obj "CLOGB3868308755" :clog-type (attach-as-child clog-obj "CLOGB3868359582" :clog-type
'clog:clog-div :new-id t)) 'clog:clog-div :new-id t))
(setf (slot-value panel 'eval-sel-button) (setf (slot-value panel 'eval-sel-button)
(attach-as-child clog-obj "CLOGB3868308754" :clog-type (attach-as-child clog-obj "CLOGB3868359581" :clog-type
'clog:clog-form-element :new-id t)) 'clog:clog-form-element :new-id t))
(setf (slot-value panel 'eval-button) (setf (slot-value panel 'eval-button)
(attach-as-child clog-obj "CLOGB3868308753" :clog-type (attach-as-child clog-obj "CLOGB3868359580" :clog-type
'clog:clog-form-element :new-id t)) 'clog:clog-form-element :new-id t))
(setf (slot-value panel 'save-button) (setf (slot-value panel 'save-button)
(attach-as-child clog-obj "CLOGB3868308752" :clog-type (attach-as-child clog-obj "CLOGB3868359579" :clog-type
'clog:clog-form-element :new-id t)) 'clog:clog-form-element :new-id t))
(setf (slot-value panel 'search-box) (setf (slot-value panel 'search-box)
(attach-as-child clog-obj "CLOGB3868308751" :clog-type (attach-as-child clog-obj "CLOGB3868359578" :clog-type
'clog:clog-form-element :new-id t)) 'clog:clog-form-element :new-id t))
(setf (slot-value panel 'class-only) (setf (slot-value panel 'class-only)
(attach-as-child clog-obj "CLOGB3868308750" :clog-type (attach-as-child clog-obj "CLOGB3868359577" :clog-type
'clog:clog-form-element :new-id t)) 'clog:clog-form-element :new-id t))
(setf (slot-value panel 'label-class-only) (setf (slot-value panel 'label-class-only)
(attach-as-child clog-obj "CLOGB3868308749" :clog-type (attach-as-child clog-obj "CLOGB3868359576" :clog-type
'clog:clog-label :new-id t)) 'clog:clog-label :new-id t))
(setf (slot-value panel 'status-box) (setf (slot-value panel 'status-box)
(attach-as-child clog-obj "CLOGB3868308748" :clog-type (attach-as-child clog-obj "CLOGB3868359575" :clog-type
'clog:clog-div :new-id t)) 'clog:clog-div :new-id t))
(setf (slot-value panel 'src-box) (setf (slot-value panel 'src-box)
(attach-as-child clog-obj "CLOGB3868308747" :clog-type (attach-as-child clog-obj "CLOGB3868359574" :clog-type
'clog-ace:clog-ace-element :new-id t)) 'clog-ace:clog-ace-element :new-id t))
(setf (slot-value panel 'doc-box) (setf (slot-value panel 'doc-box)
(attach-as-child clog-obj "CLOGB3868308746" :clog-type (attach-as-child clog-obj "CLOGB3868359573" :clog-type
'clog:clog-text-area :new-id t)) 'clog:clog-text-area :new-id t))
(setf (slot-value panel 'class-box) (setf (slot-value panel 'class-box)
(attach-as-child clog-obj "CLOGB3868308745" :clog-type (attach-as-child clog-obj "CLOGB3868359572" :clog-type
'clog:clog-select :new-id t)) 'clog:clog-select :new-id t))
(setf (slot-value panel 'package-box) (setf (slot-value panel 'package-box)
(attach-as-child clog-obj "CLOGB3868308744" :clog-type (attach-as-child clog-obj "CLOGB3868359571" :clog-type
'clog:clog-select :new-id t)) 'clog:clog-select :new-id t))
(setf (slot-value panel 'type-box) (setf (slot-value panel 'type-box)
(attach-as-child clog-obj "CLOGB3868308743" :clog-type (attach-as-child clog-obj "CLOGB3868359570" :clog-type
'clog:clog-select :new-id t)) 'clog:clog-select :new-id t))
(let ((target (type-box panel))) (let ((target (type-box panel)))
(declare (ignorable target)) (declare (ignorable target))
@ -132,25 +133,28 @@
(clog:set-on-click (eval-button panel) (clog:set-on-click (eval-button panel)
(lambda (target) (lambda (target)
(declare (ignorable target)) (declare (ignorable target))
(let ((val (text-value (src-box panel)))) (let ((pac (text-value (package-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(when (equalp "All" pac) (setf pac "CLOG-USER"))
(unless (equal val "") (unless (equal val "")
(let ((result (let ((result
(capture-eval val :clog-obj panel (capture-eval val :clog-obj panel
:eval-in-package :eval-in-package
(text-value (package-box panel))))) (text-value (package-box panel)))))
(clog-web-alert (connection-body clog-obj) (clog-web-alert (connection-body panel) "Result"
"Result" (format nil "~&result: ~A" result) (format nil "~&result: ~A" result) :color-class
:color-class "w3-green" :time-out 3)))))) "w3-green" :time-out 3))))))
(clog:set-on-click (eval-sel-button panel) (clog:set-on-click (eval-sel-button panel)
(lambda (target) (lambda (target)
(declare (ignorable target)) (declare (ignorable target))
(let ((val (clog-ace:selected-text (src-box panel)))) (let ((pac (text-value (package-box panel)))
(val (clog-ace:selected-text (src-box panel))))
(when (equalp "All" pac) (setf pac "CLOG-USER"))
(unless (equal val "") (unless (equal val "")
(let ((result (let ((result
(capture-eval val :clog-obj panel (capture-eval val :clog-obj panel
:eval-in-package :eval-in-package pac)))
(text-value (package-box panel))))) (clog-web-alert (connection-body panel) "Result"
(clog-web-alert (connection-body clog-obj) (format nil "~&result: ~A" result) :color-class
"Result" (format nil "~&result: ~A" result) "w3-green" :time-out 3))))))
:color-class "w3-green" :time-out 3))))))
panel)) panel))