編集中のプログラムのコードって、カッコが不統一だったり、ダブルクォートが入力途中だったり、メソッド名も不完全だったり...と必ずシンタックスエラーがある状態だと思います。Tree-sitterはそういった入力途中みたいなものを前提にしつつ、文脈を読んで構文解析をしやすいパーサーを作るためのツールで、それをもとにいろいろなプログラミング言語のパーサーが開発されています。ツール自体は共通のインターフェースになっていて、EmacsでもこのTree-sitterを使っていこうという流れが最近できています。白石:今までも、Emacsでは入力途中に補完されたりエラーが表示されたりしていましたよね。このTree-sitterに移行することによって、さらに進化したり速くなったりするんですか?tadsan:そうですね。みたいなことをやるのでCPUの負荷が高いんです。今後は、コードのパース処理をTree-sitter製のライブラリに置き換えることで、正規表現を使ったヒューリスティックなパースよりも、速くて安定したものになるんじゃないかと思います。最後はPHPStanというツールについてご紹介頂けるとのことですね。PHPStanとはどのようなものでしょう?tadsan:PHPStanは、最近人気が出てきた静的解析ツールです。これまでは、テキストエディターによる静的解析、それをもとにした入力補完やエラー検出などの点では、PHPStormなどの有料製品に遅れを取っているような状態だったんです。この2018年以降、いくつかPHP向けの(オープンソースの)静的解析ツールが登場しました。PHPStanもその1つです。製品の品質を保ったままの開発ができる体制が作れるようになってきています。私もコントリビューターとして機能や修正を提案したり、日本語のコミュニティやカンファレンスでPHPStanの説明や布教をしたりしているところです。白石:これ自体はEmacs専用ではなくて、PHPの構文解析をして解析をするというライブラリなんですね?それをEmacsから呼び出すんですか。PHPStanを呼び出すと、「どこのファイルの何行目に問題がある」というのをすぐに出してくれます。それを、こちらの画面真ん中にあるように、ユーザーに知らせていけばいい。