diff --git a/bin/php-language-server.php b/bin/php-language-server.php index 62bdeb4..0e3de2a 100644 --- a/bin/php-language-server.php +++ b/bin/php-language-server.php @@ -2,6 +2,7 @@ use LanguageServer\{LanguageServer, ProtocolStreamReader, ProtocolStreamWriter}; use Sabre\Event\Loop; +use Composer\{Factory, XdebugHandler}; $options = getopt('', ['tcp::', 'tcp-server::', 'memory-limit::']); @@ -30,6 +31,9 @@ set_exception_handler(function (\Throwable $e) { @cli_set_process_title('PHP Language Server'); +// If XDebug is enabled, restart without it +(new XdebugHandler(Factory::createOutput()))->check(); + if (!empty($options['tcp'])) { // Connect to a TCP server $address = $options['tcp']; diff --git a/composer.json b/composer.json index 588d4a0..d6ea39c 100644 --- a/composer.json +++ b/composer.json @@ -36,7 +36,8 @@ "webmozart/path-util": "^2.3", "webmozart/glob": "^4.1", "sabre/uri": "^2.0", - "JetBrains/phpstorm-stubs": "dev-master" + "JetBrains/phpstorm-stubs": "dev-master", + "composer/composer": "^1.3" }, "repositories": [ {