「行頭に移動」の版間の差分
ナビゲーションに移動
検索に移動
編集の要約なし |
編集の要約なし |
||
| 8行目: | 8行目: | ||
// | // | ||
// Copyright (c) Kuro. All Rights Reserved. | // Copyright (c) Kuro. All Rights Reserved. | ||
// www: http://www.haijin-boys.com/ | // www: http://www.haijin-boys.com/ | ||
// ----------------------------------------------------------------------------- | // ----------------------------------------------------------------------------- | ||
2012年6月22日 (金) 19:10時点における版
行頭またはインデント位置に移動します。HOMEキーに割り当てると良いかもしれません。 SHIFT + HOMEキーに割り当てる場合は「shift」変数を「true」に設定してください。 (shift = true の場合、選択しながら移動します。)
// -----------------------------------------------------------------------------
// 行頭に移動
//
// Copyright (c) Kuro. All Rights Reserved.
// www: http://www.haijin-boys.com/
// -----------------------------------------------------------------------------
// シフトの状態(オンの場合は選択、オフの場合は移動)
var shift = false;
// インデントとして認識する文字(半角空白、全角空白、タブ)
var indent = new RegExp(" | |\t");
// 現在位置取得
var x1 = document.selection.GetActivePointX(mePosView);
var y1 = document.selection.GetActivePointY(mePosView);
// 選択終了位置取得
var x2 = document.selection.GetBottomPointX(mePosView);
var y2 = document.selection.GetBottomPointY(mePosView);
// カーソルを行末に移動
document.selection.EndOfLine(false);
// カーソルを行頭に移動(これで1行選択)
document.selection.StartOfLine(true);
var s = document.selection.Text;
var i = 0;
// 行頭からタブの数を確認
for (var j = 0; j < s.length; j++) {
c = s.charAt(j);
if (indent.test(c))
i++;
else
break;
}
// シフトオンの場合、選択終了位置に移動
if (shift)
document.selection.SetActivePoint(mePosView, x2, y2, false);
// 現在位置が1より大きくてタブの数以下の場合は行頭に移動
if (x1 > 1 && x1 <= i + 1)
document.selection.StartOfLine(shift);
// それ以外の場合はタブの数だけ進める
else
document.selection.SetActivePoint(mePosView, i + 1, y1, shift);
スポンサーリンク