diff --git a/src/ClientHandler.php b/src/ClientHandler.php index 9fe921b..b602ece 100644 --- a/src/ClientHandler.php +++ b/src/ClientHandler.php @@ -42,7 +42,7 @@ class ClientHandler $id = $this->idGenerator->generate(); return $this->protocolWriter->write( new Protocol\Message( - new AdvancedJsonRpc\Request($id, $method, (object)$params) + (new AdvancedJsonRpc\Request($id, $method, (object)$params))->__toString() ) )->then(function () use ($id) { $promise = new Promise; diff --git a/src/ProtocolBridge/MessageFactory.php b/src/ProtocolBridge/MessageFactory.php new file mode 100644 index 0000000..1a106ef --- /dev/null +++ b/src/ProtocolBridge/MessageFactory.php @@ -0,0 +1,32 @@ +body = AdvancedJsonRpcMessage::parse(array_pop($parts))->__toString(); + foreach ($parts as $line) { + if ($line) { + $pair = explode(': ', $line); + $obj->headers[$pair[0]] = $pair[1]; + } + } + return $obj; + } +} diff --git a/tests/MockProtocolStream.php b/tests/MockProtocolStream.php index b2a489d..8b22be7 100644 --- a/tests/MockProtocolStream.php +++ b/tests/MockProtocolStream.php @@ -4,6 +4,7 @@ declare(strict_types = 1); namespace LanguageServer\Tests; use LanguageServer\{ProtocolReader, ProtocolWriter}; +use LanguageServer\ProtocolBridge\MessageFactory; use LanguageServer\Protocol\Message; use Sabre\Event\{Loop, Emitter, Promise}; @@ -21,7 +22,7 @@ class MockProtocolStream extends Emitter implements ProtocolReader, ProtocolWrit public function write(Message $msg): Promise { Loop\nextTick(function () use ($msg) { - $this->emit('message', [Message::parse((string)$msg)]); + $this->emit('message', [MessageFactory::fromRawMessage((string)$msg)]); }); return Promise\resolve(null); }