なんのこっちゃって感じですが、秀丸エディタ強調表示定義ファイル(以下 hilight ファイル)を秀丸エディタで開いて編集するための hilight ファイルです。
17,^0*(1|9|17|25|33|41|49|57),.* 81,^0*(65|73|81|89|97|105|113|121),.* 145,^0*(129|137|145|153|161|169|177|185),.* 209,^0*(193|201|209|217|225|233|241|249),.* 275,^0*(259|267|275|283|291|299|307|315),.* 339,^0*(323|331|339|347|355|363|371|379),.* 403,^0*(387|395|403|411|419|427|435|443),.* 467,^0*(451|459|467|475|483|491|499|507),.* 21,^0*(5|13|21|29|37|45|53|61),.* 85,^0*(69|77|85|93|101|109|117|125),.* 149,^0*(133|141|149|157|165|173|181|189),.* 213,^0*(197|205|213|221|229|237|245|253),.* 19,^0*(3|11|19|27|35|43|51|59),.* 83,^0*(67|75|83|91|99|107|115|123),.* 147,^0*(131|139|147|155|163|171|179|187),.* 211,^0*(195|203|211|219|227|235|243|251),.*
それぞれの強調に対応した強調の種類でハイライトします。あとは、コメント(//~行末)の強調とか、カラー・複数行の強調・ツリー定義・#ifdef等の詳細なんかの定義も強調したら完璧でしょうけど。
ついでに、さっき調べた強調のオプション(強調の種類とか大文字小文字を区別するか、とか)と数値の規則を書いておきます。
| 強調の種類 | 数値 |
|---|---|
| 強調1 | 01 |
| 強調2 | 65 |
| 強調3 | 129 |
| 強調4 | 193 |
| 強調5 | 259 |
| 強調6 | 323 |
| 強調7 | 387 |
| 強調8 | 451 |
| 行の強調1 | 05 |
| 行の強調2 | 69 |
| 行の強調3 | 133 |
| 行の強調4 | 197 |
| 特に強調1 | 03 |
| 特に強調2 | 67 |
| 特に強調3 | 131 |
| 特に強調4 | 195 |
上の表の強調の種類に対応する数値とオプションによって以下のそれぞれの値の合計(論理和といっても OK )になります。
| オプション | 足す値 |
|---|---|
| 大文字/小文字の区別が OFF | +8 |
| 単語の検索が ON | +32 |
| 正規表現が ON | +16 |
例を出すと「強調1」で「大文字/小文字の区別がOFF」で「単語の検索がON」で「正規表現がOFF」の場合は 01 + 8 + 32 で 41 となります。( 16 進数の方が分かりやすいのですが、指定は 10 進数でしなくてはならないので...)
しかしこれ...、全通りを列挙しているという原始的な方法なので、設定が 1 つ増えただけで、列挙する数は 2 倍になってしまいますね...。
ていうか、 hilght ファイルの仕様はどこかに書いていないのかしら。他の人の hilght ファイル見て初めて中にコメントが書けることを知ったのだけれど。
あ、もちろん、上の hilght ファイルは手作業で書いたわけではなく。 HSP で自動的に作成しました。
a. 0 = 0x001, 0x041, 0x081, 0x0c1
a. 4 = 0x103, 0x143, 0x183, 0x1c3
a. 8 = 0x005, 0x045, 0x085, 0x0c5
a.12 = 0x003, 0x043, 0x083, 0x0c3
buf = ""
repeat 16
i = cnt
buf += "" + ( a.i + 0x010 ) + ",^0*("
repeat 8
j = cnt
v = a.i
if j & 1 : v += 0x008
if j & 2 : v += 0x010
if j & 4 : v += 0x020
buf += "" + v
if cnt < 7 : buf += "|"
loop
buf += "),.*\n"
loop
mesbox buf, 640, 480
hilightファイルの仕様についてですが、「秀丸エディタマクロヘルプ」のloadhilight文のページに解説が少しありました。(マクロのヘルプは盲点だった...)それと見比べるとところどころ上の表と違っていますね...恐らく当ブログの記事の方が間違っているのだとは思いますが、もう一度検証してみます。
強調5~8の値が公式ヘルプと 2 違うということでしたが、どちらでも問題ないようです。上の表は実際に保存して確かめた値です。参考までに 0 ~ 1023 のフラグで読み込んで保存したもの。