Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ziglang/zig-mode
Zig mode for Emacs
https://github.com/ziglang/zig-mode
emacs zig
Last synced: 2 months ago
JSON representation
Zig mode for Emacs
- Host: GitHub
- URL: https://github.com/ziglang/zig-mode
- Owner: ziglang
- License: gpl-3.0
- Created: 2017-04-04T12:05:22.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2024-04-16T16:36:42.000Z (8 months ago)
- Last Synced: 2024-05-01T11:27:52.895Z (7 months ago)
- Topics: emacs, zig
- Language: Emacs Lisp
- Size: 104 KB
- Stars: 146
- Watchers: 10
- Forks: 51
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-zig - ziglang/zig-mode
- awesome-zig - zig-modeποΈZig mode for Emacs
README
# zig-mode
Syntax highlighting and automatic indentation for the [Zig programming
language](http://ziglang.org) in Emacs. Requires Emacs 24.3 or later.## Installation
[![NonGNU ELPA](https://elpa.nongnu.org/nongnu/zig-mode.svg)](https://elpa.nongnu.org/nongnu/zig-mode.html)
[![MELPA](https://melpa.org/packages/zig-mode-badge.svg)](https://melpa.org/#/zig-mode)Simply install the `zig-mode` package via [NonGNU ELPA](https://elpa.nongnu.org/) or
[MELPA](https://melpa.org/#/getting-started).### Manual install
Alternatively, you can `git clone` the `zig-mode` repository somewhere
(e.g. under your `~/.emacs.d/`). `zig-mode` depends on
[reformatter](https://github.com/purcell/emacs-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:
```elisp
(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)))
```## Testing
[![CI](https://github.com/ziglang/zig-mode/actions/workflows/main.yml/badge.svg)](https://github.com/ziglang/zig-mode/actions/workflows/main.yml)
To run the test locally, you will need the following tools:
- [Eask](https://emacs-eask.github.io/)
- [Make](https://www.gnu.org/software/make/) (optional)Install all dependencies and development dependencies:
```sh
$ eask install-deps --dev
```To test the package's installation:
```sh
$ eask package
$ eask install
```To test compilation:
```sh
$ eask compile
```**πͺ§ The following steps are optional, but we recommend you follow these lint results!**
The built-in `checkdoc` linter:
```sh
$ eask lint checkdoc
```The standard `package` linter:
```sh
$ eask lint package
```*π P.S. For more information, find the Eask manual at https://emacs-eask.github.io/.*
## Optional Configuration
`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:```elisp
(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)))
```## License
`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](LICENSE) file for details.