Web、サーバ、ソフトウェア、バグ・脆弱性 などの情報を何人かで集まって書いていく IT/Web情報系ブログ

TeraPadで強調表示されるPHPのキーワード、予約語を増やす

投稿日:   最終更新日:2016/01/31  投稿者:nk.

手に馴染んだエディタが一番使いやすいですよね。
たとえEclipseが高機能でオススメとか言われてもスクリプト言語でIDEとか、プロではないシュミグラマからするとゴチャゴチャ鬱陶しいのです。
かといってファイル同士の見比べがしづらいMDIもなんかヤダ。
自分が昔書いたコードを再利用しまくってるような人間なので、MDIだとめんどくさいんです。

自分は確か2005年ぐらいからちょいちょいプログラミングをやり始めて、当時からTeraPadばかり使ってます。
node.jsとかかじった時はEclipseに浮気もしましたけど、立ち上げの遅さで次第に使わなくなりましたね。
何より、Windows付属のメモ帳だけでは物足りない!って程度だとそこまで要らんのです。

というわけでTeraPadを愛用してまして、Perlを書くときもPHPを書くときもHTMLを書くときも、C++を書くときでさえTeraPadでした。
しかしTeraPadでPHPを編集してるとつらいことが。

デフォルトのハイライトキーワード少ね~~~!!

というわけで今回は、TeraPadで強調表示されるPHPのキーワードを増やします。

WordPress対応版(ファイルもあるよ)はこちらの記事へ

TeraPadでphp.kwdを作成する

まずはReadmeを読みましょう。

■キーワードファイルについて

「Perl」「PHP」「CSS」「Ruby」「BAT」「C/C++」「Java」「VB」「HSP」
「Delphi」の各編集モードのデフォルトのキーワードは内部に持っています。
オプションの[色]タブの[キーワード編集]ボタンを押した際、下記の
各キーワードファイルが存在しない場合はデフォルトの状態のキーワード
ファイルが作成されます。
また、TeraPad.exeと同じフォルダ内にキーワードファイルが存在する場合は、
新しいINIフォルダが作成される毎にそのフォルダへコピーされます。

・perl.kwd Perlモード用
・php.kwd PHPモード用
・css.kwd CSSモード用
・ruby.kwd Rubyモード用
・bat.kwd BATモード用
・cpp.kwd C/C++モード用
・java.kwd Javaモード用
・js.kwd JavaScriptモード用
・vb.kwd VBモード用
・hsp.kwd HSPモード用
・delphi.kwd Delphiモード用

ぶっちゃけ、PHPのキーワード少ないから他にエディタないかなーって探してたら書いてあったんですよね。
みんなReadmeはよく読もうね。

さてここに書いてある通りの手順でTeraPadのインストールディレクトリの中のユーザディレクトリ(win7ならC:\Program Files (x86)\TeraPad\usr\hoge\とか)にphp.kwdってファイルが生成されたと思います。

スポンサーリンク

PHP強調表示用キーワードリスト

ここからが正念場、ごっそり予約語抜いちゃるけんの~!と思ったものの、PHPマニュアルを見てギャース!ですよ。なんだこの異様に多い量は。ふざけてんのか。

手動で追加することはあきらめて、既存のキーワードリストを探します。
そしてたどり着いたのが サクラエディタのPHP強調キーワード設定方法(色分け表示)、入力補完機能の使い方 です。さくらエディタ用なので、ここで公開されているファイルを加工して使おうと思います。

何はともあれDLしましょう。

使いたい方は、 ダウンロード(2009-01-26更新) して使ってください。
PHP.KWD は http://www.php.net/manual/ja/ を参考に作った。
語数は約6000語ある。

いやあ、すごいですね。6000ですって。死にそう。

DLしたファイルを解凍してとりあえずPHP.KWDを覗いてみますと、多くのクラスのメソッドまで網羅されてます。うひー。
TeraPadではインスタンスまで強調されそうにはないので今回はクラス名だけ残すことにしました。

必要なやつだけを抽出するPerlスクリプト

てなわけで抽出に用いたPerlスクリプトが次になります。

use strict;

my $file	= 'php.kwd';
my @kwdList	= getKeyList($file);

$,=$/;
print @kwdList;

sub getKeyList($){
	my $filename	= shift;
	my @retList;
	my $lastStr	= undef;
	open my $FH, $filename;
	/^[\/\s]+/ or /^(\w+)/ and $_=$1 and $lastStr eq $_ or $lastStr=$_ and push @retList, $_ for<$FH>;
	close $FH;
	return @retList;
}

出来たファイルも置こうかと迷いましたけど、MEMORVAの人が お問い合わせ頂いても、法人以外には返信する余裕がありません。と書いてらっしゃるのでとりあえず各自で抽出してくらはい。機会があれば置いていいか問い合わせます。めんどいからたぶんしないけど。

上のPerlスクリプトをなんか適当な名前で保存して実行します。そのとき、

> chopper.pl > hoge.txt

みたいな感じでファイル出力させてください。
書いてて思ったけどPHPの予約語を読者に作らせるのにPerlコードを公開するってなかなかアレだな。まあいいや。

出てきたファイルをリネームしてTeraPadのReadmeにあったフォルダにぶちこむなりコピペして上書き保存するなりしてください。
とりあえずいい感じに強調表示されるようになるかと思います。めでたしめでたし。

あとがき

このキーワードリストは2009年のものなので若干古く、PHP5.4以降のキーワード(例えばcallableとか)には対応してないっぽいです。
エディタ探してるときにためしに導入したnotepad++でのPHPのキーワードリストの定義ファイルを見てみると、こちらは2011年のものっぽいので、こちらのほうが幾分新しいですね。
ただXMLなのでめんどくさい。そのためにわざわざnotepad++をDLするのもアレだし。

っつーわけで、最新のキーワードリスト誰か作らないですかね~~?というあたりで今回はおしまいです。

え?今更訊けないPerl講座?……忘れろ!!

- TeraPad ,

Message

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事