テキストエディタの oedit に PHP 用の設定ファイルを作成する

Windows 用のテキストエディタ oedit に PHP の関数をハイライト化する設定をしてみる。

簡易マニュアル

oedit.exe が置かれているディレクトリの doc フォルダにマニュアルがある。

  • keyword.txt
  • languages.txt

PHP のマニュアルをダウンロードする

http://jp.php.net/download-docs.php から、日本語の「Many HTML files」からマニュアルをダウンロードする。

% mkdir phpcfg
% cd phpcfg
% wget http://jp.php.net/get/php_manual_ja.tar.gz/from/this/mirror
% tar zxvf php_manual_ja.tar.gz

マニュアルを展開する

圧縮されたマニュアルを展開すると、(今回は)「html」というディレクトリが生成されるので、「html」に移動する。

% cd html

PHP の関数名を取得する

マニュアルの(html)ファイル名に記載されている関数名をコマンドから取得する。

ls function.* | sed 's/^[a-z0-9]*\.\([-_a-z0-9.]*\)\.html$/\1/' | sed 's/-/_/g' | sed 's/\./->/g' | sort > ~/php.txt

oedit.exe ファイルが置かれているディレクトリにある data フォルダに作成された php.txt を保存する。そして、他にハイライトしたいキーワードを追加して保存する。
作成後の設定ファイルは下記の通り。

php.cfg

// language setttings for PHP5
KeywordNocase:FALSE
KeywordFile:php.txt
OpenComment:/*
CloseComment:*/
RowComment://
BreakChars: ,.:;(){}'"=><-|&*+-/%!^
OperatorChars:=!&|^~*/+-%<>;:.,(){}
BracketChars:)}
QuoteChars:"'
EscapeChar:\
LanguageKeywordChars:$
CStyleIndent:TRUE
TagLanguageMode:FALSE

php.txt

if
elseif
else
do
while
for
foreach
switch
case
break
continue
class
public
protected
private
function
new
&&
extends abs acos acosh addcslashes addslashes aggregate aggregate_info aggregate_methods aggregate_methods_by_list aggregate_methods_by_regexp aggregate_properties aggregate_properties_by_list aggregate_properties_by_regexp aggregation_info apache_child_terminate apache_get_modules apache_get_version apache_getenv apache_lookup_uri apache_note apache_request_headers apache_reset_timeout apache_response_headers apache_setenv apc_add apc_cache_info apc_clear_cache apc_compile_file apc_define_constants apc_delete apc_fetch apc_load_constants apc_sma_info apc_store apd_breakpoint apd_callstack apd_clunk apd_continue apd_croak apd_dump_function_table apd_dump_persistent_resources apd_dump_regular_resources apd_echo apd_get_active_symbols apd_set_pprof_trace apd_set_session apd_set_session_trace apd_set_session_trace_socket array array_change_key_case array_chunk array_combine array_count_values array_diff array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey array_fill array_fill_keys array_filter array_flip array_intersect array_intersect_assoc array_intersect_key array_intersect_uassoc array_intersect_ukey array_key_exists array_keys array_map array_merge array_merge_recursive array_multisort array_pad array_pop array_product array_push array_rand array_reduce array_replace array_replace_recursive array_reverse array_search array_shift array_slice array_splice array_sum array_udiff array_udiff_assoc array_udiff_uassoc array_uintersect array_uintersect_assoc array_uintersect_uassoc array_unique array_unshift array_values array_walk array_walk_recursive (以下略)