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

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

[nongnu] elpa/zig-mode 4356724434 3/3: Merge pull request #51 from joach


From: ELPA Syncer
Subject: [nongnu] elpa/zig-mode 4356724434 3/3: Merge pull request #51 from joachimschmidt557/reformatter
Date: Sun, 1 Jan 2023 03:59:47 -0500 (EST)

branch: elpa/zig-mode
commit 4356724434037504d9b823220070a98d921bad3e
Merge: 9cff802457 9980eabb99
Author: Joachim Schmidt <joachim.schmidt557@outlook.com>
Commit: GitHub <noreply@github.com>

    Merge pull request #51 from joachimschmidt557/reformatter
    
    Switch formatting to reformatter.el
---
 run_tests.sh | 15 ++++++++++++++-
 zig-mode.el  | 62 ++++++++++++++----------------------------------------------
 2 files changed, 28 insertions(+), 49 deletions(-)

diff --git a/run_tests.sh b/run_tests.sh
index bbb57f0e24..cb504585d8 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -6,4 +6,17 @@ else
     echo "Running with EMACS=${EMACS}"
 fi
 
-${EMACS} --batch -l zig-mode.el -l tests.el -f ert-run-tests-batch-and-exit
+# From https://github.com/jcollard/elm-mode/blob/master/Makefile
+NEEDED_PACKAGES="reformatter"
+INIT_PACKAGES="(progn \
+  (require 'package) \
+  (push '(\"melpa\" . \"https://melpa.org/packages/\";) package-archives) \
+  (package-initialize) \
+  (dolist (pkg '(${NEEDED_PACKAGES})) \
+    (unless (package-installed-p pkg) \
+      (unless (assoc pkg package-archive-contents) \
+        (package-refresh-contents)) \
+      (package-install pkg))) \
+  )"
+
+${EMACS} --eval "${INIT_PACKAGES}" --batch -l zig-mode.el -l tests.el -f 
ert-run-tests-batch-and-exit
diff --git a/zig-mode.el b/zig-mode.el
index 782c80d0e8..32dc4c517b 100644
--- a/zig-mode.el
+++ b/zig-mode.el
@@ -3,7 +3,7 @@
 ;; Version: 0.0.8
 ;; Author: Andrea Orru <andreaorru1991@gmail.com>, Andrew Kelley 
<superjoe30@gmail.com>
 ;; Keywords: zig, languages
-;; Package-Requires: ((emacs "24.3"))
+;; Package-Requires: ((emacs "24.3") (reformatter "0.6"))
 ;; Homepage: https://github.com/zig-lang/zig-mode
 
 ;; This file is free software; you can redistribute it and/or modify
@@ -27,6 +27,8 @@
 
 ;;; Code:
 
+(require 'reformatter)
+
 (defgroup zig-mode nil
   "Support for Zig code."
   :link '(url-link "https://ziglang.org/";)
@@ -52,7 +54,7 @@
 
 (defcustom zig-zig-bin "zig"
   "Path to zig executable."
-  :type 'string
+  :type 'file
   :safe #'stringp
   :group 'zig-mode)
 
@@ -79,14 +81,6 @@ If given a SOURCE, execute the CMD on it."
            args)))
     (compilation-start (concat zig-zig-bin " " cmd " " cmd-args))))
 
-;;;###autoload
-(defun zig-toggle-format-on-save ()
-  "Switch format before save on current buffer."
-  (interactive)
-  (if zig-format-on-save
-      (setq-local zig-format-on-save nil)
-    (setq-local zig-format-on-save t)))
-
 ;;;###autoload
 (defun zig-compile ()
   "Compile using `zig build`."
@@ -123,42 +117,17 @@ If given a SOURCE, execute the CMD on it."
   (interactive)
   (zig--run-cmd "run" (buffer-file-name) "-O" zig-run-optimization-mode))
 
-(defvar zig-return-to-buffer-after-format nil
-  "Enable zig-format-buffer to return to file buffer after fmt is done.")
+;; zig fmt
 
-(defvar zig-ansi-color-for-format-errors nil
-  "Enable ansi-coloration of error output from zig fmt.")
+(reformatter-define zig-format
+  :program zig-zig-bin
+  :args '("fmt" "--stdin")
+  :group 'zig-mode
+  :lighter " ZigFmt")
 
-;;;###autoload
-(defun zig-format-buffer ()
-  "Format the current buffer using the zig fmt."
-  (interactive)
-  (let ((fmt-buffer-name "*zig-fmt*")
-        (file-buffer (current-buffer)))
-    ;; If we have an old *zig-fmt* buffer, we want to kill
-    ;; it and start a new one to show the new errors
-    (when (get-buffer fmt-buffer-name)
-      (switch-to-buffer-other-window fmt-buffer-name)
-      (quit-window)
-      (kill-buffer fmt-buffer-name))
-    (let ((fmt-buffer (get-buffer-create fmt-buffer-name)))
-      (set-process-sentinel
-       (start-process "zig-fmt"
-                      fmt-buffer
-                      zig-zig-bin
-                      "fmt"
-                      (buffer-file-name))
-       (lambda (process _e)
-         (if (> (process-exit-status process) 0)
-             (when zig-format-show-buffer
-               (progn
-                 (pop-to-buffer fmt-buffer)
-                 (when zig-ansi-color-for-format-errors
-                   (ansi-color-apply-on-region (point-min) (point-max)))
-                 (compilation-mode)
-                 (when zig-return-to-buffer-after-format
-                   (pop-to-buffer file-buffer))))
-           (revert-buffer :ignore-auto :noconfirm)))))))
+;;;###autoload (autoload 'zig-format-buffer "current-file" nil t)
+;;;###autoload (autoload 'zig-format-region "current-file" nil t)
+;;;###autoload (autoload 'zig-format-on-save-mode "current-file" nil t)
 
 (defun zig-re-word (inner)
   "Construct a regular expression for the word INNER."
@@ -545,11 +514,8 @@ This is written mainly to be used as 
`end-of-defun-function' for Zig."
                              nil nil nil nil
                              (font-lock-syntactic-face-function . 
zig-mode-syntactic-face-function)))
 
-  (add-hook 'before-save-hook 'zig-before-save-hook nil t))
-
-(defun zig-before-save-hook ()
   (when zig-format-on-save
-       (zig-format-buffer)))
+    (zig-format-on-save-mode 1)))
 
 ;;;###autoload
 (add-to-list 'auto-mode-alist '("\\.zig\\'" . zig-mode))



reply via email to

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