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

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

[nongnu] elpa/zig-mode ab46e22 048/104: add some zig cli build commands


From: ELPA Syncer
Subject: [nongnu] elpa/zig-mode ab46e22 048/104: add some zig cli build commands
Date: Sun, 29 Aug 2021 11:37:01 -0400 (EDT)

branch: elpa/zig-mode
commit ab46e22ceec16955d63df6e388bbeb22d47e0513
Author: Marcio Giaxa <i@mgxm.me>
Commit: Marcio Giaxa <i@mgxm.me>

    add some zig cli build commands
    
    * Adds:
     - zig-compile
     - zig-build-exe
     - zig-build-lib
     - zig-build-obj
     - zig-run
     - zig-test-buffer
---
 zig-mode.el | 49 +++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 47 insertions(+), 2 deletions(-)

diff --git a/zig-mode.el b/zig-mode.el
index 833eb0e..819b7fd 100644
--- a/zig-mode.el
+++ b/zig-mode.el
@@ -49,14 +49,59 @@
 
 ;; zig CLI commands
 
+
+(defun zig--run-cmd (cmd &optional source &rest args)
+  "Use compile command to execute a zig CMD with ARGS if given.
+If given a SOURCE, execute the CMD on it."
+  (let ((cmd-args
+         (if source
+             (mapconcat 'identity (cons source args) " ")
+           args)))
+    (compile (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)))
+      (setq-local zig-format-on-save nil)
+    (setq-local zig-format-on-save t)))
+
+;;;###autoload
+(defun zig-compile ()
+  "Compile using `zig build`."
+  (interactive)
+  (zig--run-cmd "build"))
 
+;;;###autoload
+(defun zig-build-exe ()
+  "Create executable from source or object file."
+  (interactive)
+  (zig--run-cmd "build-exe" (buffer-file-name)))
+
+;;;###autoload
+(defun zig-build-lib ()
+  "Create library from source or assembly."
+  (interactive)
+  (zig--run-cmd "build-lib" (buffer-file-name)))
+
+;;;###autoload
+(defun zig-build-obj ()
+  "Create object from source or assembly."
+  (interactive)
+  (zig--run-cmd "build-obj" (buffer-file-name)))
+
+;;;###autoload
+(defun zig-test-buffer ()
+  "Test buffer using `zig test`."
+  (interactive)
+  (zig--run-cmd "test" (buffer-file-name) "--release-fast"))
+
+;;;###autoload
+(defun zig-run ()
+  "Create an executable from the current buffer and run it immediately."
+  (interactive)
+  (zig--run-cmd "run" (buffer-file-name)))
 
 ;;;###autoload
 (defun zig-format-buffer ()



reply via email to

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