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