1.
EPM のツールバーを非表示にしている場合は、まずプルダウンメニューの「オプション(O)→環境設定(R)→設定(S)...」を選んで設定ノートブックを表示し、「ツールバー(T)」ページの「ツール・バーの表示」チェックボックスをチェックして、設定ノートブックを閉じ、ツールバーを表示させて下さい。
2.
ツールバーをマウスの第2ボタンでクリックし、ポップアップメニューの「ボタンの作成...」を選びます。
「カスタマイズ」ダイアログが表示されるので、下記の通り編集して、ダイアログを閉じます。
「アクション」ページ:
機能 ... a_Togl_Hilit を選択
「一般」ページ:
タイトル ... 任意(例えば「キーワード強調」)
ビットマップ ... 任意(例えば「組込み...」→左から27番目を選択)
3.
ボタンの追加が終わったら、再びツールバーをマウスの第2ボタンでクリックし、ポップアップメニューの「名前を付けて保管...」を選びます。名前入力ダイアログが表示されるので、適当な文字列を入力して「保存」ボタンを押して下さい。
余談ですが、このファイルは初期状態ではファイルサイズが大きすぎて読み込みに時間が掛かるので、半角スペースの羅列をタブ文字などに置換したり、不要なキーワードの行を削除するなどしてファイルサイズを小さくすると、読み込み時間を短くできます。
EPMKWDS.* ファイルは、EPM の編集ウィンドウを開き、そのタイプのファイルを初めて開いた際に、1度だけ読み込まれます。
EPMKWDS.* ファイルを編集し、その内容を反映させたい場合は、一旦 EPM の編集ウィンドウを閉じる必要があります。
下記のファイルは、EPM と一緒に x:\OS2\APPS ディレクトリにインストールされており、すぐにキーワード色付け機能の恩恵を得られます。
(但し、色の選定は無茶苦茶...白地に白文字とか...IBMの人らはこれで読めてるのか?^^;)
更に、C/C++言語、REXXスクリプト及びバッチファイル、E言語、HTMLの4種は、EPM がファイルを読み込んだ時点で、自動的にキーワード色付け機能がオンになります。
(英語版バージョン 6.03B では、他のタイプのファイルもきちんと自動色付けされる)
EPMKWDS.C ... C/C++言語
対象ファイル:*.C *.CPP *.CXX *.H *.HPP *.HXX
EPMKWDS.CMD ... REXXスクリプト及びバッチファイル
対象ファイル:*.CMD *.BAT
EPMKWDS.E ... E言語
対象ファイル:*.E
EPMKWDS.HTM ... HTML
対象ファイル:*.HTM *.HTML
EPMKWDS.IPF ヘルプファイル(.HLP .INF)のソース
対象ファイル:*.IPF
EPMKWDS.JAV ... Java言語
対象ファイル:*.JAV *.JAVA
EPMKWDS.PL ... Parl
対象ファイル:*.PL *.PRL *.PARL
EPMKWDS.RC ... リソースファイル
対象ファイル:*.RC
EPMKWDS.SCR ... ?
対象ファイル:*.SCR *.SCT *.SCRIPT
EPMKWDS.TEX ... TeX
対象ファイル:*.TEX *.LATEX *.STY *.DLS *.DTX
EPMKWDS.RXP ... ?
対象ファイル:*.RXP
EPMKWDS.MAK ... メークファイル
対象ファイル:*.MAK MAKEFILE
EPMKWDS.F90 ... Fortran言語
対象ファイル:*.FOR *.FORTRAN *.F90
EPMKWDS.ADA ... ADA言語
対象ファイル:*.ADA *.ADB *.ADS
キーワードを色付けする条件は、1つのキーワードに1行ずつ記述されます。
条件の指定のために必要な文字列及び数値を、半角空白文字またはタブ文字で区切って記述します。先頭及び末尾の半角空白文字及びタブ文字は無視されます。
キーワードを色付けする条件は、幾種類かの「トピック」で分類されます。
前述の「トピック」の境界線の行から、次の「トピック」の境界線の行までが、その「トピック」での色付け条件の記述と見なされます。
定義されている「トピック」と、それぞれのキーワード定義記述フォーマットは、以下の通りです。
トピック:DELIM
フォーマット:開始文字列 背景色 前景色 終了文字列 回避文字 カラム値
開始文字列〜終了文字列間が、背景色及び前景色に色付けされます。
ただし、開始文字列と終了文字列が同じ行に無い場合は、色付けは行われません。
終了文字列以降は省略可能です。終了文字列が省略された場合、開始文字列の後が全て色付け対象になります。
回避文字が指定されている場合、開始文字列及び終了文字列の直前に回避文字が記述されている場合、そこは開始/終了文字列扱いとはしなくなります。
また、回避文字が2つ続けて記述されている場合、それを回避文字扱いとはしなくなります。
カラム値が記述されている場合、開始文字列がカラム値から始まる場合のみ開始文字列は有効になります。
間のパラメータ記述を省略したい場合、例えばカラム値を指定したいが回避文字を指定したくない場合などは、前述の「特別な文字」を穴埋めに使用します。
=== 例 === @ @DELIM @ 上から順に、Cコメント、C++1行コメント、文字列の色付け定義 @ /* -1 8 */ // -1 8 " -1 2 " \ ' -1 2 ' \ ===
トピック:DELIMI
フォーマット:開始文字列 背景色 前景色 終了文字列 回避文字 カラム値
記述ルールは DELIM と同じで、大小文字を区別しません。
トピック:SPECIAL
フォーマット:対象文字列 背景色 前景色
対象文字列を背景色及び前景色で無条件で色付けします。使用する文字に制限はありません。
=== 例 === @ @SPECIAL @ 各種括弧の色付け定義 @ { -1 5 } -1 5 [ -1 5 ] -1 5 ( -1 5 ) -1 5 ===
トピック:SPECIALI
フォーマット:対象文字列 背景色 前景色
記述ルールは SPECIAL と同じで、大小文字を区別しません。
トピック:CHARSET
フォーマット:対象文字群
後述のトピック KEYWORDS 及び INSENSITIVE において、「単語」扱いする文字のリストです。
=== 例 === @ @CHARSET @ 全ての英数字とアンダーバーを単語に用いる文字と定義 @ abcdefghijklmnopqrstuvwxyz_ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ===
トピック:KEYWORDS
フォーマット:対象文字列 背景色 前景色
対象文字列の前後に、前述のトピック CHARSET で指定された文字が存在しない、つまり対象文字列が「単語」である場合のみ背景色及び前景色で色付けします。
対象文字列には、前述のトピック CHARSET で指定された文字以外は使用してはいけません。
=== 例 === @ @KEYWORDS @ Cプリプロセッサキーワード(の一部)の色付けを定義 @ __FILE__ -1 9 __LINE__ -1 9 __DATE__ -1 9 __TIME__ -1 9 ===
トピック:INSENSITIVE
フォーマット:対象文字列 背景色 前景色
記述ルールは KEYWORDS と同じで、大小文字を区別しません。
トピック:BREAKCHAR
フォーマット:対象文字 背景色 前景色
特定の文字から始まるキーワードを連続して記述する可能性があり、その特定の文字を区切り扱いしたい場合に使用します。
トピック KEYWORDS 及び INSENSITIVE の中のキーワードが捜される場合、この文字は先頭の区切り文字として扱われます。
色が指定されると、その文字だけ独自の色付けが行われ、省略されると、KEYWORDS または INSENSITIVE と同じ色になります。
トピック:ENDCHAR
フォーマット:対象文字 背景色 前景色
特定の文字で終わるキーワードを連続して記述する可能性があり、その文字を区切り扱いしたい場合に使用します。
トピック KEYWORDS 及び INSENSITIVE の中のキーワードが捜される場合、この文字は末尾の区切り文字として扱われます。
色が指定されると、その文字だけ独自の色付けが行われ、省略されると、KEYWORDS または INSENSITIVE と同じ色になります。
0 - ■■■■黒
1 - ■■■■濃青
2 - ■■■■濃緑
3 - ■■■■濃水
4 - ■■■■濃赤
5 - ■■■■濃紫
6 - ■■■■茶
7 - ■■■■濃灰
8 - ■■■■薄灰
9 - ■■■■青
10 - ■■■■緑
11 - ■■■■水
12 - ■■■■赤
13 - ■■■■紫
14 - ■■■■黄
15 - ■■■■白
ソースファイル修正の前に、まず MYCNF.E ファイルを作成する必要があります。
これは、今からビルドする EPM の様々な機能の有効/無効を記述するファイルで、このソースファイルが無いままビルドすると、一部の機能が使えない EPM が出来上がってしまいます。しかし、デフォルトの EPM.EXE をビルドするための MYCNF.E ファイルは、アーカイブに含まれていません。
とりあえず、よく似た出来映えになるファイルを用意してみましたので、面倒臭い方は、そのままダウンロードして、他のソースファイルと同じディレクトリにコピーして下さい。
次に、いよいよ対象ファイルの設定をカスタマイズします。
対象ファイルは LOAD.E ファイル。このファイルの最後の方に、各ファイルタイプ毎に読み込む EPMKWDS.* ファイルを定義している個所があります。
=== 該当個所 === compile if MAKE_KEYWORD_HIGHLIGHTING and EPM32 if (upcase(rightstr(.filename,8))='MAKEFILE' | load_ext='MAK') & .visible then 'toggle_parse 1 epmkwds.mak' endif compile endif ===これのすぐ後ろに、自分が所望するファイルタイプ(拡張子)と、読み込む EPMKWDS.* ファイルを追記してやれば良いのです。
=== 例 === if load_ext='ASM' & .visible then 'toggle_parse 1 epmkwds.asm' endif if load_ext='AWK' & .visible then 'toggle_parse 1 epmkwds.awk' endif if upcase(leftstr(substr(.filename,lastpos('\',.filename)+1),7))="CONFIG." & .visible then 'toggle_parse 1 config.epmkwds' endif ===上記の例では、拡張子が *.ASM のファイル、*.AWK のファイル、 そしてファイル名が CONFIG.* のファイルに対して、 それぞれ EPMKWDS.ASM、EPMKWDS.AWK、CONFIG.EPMKWDS を 読み込んで色付けを行うよう定義しています。
ソースの修正が終わったら、ビルド(実行バイナリの作成)を行います。
コマンドプロンプトを開き、ソースファイルが存在するディレクトリで ETPM.EXE EPM.E と入力して下さい。
エラーメッセージが出力されず、新しい EPM.EX ファイルが作られれば、終了です。