Skip to content

Presumed failure when running with php-language-server  #26

Closed
@joaotavora

Description

@joaotavora

Hi @felixfbecker, opening this issue here as you mentioned in joaotavora/eglot#1 (comment)

When I pass this JSONRPC to the php-language-server:

Content-Length: 888

{"jsonrpc":"2.0","id":205,"method":"initialize","params":{"processId":10335,"rootUri":"file:///home/capitaomorte/Source/PhP/hello-world/","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":false},"didChangeWatchesFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":false}},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false},"hover":{"dynamicRegistration":false},"signatureHelp":{"dynamicRegistration":false},"references":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false},"documentSymbol":{"dynamicRegistration":false},"documentHighlight":{"dynamicRegistration":false},"rename":{"dynamicRegistration":false},"publishDiagnostics":{"relatedInformation":false}},"experimental":null},"initializationOptions":[]}}

(The first two lines are CRLF). It replies back with this stacktrace

-32603: TypeError: Argument 2 passed to LanguageServer\LanguageServer::initialize() must be of the type string or null, integer given, called in /home/capitaomorte/Source/PhP/hello-world/vendor/felixfbecker/advanced-json-rpc/lib/Dispatcher.php on line 164 and defined in /home/capitaomorte/Source/PhP/hello-world/vendor/felixfbecker/language-server/src/LanguageServer.php:168
Stack trace:
#0 /home/capitaomorte/Source/PhP/hello-world/vendor/felixfbecker/advanced-json-rpc/lib/Dispatcher.php(164): LanguageServer\LanguageServer->initialize(Object(LanguageServer\Protocol\ClientCapabilities), 10335)
#1 /home/capitaomorte/Source/PhP/hello-world/vendor/felixfbecker/language-server/src/LanguageServer.php(131): AdvancedJsonRpc\Dispatcher->dispatch(Object(AdvancedJsonRpc\Request))
#2 [internal function]: LanguageServer\LanguageServer->LanguageServer\{closure}()
#3 /home/capitaomorte/Source/PhP/hello-world/vendor/sabre/event/lib/coroutine.php(64): Generator->valid()
#4 /home/capitaomorte/Source/PhP/hello-world/vendor/sabre/event/lib/coroutine.php(118): Sabre\Event\{closure}()
#5 /home/capitaomorte/Source/PhP/hello-world/vendor/felixfbecker/language-server/src/LanguageServer.php(154): Sabre\Event\coroutine(Object(Closure))
#6 /home/capitaomorte/Source/PhP/hello-world/vendor/sabre/event/lib/EmitterTrait.php(88): LanguageServer\LanguageServer->LanguageServer\{closure}(Object(LanguageServer\Protocol\Message))
#7 /home/capitaomorte/Source/PhP/hello-world/vendor/felixfbecker/language-server/src/ProtocolStreamReader.php(56): Sabre\Event\Emitter->emit('message', Array)
#8 /home/capitaomorte/Source/PhP/hello-world/vendor/sabre/event/lib/Loop/Loop.php(311): LanguageServer\ProtocolStreamReader->LanguageServer\{closure}()
#9 /home/capitaomorte/Source/PhP/hello-world/vendor/sabre/event/lib/Loop/Loop.php(233): Sabre\Event\Loop\Loop->runStreams(NULL)
#10 /home/capitaomorte/Source/PhP/hello-world/vendor/sabre/event/lib/Loop/Loop.php(194): Sabre\Event\Loop\Loop->tick(true)
#11 /home/capitaomorte/Source/PhP/hello-world/vendor/sabre/event/lib/Loop/functions.php(122): Sabre\Event\Loop\Loop->run()
#12 /home/capitaomorte/Source/PhP/hello-world/vendor/felixfbecker/language-server/bin/php-language-server.php(109): Sabre\Event\Loop\run()
#13 {main}

Curiously, if I pass null for the processId, it works!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions