「カッコで囲う」の版間の差分
新規作成 |
"カッコで囲う (ポップアップメニューなし)" を追加 |
||
| 116行目: | 116行目: | ||
} | } | ||
} | } | ||
</source> | |||
= カッコで囲う (ポップアップメニューなし) = | |||
特定の種類のカッコを一発で追加する小マクロは[[キーアサイン集#括弧で挟む|キーアサイン集]]にもありますが、前後に付けるカッコのかわりに任意の文字列を指定するばあいに「折り返し」表示と相性のよくない部分があります。 | |||
また、マクロ実行後のカーソル位置を選択範囲'''なし'''のときと'''あり'''のときとで変えたいばあいも、こちらのコードがよいかとおもいます。 | |||
<source lang="javascript"> | |||
#title = "( カッコ )" | |||
#tooltip = "( カッコ ) で囲う" | |||
// MeryWiki の マクロライブラリ >> キーアサイン集 の「括弧で挟む」を改変 | |||
// 選択範囲の前後にカッコ以外にも任意の文字列を追加するマクロとしても流用できます | |||
var s = document.selection; | |||
// 選択範囲の各座標を取得 | |||
var ax = s.GetTopPointX( mePosLogical ); | |||
var ay = s.GetTopPointY( mePosLogical ); | |||
// 選択範囲のテキストを取得し、カッコを追加 | |||
var st = s.Text; | |||
var pre = "("; // 前に付ける文字列 | |||
var sur = ")"; // 後ろに付ける文字列 | |||
s.Text = pre + st + sur; | |||
// カーソルを移動、または範囲選択 | |||
if ( ! st ) // 選択範囲なしだったばあい | |||
s.SetActivePos( s.GetActivePos() - sur.length ); // 後ろに付けた文字列 sur の前にカーソルを移動 | |||
else // 選択範囲があったばあい | |||
s.SetAnchorPoint( mePosLogical, ax, ay ); // カッコを含めて範囲選択 | |||
</source> | </source> | ||
スポンサーリンク