Macro/投稿/201

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


Top > Macro > 投稿 > 201

テキスト非選択でも現在行を逆インデント

  • ページ: Macro/投稿
  • 作者: ルーチェ?
  • カテゴリー: js
  • 投稿日: 2011-10-30 (日) 21:06:11

メッセージ

テキスト非選択状態であっても現在行の行頭に対して逆インデントを行います。
テキスト選択状態の場合は通常通りの逆インデントを行います。
Shift+Tab に標準の逆TABインデントの代わりに割り当てて使うことができます。

fileUnIndent.js
  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
/**
 * @file   UnIndent.js
 * @brief  テキスト非選択状態でも逆インデントを行うサクラエディタ用マクロ。
 * @author ルーチェ
 *
 * テキスト非選択状態であっても現在行の行頭に対して逆インデントを行います。
 * テキスト選択状態の場合は通常通りの逆インデントを行います。
 * Shift+Tab に標準の逆TABインデントの代わりに割り当てて使うことができます。
 */
(function()
{
    switch (Editor.IsTextSelected())
    {
    case 0: // 非選択時
        {
            // 現在位置と現在行保存
            pos = parseInt(Editor.ExpandParameter('$x')) - 1;
            lineOld = Editor.GetLineStr(0);
 
            // 行全体を選択
            Editor.GoLineEnd();
            Editor.GoLineTop_Sel();
 
            // 選択範囲があれば(改行のみの行でなければ)
            if (Editor.IsTextSelected() != 0)
            {
                // 逆インデント
                Editor.UnindentTab();
 
                // 選択外し(逆インデントした行の先頭へ移動)
                if (Editor.GetSelectLineFrom() == Editor.GetSelectLineTo())
                {
                    // EOF行の場合
                    Editor.GoLineEnd();
                    Editor.GoLineTop();
                }
                else
                {
                    // 通常行の場合
                    Editor.Up();
                }
 
                // 削除された文字数分だけ位置を減算
                lineNow = Editor.GetLineStr(0);
                pos -= lineOld.length - lineNow.length;
 
                // 元位置へ移動
                for (i = 0; i < pos; ++i)
                {
                    Editor.Right();
                }
            }
        }
        break;
 
    case 1: // 行選択時
    case 2: // 矩形選択時
    default:
        // 標準処理
        Editor.UnindentTab();
        break;
    }
})();


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

添付ファイル: fileUnIndent.js 616件 [詳細]

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