Action Directory / Cursor Select

Install

Please move a cursor after execution and carry out again.(Run -> Cuosor move -> Run)

!! CAUTION !!
A clipboard is used. Your clipboard is put out.

Shared by itokon

Script

var slctrng = editor.getSelectedRange();
var strtrng = slctrng[0];
var endrng = slctrng[1];

if ( strtrng != endrng ) {
	// Select current line
	// based on shirose_jp scripts (thanks!)
	
	var line_range = editor.getSelectedLineRange();
	
	var eol = line_range[0] + line_range[1];
	if ( editor.getTextInRange( eol - 1, 1 ) === '\n' ) {
	  eol = eol - 1;
	}
	
	editor.setSelectedRange( line_range[0], eol - line_range[0] );
    // end Select current line
    
    } else {

	var clp = app.getClipboard();
	var swch;
	
	if ( clp == null ) {
		app.setClipboard("");
		swch = "0";
	    } else if ( clp.match(/^[0-9]{1,6},[0-9]{1,6}$/) ) {
		swch = "1";
	    } else {
		app.setClipboard("");
		swch = "0";
	}
	
	if (swch == "0") {
		var pos1 = editor.getSelectedRange();
		app.setClipboard(pos1);
	
	    } else if ( swch == "1" ) {
		var pos2 = editor.getSelectedRange();
		pos2 = pos2[0];
		
		var clppos1 = app.getClipboard();
		var clppos1lng = clppos1.length;

		clppos1lng = clppos1lng -1;
		clppos1lng = clppos1lng /2;
		clppos1 = clppos1.substr(0, clppos1lng);
		
		if (clppos1 < pos2) {
			editor.setSelectedRange(clppos1, pos2);
		    } else if ( clppos1 > pos2 ) {
			editor.setSelectedRange(pos2, clppos1);
		    
		    } else {
			// Select current line
			// based on shirose_jp scripts (thanks!)
			
			var line_range = editor.getSelectedLineRange();
			
			var eol = line_range[0] + line_range[1];
			if ( editor.getTextInRange( eol - 1, 1 ) === '\n' ) {
				eol = eol - 1;
			}
			
	       editor.setSelectedRange( line_range[0], eol - line_range[0] );
            
            // end Select current line
		}
			
		app.setClipboard("");
			
	    } else {
		ui.alert("error");
	
	}

}