diff --git a/src/Server.zig b/src/Server.zig index 874d23a..588af8e 100644 --- a/src/Server.zig +++ b/src/Server.zig @@ -1879,20 +1879,28 @@ fn willSaveWaitUntilHandler(server: *Server, writer: anytype, id: types.RequestI const tracy_zone = tracy.trace(@src()); defer tracy_zone.end(); - if (!server.config.enable_ast_check_diagnostics) return; - if (!server.config.enable_autofix) return; - const allocator = server.arena.allocator(); - const uri = req.params.textDocument.uri; - const handle = server.document_store.getHandle(uri) orelse return; - if (handle.tree.errors.len != 0) return; + b: { + if (!server.config.enable_ast_check_diagnostics or !server.config.enable_autofix) + break :b; - var text_edits = try server.autofix(allocator, handle); + const uri = req.params.textDocument.uri; + + const handle = server.document_store.getHandle(uri) orelse break :b; + if (handle.tree.errors.len != 0) break :b; + + var text_edits = try server.autofix(allocator, handle); + + return try send(writer, allocator, types.Response{ + .id = id, + .result = .{ .TextEdits = try text_edits.toOwnedSlice(allocator) }, + }); + } return try send(writer, allocator, types.Response{ .id = id, - .result = .{ .TextEdits = try text_edits.toOwnedSlice(allocator) }, + .result = .{ .TextEdits = &.{} }, }); }