1 #title = "↓"
  2 #tooltip = "行移動(↓)"
  3 #include "lib\sgc4jsee.jsee"
  4 
  5 /**
  6  * @fileOverview
  7  * 下方向へ行移動します。
  8  * <p>
  9  * Eclipseを参考にしました。
 10  * </p>
 11  * 
 12  * @author gecca from 雪月花 (http://setsugecca.org/)
 13  * @version 1.00 for EmEditor v10.0
 14  */
 15 
 16 (function() {
 17 	var logger = JseeUtil.getLogger(false, "行移動(↓).jsee");
 18 	
 19 	var redraw = Redraw;
 20 	Redraw = false;
 21 	
 22 	// 選択上部の位置を取得
 23 	var topY = document.selection.GetTopPointY(eePosLogical);
 24 	
 25 	// 選択下部が最終行を含む場合は何もしない
 26 	var bottomX = document.selection.GetBottomPointX(eePosLogical);
 27 	var bottomY = document.selection.GetBottomPointY(eePosLogical);
 28 	if(topY == document.getLines() || bottomY == document.getLines() && bottomX != 1) {
 29 		logger.log("対象外");
 30 		return;
 31 	}
 32 	
 33 	// 書き換え対象を選択
 34 	JseeUtil.selectLines();
 35 	
 36 	// JseeUtil.selectLines();で確定した選択下部を取得
 37 	var newBottomY = document.selection.GetBottomPointY(eePosLogical);
 38 	
 39 	// 書き換え対象を下に伸ばす
 40 	document.selection.EndOfLine(true,eeLineLogical);
 41 	document.selection.CharRight(true,1);
 42 	
 43 	// 書き換え
 44 	if(newBottomY < document.getLines()) {
 45 		logger.log("通常の移動");
 46 		document.selection.Text = document.selection.Text.replace(/^((\s|.)*?)(.*(\r\n|\r|\n))$/, "$3$1");
 47 	} else {
 48 		logger.log("最下行への移動");
 49 		document.selection.Text = document.selection.Text.replace(/^((\s|.)*?)(\r\n|\r|\n)(.*)$/, "$4$3$1");
 50 	}
 51 	
 52 	// 選択位置を復元
 53 	Redraw = redraw;
 54 	document.selection.SetActivePoint(eePosLogical, 1, newBottomY + 1);
 55 	document.selection.SetAnchorPoint(eePosLogical, 1, topY + 1);
 56 })();
 57