Cursor Select
Shared by itokon
Please move a cursor after execution and carry out again.(Run -> Cuosor move -> Run) !! CAUTION !! A clipboard is used. Your clipboard is put out.
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");
}
}