Macro/投稿/128

http://sakura.qp.land.to/?Macro%2F%C5%EA%B9%C6%2F128


Top > Macro > 投稿 > 128

対括弧の内部のみを選択状態にする

  • ページ: Macro/投稿
  • 作者: すい?
  • カテゴリー: ppa
  • 投稿日: 2002-12-21 (土) 17:46:10

メッセージ

fileSBRACKET.PPA
  0
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
// 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;
 


URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

添付ファイル: fileSBRACKET.PPA 351件 [詳細]

リロード   新規 編集 凍結 差分 添付 複製 名前変更   ホーム 一覧 単語検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
Last-modified: 2006-07-30 (日) 04:03:56 (4405d)