オープンソースの国産エディタとして、サクラエディタ
(sakura editor)というテキストエディタがあります。
フリーなのに他言語対応・タブ表示・常駐機能・複数の文法強調表示対応などなど、多機能な優れモノなので、PHPの開発にもこれを用いる方も多いのではないでしょうか。
PHPはビルトイン関数が多いため、PHP関数の強調表示を行うとエディタ側がメモリを食うこともあり、当初は強調表示のためのキーワードファイル(以下、KWDファイル)が配布パッケージ内に含まれていなかったのですが、最近になって含まれるようになりました。
しかし、このKWDファイルはこちら
で公開されているものを使用しているのか、やや古い(2005/01時点のもの)ようです。
このKWDファイル内には、3440のPHPキーワード(予約語や関数)が含まれていますが、PHPのバージョンアップに伴い、2008/09現在では、3900以上のPHPキーワードが存在する模様です。(class内の関数などを入れればもっと多い)
file_put_contents
や JSON 関数
など、比較的新しい関数を利用する場合は、強調表示されなくて困るので、KWDファイルを最新のものに更新するスクリプトを作成してみました。
使い方:- 以下のコードをコピーして、適当な名前(例:make_kwd.php)で保存します。
- コマンドラインで実行する場合は php make_kwd.php > php.kwdと実行します。
ブラウザ上で実行する場合は、適当なサーバに上げて、そのファイルのURLを叩き、表示されるテキストをコピーして php.kwd というファイル名で保存してください。
- あとは、サクラエディタがインストールされているフォルダにある keyword フォルダに同ファイルを上書きコピーして、サクラエディタの[設定]→[共通設定]→[強調キーワード]でPHPのセットに対して、先ほどのファイルをインポートしなおせば完了です。
(参考)サクラエディタでPHPキーワードを強調表示する設定
<?php
// SAKURAエディタ用のPHPキーワードファイル(PHP.KWD)を作成する
// written by php.to
// ----------------------------------------------------------
// classメンバはキーワード化しない場合はTRUEにしてくだい
$SKIP_CLASS = TRUE;
// ----------------------------------------------------------
$base_url = "http://php.manual.php.to/";
$files = array("reserved.html", "indexes.html");
$a = array();
foreach($files as $file) {
$url = "$base_url$file";
if (!file_exists($file) || (filemtime($file) < time() - 86400*7)) {
$body = file_get_contents($url);
file_put_contents($file, $body);
} else {
$body = file_get_contents($file);
}
preg_match_all("!<A\s+HREF=\"[\w\.\#\-]+\"\sclass=\"\w+\"\s*>(.+)</A\s*>!Ui", $body, $matches, PREG_SET_ORDER);
foreach($matches as $match) {
$word = $match[1];
if (($pos = strpos($word, "->")) !== FALSE) {
// class
$word = substr($word, $pos+2);
} elseif (($pos = strpos($word, "::")) !== FALSE) {
$word = substr($word, $pos+2);
}
if (!$pos || !$SKIP_CLASS) {
$a[] = ereg_replace("\(\)$", "", $word);
}
}
}
if ($_SERVER['REMOTE_ADDR']) header("Content-Type: text/plain");
echo "// PHP キーワード定義ファイル\r\n\r\n";
sort($a);
echo implode("\r\n", array_unique($a));
?>
#同様に、KHPファイルも作ろうと思ったのですが、どこかで作成スクリプトを公開されていたような。。。
#残念ながら探し出せませんでしたが、需要があれば作ります。
##なお、サクラエディタはPHPのchmファイルと連携できますが、PHPの公式サイトで配布されている
##chmファイルは一部文字化けしているので、こちら
を参考に、KeyToolsでchmファイルをリビルドすると幸せになれます。