Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new build on save with watch mode #2096

Draft
wants to merge 28 commits into
base: master
Choose a base branch
from
Draft

new build on save with watch mode #2096

wants to merge 28 commits into from

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:

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 ⚡

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`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants