branch: elpa/scad-mode
commit 7f5b0e34885346a18b381ac0dc457e0f347a7187
Author: Daniel Mendler <m...@daniel-mendler.de>
Commit: Daniel Mendler <m...@daniel-mendler.de>

    Extract scad--preview-colorscheme
---
 ob-scad.el   |  5 +++--
 scad-mode.el | 17 ++++++++++-------
 2 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/ob-scad.el b/ob-scad.el
index f86a0d5fdd..b5a0531832 100644
--- a/ob-scad.el
+++ b/ob-scad.el
@@ -24,7 +24,7 @@
 (require 'ob)
 
 (defvar scad-command)
-(defvar scad-preview-colorscheme)
+(declare-function scad--preview-colorscheme "ext:scad-mode")
 (defvar scad-preview-projection)
 (defvar scad-preview-view)
 
@@ -43,6 +43,7 @@
 
 (defun org-babel-execute:scad (body params)
   "Evaluate BODY with `scad-command' given PARAMS."
+  (require 'scad-mode)
   (let* ((outfile (or (alist-get :file params)
                       (error "Scad code block requires :file header 
argument")))
          (infile (org-babel-temp-file "scad-")))
@@ -55,7 +56,7 @@
                        (format "--projection=%s"
                                (alist-get :projection params 
scad-preview-projection))
                        (format "--colorscheme=%s"
-                               (alist-get :colorscheme params 
scad-preview-colorscheme))
+                               (alist-get :colorscheme params 
(scad--preview-colorscheme)))
                        (format "--view=%s" (or (alist-get :view params)
                                                (mapconcat #'identity 
scad-preview-view ",")))
                        (when-let (camera (alist-get :camera params))
diff --git a/scad-mode.el b/scad-mode.el
index 580bec5236..64205f17e2 100644
--- a/scad-mode.el
+++ b/scad-mode.el
@@ -293,6 +293,15 @@ Options are .stl, .off, .amf, .3mf, .csg, .dxf, .svg, 
.pdf, .png,
                      (setq scad--preview-timer nil)
                      (scad--preview-render))))))))))
 
+(defun scad--preview-colorscheme ()
+  "Color scheme depending on Emacs theme."
+  (cond
+   ((stringp scad-preview-colorscheme)
+    scad-preview-colorscheme)
+   ((color-dark-p (color-name-to-rgb (face-background 'default)))
+    (cdr scad-preview-colorscheme))
+   (t (car scad-preview-colorscheme))))
+
 ;; Based on https://github.com/zk-phi/scad-preview
 (defun scad--preview-render ()
   "Render image from current buffer."
@@ -354,13 +363,7 @@ Options are .stl, .off, .amf, .3mf, .csg, .dxf, .svg, 
.pdf, .png,
                               (mapconcat #'identity scad-preview-view ","))
                       (format "--camera=%s"
                               (mapconcat #'number-to-string 
scad-preview-camera ","))
-                      (format "--colorscheme=%s"
-                              (cond
-                               ((stringp scad-preview-colorscheme)
-                                scad-preview-colorscheme)
-                               ((color-dark-p (color-name-to-rgb 
(face-background 'default)))
-                                (cdr scad-preview-colorscheme))
-                               (t (car scad-preview-colorscheme))))
+                      (format "--colorscheme=%s" (scad--preview-colorscheme))
                       infile)
                 scad-extra-args)))))))
 

Reply via email to