A drop-in alternative to ZLS
-
Improved editing responsiveness for large documents
- Uses an extended parser, that reuses tokens and nodes to process document changes faster
-
Improved syntax error handling
- Uses an extended parser, that works around some common parser deficiencies due to syntax errors
-
Reworked Modules Collection and Lookup
- Modules are grouped by CompileStep (root ID). See How to set/switch 'root_id'
(This may look like a step back, but is needed for correct module resolution for modules created using meta-programming that have the same name)
-
Propagates error messages originating in currently not-open-in-editor documents based (0.16.x and earlier)
on reference-trace, eg Writers'
print(fmt, args)std.debug.print("{}", .{}); [!] too few arguments std.debug.print("", .{1}); [!] unused argument in '' std.debug.print("{s}", .{1}); [!] invalid format string .. [!] indicates that the error did not originate in the current document/file -
Integrated Incremental Compilation [Experimental] (0.17 +)
Performs an incremental compilation update on every document change.
Does not require saving the document -- uses the in-memory document's data.
Zig's incremental compilation is still not fully robust,
if you find the experience less than optimal setdisable_compilationstotrue
ZIG_DEBUG_MAKER=TRUE ZIG_LIB_DIR=./lib zig build -Doptimize=ReleaseFast
Note
Remember to rename the executable or update your editor's configuration