search
LoginSignup
12

More than 1 year has passed since last update.

posted at

updated at

VSCodeのPHP Intelephenseで構文エラーが消えない問題

環境

  • 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 から導入されたであろう名前付き引数で、変数名が補完されるにも関わらず構文エラーが発生。

スクリーンショット 2021-12-21 9.27.22.png

また、複数の戻り値の型を指定すると同じくエラー。

スクリーンショット 2021-12-21 9.52.35.png

当初は、ツールの問題だろうと思い disable/enable してみたり、再インストールしてみたり、いろいろ試行錯誤しましたが解消されず。。。

諦めてしばらく使ってたんですが、どうしても気持ち悪かったので、本腰入れて解決することにしました。
もし同じ問題に悩まされている人の手助けになれば幸いです。

結論

前置きが長くなってしまったので、結論から言うと、VSCode にビルトインされている PHP の Extension があって、そいつが悪さ(ではないのだろうけど)をしていたようです。
なので、その機能を無効にし、PHP Intelephense の機能だけを使うことで問題が解消されるはずです。

解決手順

1: VSCode の Extensions を開き、検索ボックスに @builtin php を入力する

スクリーンショット 2021-12-21 9.28.07.png

2: 表示された Extension の PHP Language Features の設定アイコンをクリックし、Disable を選択して無効にする

スクリーンショット 2021-12-21 9.28.22.png

3: Reload Required が表示されるのでクリックして VSCode を再起動する

これで二箇所の構文エラーが無事に消えるようになりました :tada:

名前付き引数 複数のリターンタイプ宣言
スクリーンショット 2021-12-21 9.29.12.png スクリーンショット 2021-12-21 9.53.00.png

終わりに

やっと気持ち悪さから解放されてガッツリ開発に集中できそうです!
そもそもこの手順は、マーケットプレイスのクイックスタートに書かれているんですが、それをノールックしてしまったのがいけなかったです :sweat_smile:
何か問題が発生した時はあらためて公式のドキュメントを読むべきですね。。。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
12