Syntax highlighting and automatic indentation for the Zig programming language in Emacs. Requires Emacs 24.3 or later.
Simply install the zig-mode package via NonGNU ELPA or
MELPA.
Alternatively, you can git clone the zig-mode repository somewhere
(e.g. under your ~/.emacs.d/). zig-mode depends on
reformatter for
formatting buffers with zig fmt.
reformatter can be installed from MELPA or installed manually in a
similar fashion to zig-mode. For this method, clone the
reformatter git repository and add the path to the repository to
your load-path.
Then add the following to your .emacs file:
(unless (version< emacs-version "24")
(add-to-list 'load-path "~/path/to/your/zig-mode/")
(autoload 'zig-mode "zig-mode" nil t)
(add-to-list 'auto-mode-alist '("\\.zig\\'" . zig-mode)))
To run the test locally, you will need the following tools:
Install all dependencies and development dependencies:
eask install-deps --dev
To test the package’s installation:
eask package
eask install
To test compilation:
eask compile
🪧 The following steps are optional, but we recommend you follow these lint results!
The built-in checkdoc linter:
eask lint checkdoc
The standard package linter:
eask lint package
📝 P.S. For more information, find the Eask manual at https://emacs-eask.github.io/.
zig-mode used to enable coloration of the compilation buffer using
ANSI color codes, but this affected all compilation buffers, not just
zig compilation output.
If you want to restore this behavior, you can add the following snippet
to your init.el or .emacs file:
(if (>= emacs-major-version 28)
(add-hook 'compilation-filter-hook 'ansi-color-compilation-filter)
(progn
(defun colorize-compilation-buffer ()
(let ((inhibit-read-only t))
(ansi-color-apply-on-region compilation-filter-start (point))))
(add-hook 'compilation-filter-hook 'colorize-compilation-buffer)))
zig-mode is distributed under the terms of the GNU General Public License as
published by the Free Software Foundation; either version 3, or (at your
option) any later version.
See the LICENSE file for details.