File tree 1 file changed +28
-0
lines changed
1 file changed +28
-0
lines changed Original file line number Diff line number Diff line change 1
1
import vscode from "vscode" ;
2
2
3
+ import fs from "fs/promises" ;
3
4
import path from "path" ;
4
5
5
6
import semver from "semver" ;
@@ -596,6 +597,33 @@ export async function setupZig(context: vscode.ExtensionContext) {
596
597
await context . workspaceState . update ( "zig-version" , undefined ) ;
597
598
}
598
599
600
+ /// Workaround https://github.com/ziglang/zig/issues/21905
601
+ switch ( process . platform ) {
602
+ case "darwin" :
603
+ case "freebsd" :
604
+ case "openbsd" :
605
+ case "netbsd" :
606
+ case "haiku" :
607
+ vscode . workspace . onDidSaveTextDocument ( async ( document ) => {
608
+ if ( document . languageId !== "zig" ) return ;
609
+ if ( document . uri . scheme !== "file" ) return ;
610
+
611
+ const fsPath = document . uri . fsPath ;
612
+ try {
613
+ await fs . copyFile ( fsPath , fsPath + ".tmp" , fs . constants . COPYFILE_EXCL ) ;
614
+ await fs . rename ( fsPath + ".tmp" , fsPath ) ;
615
+ } catch { }
616
+ } , context . subscriptions ) ;
617
+ break ;
618
+ case "aix" :
619
+ case "android" :
620
+ case "linux" :
621
+ case "sunos" :
622
+ case "win32" :
623
+ case "cygwin" :
624
+ break ;
625
+ }
626
+
599
627
versionManagerConfig = {
600
628
context : context ,
601
629
title : "Zig" ,
You can’t perform that action at this time.
0 commit comments