環境
- MacBook Pro(Catalina 10.15.7)
- VSCode(1.63.2)
- PHP(8.0)
- Docker Desktop(4.3.1)
はじめに
普段はフロントエンドメインの開発を行なってますが、Laravel で API 周りの実装もしないといけなくなったので、使い慣れてる VSCode にいくつか PHP の Extension を入れてみました。
その中で、ハイライト、コード補完、構文チェックなどなど、開発にあたり一通りの機能が揃ってて、評価の良い PHP Intelephense も導入しました。
機能としては申し分なく期待通りだったんですが、なぜか、PHP8.0 から導入されたであろう名前付き引数で、変数名が補完されるにも関わらず構文エラーが発生。
また、複数の戻り値の型を指定すると同じくエラー。
当初は、ツールの問題だろうと思い disable/enable してみたり、再インストールしてみたり、いろいろ試行錯誤しましたが解消されず。。。
諦めてしばらく使ってたんですが、どうしても気持ち悪かったので、本腰入れて解決することにしました。
もし同じ問題に悩まされている人の手助けになれば幸いです。
結論
前置きが長くなってしまったので、結論から言うと、VSCode にビルトインされている PHP の Extension があって、そいつが悪さ(ではないのだろうけど)をしていたようです。
なので、その機能を無効にし、PHP Intelephense の機能だけを使うことで問題が解消されるはずです。
解決手順
1: VSCode の Extensions を開き、検索ボックスに @builtin php
を入力する
2: 表示された Extension の PHP Language Features
の設定アイコンをクリックし、Disable
を選択して無効にする
3: Reload Required
が表示されるのでクリックして VSCode を再起動する
これで二箇所の構文エラーが無事に消えるようになりました
名前付き引数 | 複数のリターンタイプ宣言 |
---|---|
終わりに
やっと気持ち悪さから解放されてガッツリ開発に集中できそうです!
そもそもこの手順は、マーケットプレイスのクイックスタートに書かれているんですが、それをノールックしてしまったのがいけなかったです
何か問題が発生した時はあらためて公式のドキュメントを読むべきですね。。。