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

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

[elpa] externals/engrave-faces 7fc664a 20/36: Add interactive commands f


From: ELPA Syncer
Subject: [elpa] externals/engrave-faces 7fc664a 20/36: Add interactive commands for backends
Date: Tue, 31 Aug 2021 01:57:27 -0400 (EDT)

branch: externals/engrave-faces
commit 7fc664a4f3add72070477b62374e8f7db4eee12d
Author: TEC <tec@tecosaur.com>
Commit: TEC <tec@tecosaur.com>

    Add interactive commands for backends
---
 engrave-faces-latex.el | 13 +++++--------
 engrave-faces.el       | 24 ++++++++++++++++++++----
 2 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/engrave-faces-latex.el b/engrave-faces-latex.el
index 5a3891e..5166309 100644
--- a/engrave-faces-latex.el
+++ b/engrave-faces-latex.el
@@ -91,15 +91,8 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-latex-output-style'."
   (while (re-search-forward "\n\\([[:space:]]*\\)\\(}+\\)" nil t)
     (replace-match "\\2\n\\1")))
 
-;;;###autoload
-(engrave-faces-define-backend "latex" ".tex" #'engrave-faces-latex-face-mapper)
-(add-hook 'engrave-faces-latex-after-hook 
#'engrave-faces-latex-post-processing)
-
-;;;###autoload
-(defun engrave-faces-latex-buffer-standalone ()
+(defun engrave-faces-latex-make-standalone ()
   "Export current buffer to a standalone LaTeX buffer."
-  (interactive)
-  (switch-to-buffer (engrave-faces-latex-buffer))
   (goto-char (point-min))
   (insert "\\documentclass{article}
 
@@ -117,5 +110,9 @@ See `engrave-faces-preset-styles' and 
`engrave-faces-latex-output-style'."
   (insert "\\end{Verbatim}
 \\end{document}"))
 
+;;;###autoload
+(engrave-faces-define-backend "latex" ".tex" #'engrave-faces-latex-face-mapper 
#'engrave-faces-latex-make-standalone #'latex-mode)
+(add-hook 'engrave-faces-latex-after-hook 
#'engrave-faces-latex-post-processing)
+
 (provide 'engrave-faces-latex)
 ;;; engrave-faces-latex.el ends here
diff --git a/engrave-faces.el b/engrave-faces.el
index a6014c9..8146fc2 100644
--- a/engrave-faces.el
+++ b/engrave-faces.el
@@ -42,12 +42,28 @@
 (defvar engrave-faces--backends nil)
 
 ;;;###autoload
-(defmacro engrave-faces-define-backend (name extension face-transformer)
+(defmacro engrave-faces-define-backend (name extension face-transformer 
&optional standalone-transformer view-setup)
   `(progn (add-to-list 'engrave-faces--backends
                        (list ,name :face-transformer ,face-transformer 
:extension ,extension))
-          (defun ,(intern (concat "engrave-faces-" name "-buffer")) ()
-            ,(concat "Convert buffer to " name " formatting")
-            (engrave-faces-buffer-1 ,name))
+          (defun ,(intern (concat "engrave-faces-" name "-buffer")) (&optional 
switch-to-result)
+            ,(concat "Convert buffer to " name " formatting.")
+            (interactive '(t))
+            (let ((buf (engrave-faces-buffer ,name)))
+              (when switch-to-result
+                (switch-to-buffer buf)
+                ,(when view-setup `(funcall ,view-setup)))
+              buf))
+          ,(when standalone-transformer
+             `(defun ,(intern (concat "engrave-faces-" name 
"-buffer-standalone")) (&optional switch-to-result)
+                (interactive '(t))
+                ,(concat "Export the current buffer to a standalone " name " 
buffer.")
+                (let ((buf (engrave-faces-buffer ,name)))
+                  (with-current-buffer buf
+                    (funcall ,standalone-transformer))
+                  (when switch-to-result
+                    (switch-to-buffer buf)
+                    ,(when view-setup `(funcall ,view-setup)))
+                  buf)))
           (defvar ,(intern (concat "engrave-faces-" name "-before-hook")) nil)
           (defvar ,(intern (concat "engrave-faces-" name "-after-hook")) nil)))
 



reply via email to

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