Visual Studio Code PHP Intellisense ファイル容量が大きいファイルのインデックスが作成されない場合の対処方法

Visual Studio Code PHP Intellisense ファイル容量が大きいファイルのインデックスが作成されない場合の対処方法

php-intellisenseが対象とするPHPファイルの容量はデフォルトでは150KBに設定されており、それ以上のファイルも対象にしたい場合の変更方法を紹介します。

変更の手順は、php-intelisenseが使用しているfelixbeckerのlanguage-serverのソースコードを直接編集することになります。
VSCode側で設定できるのが一番いいのですが、現在設定項目が提供されていません。

変更ファイル

以下の変更対象ファイルをVSCodeで開きます。
(メモ帳等で開くと文字コードが変わったりするので、プログラム用途のテキストエディタで開きます)

PhpDocumentLoader.php
[場所] C:\Users[UserName].vscode\extensions\felixfbecker.php-intellisense-[version]\vendor\felixfbecker\language-server\src\PhpDocumentLoader.php

※ユーザー名のディレクトリは「%USERPROFILE%」をパスに入れることで開くことが出来ます。
上の場所にない場合はユーザーフォルダがデフォルトから変更されている為、こちらの環境変数をお試し下さい。

変更箇所

ソースコード内の以下の青色でハイライトした箇所 $limit = 1500000;で容量の上限を定義しています。
必要な容量に変更して保存します。
※単位はバイトのため、初期設定は150KBです。
※大体500KBもあれば各ライブラリでも充分です。

public function load(string $uri): Promise
{
    return coroutine(function () use ($uri) {
        $limit = 150000;
        $content = yield $this->contentRetriever->retrieve($uri);
        $size = strlen($content);
        if ($size > $limit) {
            throw new ContentTooLargeException($uri, $size, $limit);
        }

        if (isset($this->documents[$uri])) {
            $document = $this->documents[$uri];
            $document->updateContent($content);
        } else {
            $document = $this->create($uri, $content);
        }
        return $document;
    });
}

確認

php-intelisenseはワークスペースを読み込んでいる場合に有効になる為、プロジェクトルートのディレクトリをVSCodeにドラッグして読み込みます。
次に、表示→出力(Ctrl+Shift+U)から出力エリアを表示し、表示対象を「PHP Language Server」に変更します。
php-intelisenseに処理されたファイルパスの履歴が表示される為、設定したファイル上限までのファイルが読み込まれているか確認しましょう。

プログラミングカテゴリの最新記事