Extension Details

- Zig
- by David Czihak
- 4 Recent Installs | 4 Total Installs
- Zig language support – ZLS, LLDB, Tree-Sitter grammar
- Repository
- Bug Reports
-
Read Files
-
Launch Subprocesses
-
This extension is allowed to:
Readme
Zig for Nova
Zig language support – ZLS, LLDB, Tree-Sitter grammar
Requirements
- Zig installed and on
PATH(or configured in extension preferences) - ZLS* for language intelligence
- LLDB DAP* for debugging (discovered automatically via
xcrunorPATH; install the Xcode Command Line Tools if absent:xcode-select --install)
* optional but recommended for full experience
Why
A personal project to learn Zig without leaving Nova and without giving up the comfort of language server and debugging features.
Features
Editing
- Syntax highlighting for
.zigand.zon - Code folding for blocks, declarations, and control-flow expressions
- Document symbols (outline, breadcrumbs, Go to Symbol)
- Diagnostics, completion, hover, go to definition, find references, select all references, formatting (all via ZLS)
- Inline compiler errors from
zig build
Tasks
- Zig Package: build and run a Zig package in the Nova console
- Zig Package (macOS Terminal): build and run in the external Terminal app for interactive CLIs
- Zig Debug: build in Debug mode and launch under the debugger, with configurable console and stop-on-entry
- A clean action on every runnable template that removes
.zig-cache,zig-cache, andzig-out
Debugging
- Breakpoint support in Zig source files
- LLDB-based debug adapter, auto-discovered via
xcrunorPATH
Configuration
Global settings live under Nova Preferences > Extensions > Zig.
Per-workspace overrides live under Project Settings > Zig and take precedence.
Tooling
Paths to the zig, zls, and lldb-dap executables. Leave any blank to discover from PATH.
Language Server
- Enable or disable ZLS
- Allow ZLS to run its build/check on save
- Log ZLS traffic to the Extension Console (for troubleshooting)
Troubleshooting
A large part of the file turns red after one error
The parser may report a broad recovery range when it hits an incomplete expression (for example, MyError.), and Nova highlights that entire range. Fix the first syntax error shown and the overlay should narrow to the real error locations.
Development
The Tree-sitter parser is built from the vendored grammar snapshot under vendor/tree-sitter-zig. The pinned upstream commit is recorded in vendor/tree-sitter-zig/VENDORING.md.
Rebuild the parser dylib:
./Scripts/build-parser.sh
Bump the vendored snapshot (and rebuild):
./Scripts/update-parser.sh # upstream HEAD
./Scripts/update-parser.sh <ref> # specific tag, branch, or SHA
Validate the extension bundle:
/Applications/Nova.app/Contents/SharedSupport/nova extension validate .
Attributions
The Zig logo is the work of the Zig Software Foundation and is licensed under CC BY-SA 4.0. The zig-debug@2x.png is a derivative of the original logo, improving pixel alignment at 32px size.
The Tree-sitter grammar for Zig is sourced from github.com/tree-sitter-grammars/tree-sitter-zig.
Release Notes
Changelog
0.1.4 — 2026-05-07
- Initial release: syntax highlighting, ZLS integration, task templates, and LLDB debugging.
License
BSD 2-Clause License
Copyright 2026 David Czihak
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. -
Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and / or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.