emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/scad-mode 3c5fe2c615 28/47: Improve preview mode settings


From: ELPA Syncer
Subject: [nongnu] elpa/scad-mode 3c5fe2c615 28/47: Improve preview mode settings
Date: Sat, 12 Nov 2022 13:59:35 -0500 (EST)

branch: elpa/scad-mode
commit 3c5fe2c615df0472fb82a203105d5202d4a4daa7
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    Improve preview mode settings
---
 scad-mode.el | 69 ++++++++++++++++++++++++++++++++++++------------------------
 1 file changed, 42 insertions(+), 27 deletions(-)

diff --git a/scad-mode.el b/scad-mode.el
index c581b3cb2c..391841ba00 100644
--- a/scad-mode.el
+++ b/scad-mode.el
@@ -246,18 +246,20 @@ Key bindings:
                              (concat (file-name-base buffer-file-name) 
".stl"))))
                    " " (shell-quote-argument buffer-file-name))))
 
-(defvar-local scad--preview-buffer  nil)
-(defvar-local scad--preview-camera  nil)
-(defvar-local scad--preview-process nil)
-(defvar-local scad--preview-size    nil)
-(defvar-local scad--preview-status  nil)
-(defvar-local scad--preview-timer   nil)
-(put 'scad--preview-buffer  'permanent-local t)
-(put 'scad--preview-camera  'permanent-local t)
-(put 'scad--preview-process 'permanent-local t)
-(put 'scad--preview-size    'permanent-local t)
-(put 'scad--preview-status  'permanent-local t)
-(put 'scad--preview-timer   'permanent-local t)
+(defvar-local scad--preview-buffer       nil)
+(defvar-local scad--preview-camera       nil)
+(defvar-local scad--preview-process      nil)
+(defvar-local scad--preview-size         nil)
+(defvar-local scad--preview-mode-status nil)
+(defvar-local scad--preview-mode-camera nil)
+(defvar-local scad--preview-timer       nil)
+(put 'scad--preview-buffer      'permanent-local t)
+(put 'scad--preview-camera      'permanent-local t)
+(put 'scad--preview-process     'permanent-local t)
+(put 'scad--preview-size        'permanent-local t)
+(put 'scad--preview-mode-status 'permanent-local t)
+(put 'scad--preview-mode-camera 'permanent-local t)
+(put 'scad--preview-timer       'permanent-local t)
 
 (defvar scad-preview-mode-map
   (let ((map (make-sparse-keymap)))
@@ -276,12 +278,11 @@ Key bindings:
     map)
   "Keymap for SCAD preview buffers.")
 
-(defun scad--preview-status (&optional status)
+(defun scad--preview-status (status)
   "Update mode line of preview buffer with STATUS."
-  (setq scad--preview-status
-        (concat (apply #'format "[%d %d %d] [%d %d %d] %d"
-                       scad--preview-camera)
-                " " status))
+  (setq scad--preview-mode-camera (apply #'format "[%d %d %d] [%d %d %d] %d"
+                                         scad--preview-camera)
+        scad--preview-mode-status status)
   (force-mode-line-update))
 
 (defun scad-preview ()
@@ -320,7 +321,7 @@ Key bindings:
   "Render image from current buffer."
   (when (buffer-live-p scad--preview-buffer)
     (scad--preview-kill)
-    (scad--preview-status "Rendering...")
+    (scad--preview-status "Render")
     (let* ((infile (make-temp-file "scad-preview-" nil ".scad"))
            (outfile (concat infile ".png"))
            (buffer (current-buffer)))
@@ -339,13 +340,14 @@ Key bindings:
                                         (and (file-exists-p outfile)
                                              (> (file-attribute-size 
(file-attributes outfile)) 0))))
                                  (scad--preview-status "Error")
-                               (fundamental-mode)
-                               (erase-buffer)
-                               (insert-file-contents outfile)
-                               (let ((inhibit-message t)
-                                     (message-log-max nil))
-                                 (scad-preview-mode))
-                               (scad--preview-status))))
+                               (with-silent-modifications
+                                 (fundamental-mode)
+                                 (erase-buffer)
+                                 (insert-file-contents outfile)
+                                 (let ((inhibit-message t)
+                                       (message-log-max nil))
+                                   (scad-preview-mode)))
+                               (scad--preview-status ""))))
                          (delete-file outfile)
                          (delete-file infile))
              :command (list scad-command
@@ -372,8 +374,21 @@ Key bindings:
 
 (define-derived-mode scad-preview-mode image-mode "SCAD Preview"
  "Major mode for SCAD preview buffers."
- (setq mode-line-format '("" mode-line-buffer-identification (" " 
scad--preview-status))
-       revert-buffer-function #'scad--preview-reset))
+ (setq buffer-read-only t
+       line-spacing nil
+       cursor-type nil
+       cursor-in-non-selected-windows nil
+       left-fringe-width 1
+       right-fringe-width 1
+       left-margin-width 0
+       right-margin-width 0
+       truncate-lines nil
+       show-trailing-whitespace nil
+       display-line-numbers nil
+       fringe-indicator-alist '((truncation . nil))
+       revert-buffer-function #'scad--preview-reset
+       mode-line-position '(" " scad--preview-mode-camera)
+       mode-line-process '(" " scad--preview-mode-status)))
 
 (defun scad--preview-reset (&rest _)
   "Reset camera parameters and refresh."



reply via email to

[Prev in Thread] Current Thread [Next in Thread]