From 6c10e45fa8f72e5c309b911adb8009d5d48a02eb Mon Sep 17 00:00:00 2001 From: Dan Makovec Date: Thu, 10 May 2018 13:04:05 +1000 Subject: [PATCH] Iterate through all composer.lock files within the root path to ensure that all package dependencies are indexed and cached --- src/LanguageServer.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/LanguageServer.php b/src/LanguageServer.php index 46281f5..17004d2 100644 --- a/src/LanguageServer.php +++ b/src/LanguageServer.php @@ -215,10 +215,18 @@ class LanguageServer extends AdvancedJsonRpc\Dispatcher sortUrisLevelOrder($composerLockFiles); if (!empty($composerLockFiles)) { - $this->composerLock = json_decode(yield $this->contentRetriever->retrieve($composerLockFiles[0])); + $packages = []; + $packagesDev = []; + foreach($composerLockFiles as $composerLockFile) { + $composerLock = json_decode(yield $this->contentRetriever->retrieve($composerLockFile)); + $packages = array_merge($packages, $composerLock->packages); + $packagesDev = array_merge($packagesDev, $composerLock->{'packages-dev'}); + } + $this->composerLock = $composerLock; + $this->composerLock->packages = $packages; + $this->composerLock->{'packages-dev'} = $packagesDev; } } - $cache = $capabilities->xcacheProvider ? new ClientCache($this->client) : new FileSystemCache; // Index in background