🐘

Cursorが激重だったので拡張機能を整理してPHP/Laravelの開発環境も整えてみた

2024/05/01に公開

Cursor が超重かったけど拡張機能全部 OFF にしたら軽くなった

最近パソコンのメモリを 128GB に増設したのですが、Cursor はどちらかというと以前より重くなっていました。
メモリ使用量は 30%位でしたので、VSCode のメモリ割り当てを増やす方法かなんかがあるのかなあとか思っていました。
さすがに仕事に差し支える程の重さだったので、調べることにしました。

そもそも DevTool が確認できることを知りませんでした。
コマンドパレットで、devtool と入れると、Toggle Developer Tools みたいな選択肢が出てきますので、それで開くことができます。
Performance を見ると、メモリ使用量がどんどん上がっていき、天井に張り付くみたいなグラフになっていました。
まずは拡張機能を全部 OFF にしてみました。すると超軽くなりました。メモリも実際に重い処理をすると一時的に上がりますが、すぐに元に戻る感じになりました。

超重かった理由は分かりませんが、拡張機能の何かがやばかったのかなあと思っております。
とりあえず全部 OFF の状態から始めて、最低限の拡張機能を復活させていきました。
私は WSL2 を使っていますので、WSL, Vim, Git Graph, GitLens だけです。

次に、いつも不満だった HTML タグ編集時の操作性に関する、便利ツールを入れてみました。
Auto Close Tag, Auto Rename Tag, htmltagwrap, indent-rainbow です。最強でした。
htmltagwrap は、vim の vim-surround でも同様のことが出来るのですが、複数行の場合のやり方が分からなかったので、入れてみました。

ちなみに、Cursor の補完とかサジェスト機能で、基本的に十分満足している状況で、さらに、どうも Github Copilot と Cursor の Copilot 的なものは共存が難しいっぽいので、GitHub Copilot は最近 OFF にしていました。
最近は ChatGPT も GitHub Copilot も使わず、全部 Cursor になっております。解約するかも。

PHP については、PHP Intelephense を入れて、フォーマットだけは、php cs fixer を入れてみました。
PHP Intelephense のフォーマッタは細かい設定が、どうも一切ないようで、1 行がすごく長いコードになってしまうことが結構ありました。

php cs fixer の設定方法

こういうのは 1 年後とかに完全に忘れているのでメモしておきます。正直細かいことは何も分かっておりません。動いているからヨシ!と思っております。

前提

  • Windows11, WSL2 ArchLinux を使っています
  • Cursor で WSL 拡張を使って動かしています
  • Laravel10 のプロジェクトで動作確認をしています

PHP-CS-Fixer のインストール

基本的にはこれを動かしているわけであります。ですので、これをインストールする必要があります。
https://github.com/PHP-CS-Fixer/PHP-CS-Fixer

composer require --dev friendsofphp/php-cs-fixer
composer install

上記をやると PHP-CS-Fixer がvendor/binに入ります。

php cs fixer 拡張機能の設定

setting.json に下記を設定してみました。

settings.json
"[php]": {
  "editor.defaultFormatter": "junstyle.php-cs-fixer"
},
"intelephense.maxMemory": 5120,
"intelephense.format.enable": false,
"php-cs-fixer.executablePath": "php-cs-fixer",
"php-cs-fixer.autoFixByBracket": true,
"php-cs-fixer.autoFixBySemicolon": true,
"php-cs-fixer.formatHtml": true,
"php-cs-fixer.onsave": true

私がこの投稿でメモしようとしたのは、WSL の場合、"php-cs-fixer.executablePath": "php-cs-fixer" だと動かなかったぜえ、ということです。
絶対パスを書くとエラーがなくなりました。まあ composer でプロジェクトの vendor に入れているので、これを汎用的な settings.json に書くわけにもいきませんので、ワークスペース用の settings.json に下記のように、設定しました。

settings.json
{
  "php-cs-fixer.executablePath": "/home/dev/pj/xxxxx/vendor/bin/php-cs-fixer"
}

これでエラーが出ずに動くようになりました!

拡張機能のパフォーマンスとか確認できるコマンド

下記の 2 つをコマンドパレットで探して実行すると、拡張機能に関する状態を確認できます。

  • Show Running Extensions
    • 実行中の拡張機能の起動時間?を確認できる。時間が長いやつは重いって感じだと思う。
  • Startup Performance
    • もっと細かいやつ。何しろ今度超重くなったら見てみたいと思っております。

Larael/Livewire 関連で入れようと思っている拡張機能

最低限でよいですし、重くなるやつは全部削除しますが、今入れてみたいのは下記です。

Discussion