// TAB=4 // 実行には PPA.DLL が必須です。sakura.exe と同じフォルダに PPA.DLL を入れておいてください。 // マクロファイルの拡張子は .PPA でなくてはなりません。 // 対括弧の内部のみを選択状態にする。 // サクラエディタの対括弧検索の現在の仕様である // 「カーソルの右が括弧なら、その括弧に対して対括弧検索する。 //  カーソルの右が括弧でない場合、左が括弧ならその括弧に対して //  対括弧検索する。」 // という動作に合わせて作ってあります。 var chr:String; // 文字列変数を用意 begin S_CancelMode(0); // 各種モードの取り消し - 念のため選択状態をキャンセルしておく // カーソル位置の右の1文字を chr に取得する。 S_MoveHistSet(0); // 現在位置を移動履歴に登録 S_Right_Sel(0); // (選択)カーソル右移動 chr := S_GetSelectedString(0); // 選択部分の文字列を取得 S_CancelMode(0); // 各種モードの取り消し - 選択状態をキャンセル S_MoveHistPrev(0); // 移動履歴: 前へ if ( (chr = '(' )or(chr = '[' )or(chr = '{' )or(chr = '<' )or(chr = '「' )or (chr = '【')or(chr = '『')or(chr = '「')or(chr = '<')or(chr = '≪')or (chr = '《')or(chr = '(')or(chr = '〈')or(chr = '{')or(chr = '〔')or (chr = '[')or(chr = '“')or(chr = '') ) then begin // カーソルの右が括弧だった。 S_Right(0); // カーソル右移動 - 括弧内へ移動 S_BeginSelect(0); // 範囲選択開始 S_Left(0); // カーソル左移動 - 元の位置へ戻ってから対括弧検索しないと、「 |((xx)xx) 」( |がカーソルね)とかの場合に間違って2個目の括弧で対括弧検索してしまうので. S_BracketPair(0); // 対括弧の検索 S_Right(0); // カーソル右移動 S_Left(0); // カーソル左移動 exit; // マクロ終了 end; if ( (chr = ')' )or(chr = ']' )or(chr = '}' )or(chr = '>' )or(chr = '」' )or (chr = '】')or(chr = '』')or(chr = '」')or(chr = '>')or(chr = '≫')or (chr = '》')or(chr = ')')or(chr = '〉')or(chr = '}')or(chr = '〕')or (chr = ']')or(chr = '”')or(chr = '') ) then // カーソルの右が閉じ括弧だった。 begin S_BeginSelect(0); // 範囲選択開始 S_BracketPair(0); // 対括弧の検索 S_Right(0); // カーソル右移動 exit; // マクロ終了 end; // カーソル位置の左の1文字を chr に取得する。 S_MoveHistSet(0); // 現在位置を移動履歴に登録 S_Left_Sel(0); // (選択)カーソル左移動 chr := S_GetSelectedString(0); // 選択部分の文字列を取得 S_CancelMode(0); // 各種モードの取り消し - 選択状態をキャンセル S_MoveHistPrev(0); // 移動履歴: 前へ if ( (chr = '(' )or(chr = '[' )or(chr = '{' )or(chr = '<' )or(chr = '「' )or (chr = '【')or(chr = '『')or(chr = '「')or(chr = '<')or(chr = '≪')or (chr = '《')or(chr = '(')or(chr = '〈')or(chr = '{')or(chr = '〔')or (chr = '[')or(chr = '“')or(chr = '') ) then begin // カーソルの左が括弧だった。 S_BeginSelect(0); // 範囲選択開始 S_BracketPair(0); // 対括弧の検索 S_Right(0); // カーソル右移動 S_Left(0); // カーソル左移動 exit; // マクロ終了 end; if ( (chr = ')' )or(chr = ']' )or(chr = '}' )or(chr = '>' )or(chr = '」' )or (chr = '】')or(chr = '』')or(chr = '」')or(chr = '>')or(chr = '≫')or (chr = '》')or(chr = ')')or(chr = '〉')or(chr = '}')or(chr = '〕')or (chr = ']')or(chr = '”')or(chr = '') ) then // カーソルの左が閉じ括弧だった。 begin S_Left(0); // カーソル左移動 S_BeginSelect(0); // 範囲選択開始 S_BracketPair(0); // 対括弧の検索 S_Right(0); // カーソル右移動 exit; // マクロ終了 end; end;