|
IKKI です。こんにちは。
> >Aの場合においても、『ああああ』の部分を甲種、『いいいい』の部分を乙種にす
> >ることはできませんでしょうか?
>
> entakaさん、こんにちは。おっしゃる通りですね。私もentakaさんと同じ希望で
>す。
そう来ると思いました。(^^;
現在の秀丸の正規表現+強調表示の仕組みではこれ以上のことは難しいです。
場当たり的な工夫はできてもスマートには行かないでしょう。
3つの解決策があります。
(1) 強調表示にコンテキスト指定みたいな機能を付けてもらう
強調文字列ごとに「普通の文字の上でのみ有効」「強調表示1の上でのみ有効」
という具合に適用個所を限定できれば、希望の動作が実現できます。
秀丸担当さんにお願いしてみましょう。
(2) カラーマーカーを使う
強調表示ではなくカラーマーカーを使えば任意の色づけが可能です。
例えばこんなマクロで。
// Marker_nest.mac
#backcolor[1] = 0xC080FF; #textcolor[1] = 0x000000;
#backcolor[2] = 0x00A0FF; #textcolor[2] = 0x000000;
#backcolor[3] = 0x00FFFF; #textcolor[3] = 0x000000;
#backcolor[4] = 0x00FFA0; #textcolor[4] = 0x000000;
#backcolor[5] = 0xFFD070; #textcolor[5] = 0x000000;
searchdown2 "[()]", regular;
while (result) {
if (code == '(') {
##nest = ##nest + 1;
beginsel; gokakko; right;
colormarker #textcolor[##nest], #backcolor[##nest], 11, 0;
moveto seltopx, seltopy; escape; right;
} else {
##nest = ##nest - 1;
}
finddown;
}
(3) インデントで表現する
お二人の目的は法律文のようなものを間違いなく読むことかと思います。
要は括弧の深さが視覚的にわかればいいのなら、色分けにこだわらず
字下げで表現してもいいのではないでしょうか。例えばこんなマクロで。
$indent = " ";
searchdown2 "[()]", regular;
while (result) {
if (code == '(') {
##nest = ##nest + 1;
escape; right;
} else {
##nest = ##nest - 1;
escape;
}
insert "\n" + leftstr($indent, ##nest * 2);
finddown;
}
▼使用前
第三十七条の二十七 この節の規定は、〜中略〜無線設備及び関連情報送出装置
(関連情報(高精細度テレビジョン放送(デジタル放送を除く。)に関する送信の標
準方式(平成三年郵政省令第十六号。以下「高精細度テレビジョン放送(デジタル放
送を除く。)の標準方式」という。)第十八条第一項第三号に規定する関連情報をい
う。)を送出する装置をいう。)から送信空中線までの範囲(中継線及び連絡線を除
く。)の無線設備に適用があるものとする。
▼使用後
第三十七条の二十七 この節の規定は、〜中略〜無線設備及び関連情報送出装置(
関連情報(
高精細度テレビジョン放送(
デジタル放送を除く。
)に関する送信の標準方式(
平成三年郵政省令第十六号。以下「高精細度テレビジョン放送(
デジタル放送を除く。
)の標準方式」という。
)第十八条第一項第三号に規定する関連情報をいう。
)を送出する装置をいう。
)から送信空中線までの範囲(
中継線及び連絡線を除く。
)の無線設備に適用があるものとする。
|
|