addListener('message', function (MessageEvent $messageEvent) use ($deferred, $fileEvent, &$isDiagnosticsCleared) { $message = $messageEvent->getMessage(); if ($message->body->method === "textDocument/publishDiagnostics") { $this->assertEquals($message->body->params->uri, $fileEvent->uri); $this->assertEquals($message->body->params->diagnostics, []); $deferred->resolve(true); } }); $workspace->didChangeWatchedFiles([$fileEvent]); $this->assertTrue(yield $deferred->promise(), "Deleting file should clear all diagnostics."); }); } }