From 6c10e45fa8f72e5c309b911adb8009d5d48a02eb Mon Sep 17 00:00:00 2001 From: Dan Makovec Date: Thu, 10 May 2018 13:04:05 +1000 Subject: [PATCH 1/2] 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 From f3554e602de2488b24bd099904f39d7f47cbe9f9 Mon Sep 17 00:00:00 2001 From: Dan Makovec Date: Mon, 10 Sep 2018 12:33:30 +1000 Subject: [PATCH 2/2] Fixed formatting for linter --- src/LanguageServer.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/LanguageServer.php b/src/LanguageServer.php index 17004d2..6b28177 100644 --- a/src/LanguageServer.php +++ b/src/LanguageServer.php @@ -217,7 +217,7 @@ class LanguageServer extends AdvancedJsonRpc\Dispatcher if (!empty($composerLockFiles)) { $packages = []; $packagesDev = []; - foreach($composerLockFiles as $composerLockFile) { + 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'});