Help us understand the problem. What is going on with this article?

VSCode の拡張機能 PHP IntelliSense で定義に移動できない時に確認したいこと

2019/12/11 追記

今は、PHP Intellisenseではなく、PHP Intelephense がおすすめです。
下記のようなエラーもなく定義への移動ができています。
一度試してみることをおすすめします。

背景

VSCode使用時に特定のプロジェクトだけ、拡張機能の PHP Intellisense で定義の表示・移動ができず原因の特定に時間がかかりましたので、その原因と解決方法を記載しておきます。

原因

調べていると、 PHP Intellisenseはプロジェクト読み込み時に定義を再読込しており、以下の出力が出ていました。

Ignoring file file:///d:/hoge/fuga/_ide_helper.php because it exceeds size limit of 150000 bytes (448485)

出力のとおり、ファイルサイズがリミットの 150,000B = 150KBを超えるファイルがあると定義の読み込みを飛ばしてしまう為、定義の表示・移動ができなくなっていたようです。
PHPのフレームワークとしてLaravelを使用しており、その一部ファイルがリミットを超えていました。

解決方法

ホームディレクトリの以下ファイルを変更することで対応することができました。
私の場合は、リミットを 150000 から 1500000 に変更することで現在は問題なく動作しております。

.vscode\extensions\felixfbecker.php-intellisense-2.3.10\vendor\felixfbecker\language-server\src\PhpDocumentLoader.php

PhpDocumentLoader.php
105    public function load(string $uri): Promise
106    {
107        return coroutine(function () use ($uri) {
108
109            $limit = 1500000; // ここを変更 150000 -> 1500000 = 1.5MB
110            $content = yield $this->contentRetriever->retrieve($uri);
111            $size = strlen($content);
112            if ($size > $limit) {
113                throw new ContentTooLargeException($uri, $size, $limit);
114            }

さいごに

Qiita等へのアウトプットが初めての為、わかりにくい点があると思いますが少しでもどなたかの助けになると幸いです。
ただVSCodeの更新等で前述の変更が元に戻ってしまうことがあるので、なにか根本的な解決方法が他にあるかもしれません。
ご存知の方教えてください。。。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away