PHPの関数対応

現在、真魚にはPHP用に入力補完の単語リストがあったりするが、
そこに並べられている関数名は、萌ディタの定義ファイル?を丸写ししたもの。
実に649もの関数が、何を参考に並べられたものかは知らないが、とりあえずパクった。
予約語は予約語として定義されてるからわかりやすいのだが、
関数は環境によって使えたり使えなかったりするらしく、どれを候補にするかの基準が欲しい。
試しに、今これを書いてるこのPCで、これの関数一覧取得をやってみた。
http://www.doyouphp.jp/sample/sample_others_funclist.shtml
1341もの関数がリストアップされてしまった。
この数でも、単語の入力補完の方は特に問題ないだろう。
問題ありそうなのは、今やろうとしている、色分けの動作の方だ。
よく、正規表現で強調表示するテキストエディタで、条件が増えるほど遅くなるとか言うけど、
真魚の色分けの仕組みでも、英単語を表示する前に、予約語や関数と照らし合わせるわけで、
定義された単語が多ければ多くなるほど描画の足を引っ張ることは避けられない。
描画を遅くしている主な原因はAPI呼び出しであって、語句解析はたいしたことないのだが、
それはたかが数十の予約語しかない場合の話でしかなく、
これほど大量の関数名と照らし合わせることになると、
照らし合わせるアルゴリズムまで考え直さなきゃいけないほど、相当の負荷になりそうだ。
使える関数は環境依存と言うことで、XREAで使える関数も調べてみたら1342。
一個違いだから、どの関数が増えたのかと調べてみたら、そうじゃなくて、
どちらか一方でしか使えない関数が結構たくさんあって、総数がたまたま近かっただけ。
両方で使えそうなものを抜粋してもまだ1000以上ある。
そこで、get_loaded_extensions()で列挙されるモジュールのうち、
standardに属するもののみで関数を取得してみた。
それでも452個もあるのだが、関数名の色分けをやるのなら、これ以上は削れない。
PHP5ならもっと増えるかも知れない。

さらに萌ディタの定義ファイルにあるのは、関数名だけでなく、PHP_VERSIONなどの定数とか、
$_POSTみたいなのとかも載っている。
これもどこからどんな基準で集めてきたのかわからないので調べ直しが必要だが、
とりあえずは関数名までの色分けで実装してみるか。

たぶん関連のある記事:

コメントは終了しています。