Skip to content

Instantly share code, notes, and snippets.

@xiaohuilam
Last active April 20, 2018 01:08
Show Gist options
  • Save xiaohuilam/b94f39d14e969c3a6a553051f4a1da81 to your computer and use it in GitHub Desktop.
Save xiaohuilam/b94f39d14e969c3a6a553051f4a1da81 to your computer and use it in GitHub Desktop.
Improve your php felixfbecker/language-server index speed
From 8977c95db6b98caa9a69d067026e4fc869a6ff7d Mon Sep 17 00:00:00 2001
From: Xiaohui Lam <xiaohui.lam@e.hexdata.cn>
Date: Sun, 18 Mar 2018 00:16:22 +0800
Subject: [PATCH] make dependencies not released be able to cache
---
src/Indexer.php | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/src/Indexer.php b/src/Indexer.php
index a556d4d..553524c 100644
--- a/src/Indexer.php
+++ b/src/Indexer.php
@@ -151,8 +151,13 @@ class Indexer
// Check if package name matches and version is absolute
// Dynamic constraints are not cached, because they can change every time
$packageVersion = ltrim($package->version, 'v');
- if ($package->name === $packageName && strpos($packageVersion, 'dev') === false) {
+ if ($package->name === $packageName) {
$packageKey = $packageName . ':' . $packageVersion;
+ if (strpos($packageVersion, 'dev') !== false) {
+ $packageKey = $packageName . ':' . (isset($package->source) && isset($package->source->reference) ?
+ $package->source->reference : (isset($package->dist) && isset($package->dist->reference) ?
+ $package->source->reference : $packageVersion));
+ }
$cacheKey = self::CACHE_VERSION . ':' . $packageKey;
// Check cache
$index = yield $this->cache->get($cacheKey);
--
2.10.2
@xiaohuilam
Copy link
Author

image

load in one second

@xiaohuilam
Copy link
Author

cd ~/.vscode/extensions/felixfbecker.php-intellisense-*
cd vendor/felixfbecker/language-server
wget https://gist.github.com/xiaohuilam/b94f39d14e969c3a6a553051f4a1da81/raw/b6af901b97203525fac9ce1cc77093450b18c4d7/src_Indexer.php
patch -p1 < src_Indexer.php
rm -rf src_Indexer.php

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment