phpactor
phpactor copied to clipboard
Unsaved documents cause exceptions
In VSCode when opening a new file and typing int before saving it it produces the following error:
[Error - 7:30:09 AM] Request textDocument/codeAction failed.
Message: Exception [Phpactor\TextDocument\Exception\InvalidUriException] Only "file://" scheme is supported, got "untitled" at /root/.shared_extensions/phpactor2/lib/TextDocument/TextDocumentUri.php#44
Code: -32603
#0 /root/.shared_extensions/phpactor2/lib/TextDocument/TextDocumentBuilder.php(76): Phpactor\TextDocument\TextDocumentUri::fromString('untitled:Untitl...')
#1 /root/.shared_extensions/phpactor2/lib/Extension/LanguageServerBridge/Converter/TextDocumentConverter.php(15): Phpactor\TextDocument\TextDocumentBuilder->uri('untitled:Untitl...')
#2 /root/.shared_extensions/phpactor2/lib/Extension/LanguageServerCodeTransform/CodeAction/TransformerCodeActionPovider.php(87): Phpactor\Extension\LanguageServerBridge\Converter\TextDocumentConverter::fromLspTextItem(Object(Phpactor\LanguageServerProtocol\TextDocumentItem))
#3 /root/.shared_extensions/phpactor2/lib/Extension/LanguageServerCodeTransform/CodeAction/TransformerCodeActionPovider.php(54): Phpactor\Extension\LanguageServerCodeTransform\CodeAction\TransformerCodeActionPovider->getDiagnostics(Object(Phpactor\LanguageServerProtocol\TextDocumentItem))
#4 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/functions.php(90): Phpactor\Extension\LanguageServerCodeTransform\CodeAction\TransformerCodeActionPovider->Phpactor\Extension\LanguageServerCodeTransform\CodeAction\{closure}()
#5 /root/.shared_extensions/phpactor2/lib/Extension/LanguageServerCodeTransform/CodeAction/TransformerCodeActionPovider.php(74): Amp\call(Object(Closure))
#6 /root/.shared_extensions/phpactor2/vendor/phpactor/language-server/lib/Core/CodeAction/AggregateCodeActionProvider.php(32): Phpactor\Extension\LanguageServerCodeTransform\CodeAction\TransformerCodeActionPovider->provideActionsFor(Object(Phpactor\LanguageServerProtocol\TextDocumentItem), Object(Phpactor\LanguageServerProtocol\Range), Object(Amp\CancellationToken@anonymous))
#7 [internal function]: Phpactor\LanguageServer\Core\CodeAction\AggregateCodeActionProvider->Phpactor\LanguageServer\Core\CodeAction\{closure}()
#8 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/Coroutine.php(118): Generator->send(NULL)
#9 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/Internal/Placeholder.php(149): Amp\Coroutine->Amp\{closure}(NULL, NULL)
#10 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/Delayed.php(26): Amp\Delayed->resolve(NULL)
#11 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/Loop/NativeDriver.php(142): Amp\Delayed->Amp\{closure}('wie', NULL)
#12 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/Loop/Driver.php(138): Amp\Loop\NativeDriver->dispatch(true)
#13 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/Loop/Driver.php(72): Amp\Loop\Driver->tick()
#14 /root/.shared_extensions/phpactor2/vendor/amphp/amp/lib/Loop.php(95): Amp\Loop\Driver->run()
#15 /root/.shared_extensions/phpactor2/vendor/phpactor/language-server/lib/Core/Server/LanguageServer.php(112): Amp\Loop::run(Object(Closure))
#16 /root/.shared_extensions/phpactor2/lib/Extension/LanguageServer/Command/StartCommand.php(54): Phpactor\LanguageServer\Core\Server\LanguageServer->run()
#17 /root/.shared_extensions/phpactor2/vendor/symfony/console/Command/Command.php(298): Phpactor\Extension\LanguageServer\Command\StartCommand->execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#18 /root/.shared_extensions/phpactor2/vendor/symfony/console/Application.php(1024): Symfony\Component\Console\Command\Command->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#19 /root/.shared_extensions/phpactor2/vendor/symfony/console/Application.php(299): Symfony\Component\Console\Application->doRunCommand(Object(Phpactor\Extension\LanguageServer\Command\StartCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#20 /root/.shared_extensions/phpactor2/lib/Application.php(48): Symfony\Component\Console\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#21 /root/.shared_extensions/phpactor2/vendor/symfony/console/Application.php(171): Phpactor\Application->doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#22 /root/.shared_extensions/phpactor2/bin/phpactor(45): Symfony\Component\Console\Application->run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
#23 {main}
That error is preceeded by this:
[Trace - 7:30:09 AM] Sending notification 'textDocument/didOpen'.
Params: {
"textDocument": {
"uri": "untitled:Untitled-1",
"languageId": "php",
"version": 15,
"text": "<?php\n\n$a = 5;"
}
}
[Trace - 7:30:09 AM] Sending request 'textDocument/codeAction - (70)'.
Params: {
"textDocument": {
"uri": "untitled:Untitled-1"
},
"range": {
"start": {
"line": 2,
"character": 7
},
"end": {
"line": 2,
"character": 7
}
},
"context": {
"diagnostics": []
}
}
Currently I don't mind not getting any language services until I save, but the exception is really annoying.
Will be fixed by https://github.com/phpactor/phpactor/pull/1871