Skip to content

Conversation

@Techatrix
Copy link
Member

@Techatrix Techatrix commented Nov 29, 2024

This PR replaces the current build on save implementation with a new one that is based on Zig's zig build --watch feature. This can be combined with the build_on_save_args config option to enable incremental compilation. fixes #2001

Here is a small showcase where I use the equivalent of zig build check --watch -fincremental:

Details
output.webm
Show Video

I used the Error Lens extension to display the error messages inline.

The minimum runtime Zig version has been bumped from 0.12.0 to 0.14.0-dev.310+9d38e82b5. This means that the latest mach nominated zig version (0.14.0-dev.1911+3bf89f55c) is still supported.
The build on save diagnostics are no longer removed after editing the document. The source location of the error message is not being updated when the document gets modified but this can be implement in the future.

I have only tested this on Linux and Windows with VS Code. Who know what kind of bugs are still lurking around 🤷

@leecannon
Copy link
Member

I've tried this with a few of my projects and it works well ⚡

@Techatrix Techatrix force-pushed the techatrix/dev branch 2 times, most recently from 8736816 to bee1c90 Compare December 11, 2024 18:43
This also fixes a minor bug where cImport diagnostics would only be reported after a document has been modified
The main motivation for this is to keep support for the latest mach nominated zig version which is `0.14.0-dev.1911+3bf89f55c`.
@Techatrix Techatrix marked this pull request as ready for review December 19, 2024 22:24
@Techatrix Techatrix merged commit f5cd111 into master Dec 20, 2024
8 checks passed
@Techatrix Techatrix deleted the techatrix/dev branch December 26, 2024 05:31
@lishaduck
Copy link

@Techatrix, is there a way to turn this off? I skimmed the diff and I didn't see one.
This breaks build_on_save in VS Code on macOS (#2221/ziglang/zig#21905)

@kristoff-it
Copy link
Contributor

kristoff-it commented Mar 14, 2025

On macOS there are two bugs related to this feature, one is the one linked above, the second is that --watch crashes on macOS (fixed here, should become available in 0.14.1) and when that happens in ZLS, you just see ZLS stop working.

@Techatrix
Copy link
Member Author

@Techatrix, is there a way to turn this off? I skimmed the diff and I didn't see one.

No, this PR has replaced the previous build on save implementation. Excluding bugs like these, there should be no reason to need the old implementation.

If no progress is being made on ziglang/zig#21905, I will look into patching ZLS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Diagnostics relatedInformation contain invalid URLs Provide a configuration option to use incremental compilation for build-on-save

5 participants