[[]]
Smart Double Bracket

Script key: Smart Double Bracket

Posted by @nahumck

Install

Details

Label [[]]
Voice Over Smart Double Bracket
Script
// Smart doublr bracket key
// Based on tbe smart parentheses key by AgileTortoise
//
// If a selection is present, wrap the text in brackets
//
// If no selection, scan text for last bracket and
// close it if last one was an open bracket, or
// insert open bracket if not.

var open = "[[";
var close = "]]";

var range = getSelectedRange();
var priorText = getTextInRange(0, range[0]);

if (range[1] > 0) { 
 //text selected, wrap it!
 setSelectedText(open + getSelectedText() + close);
 setSelectedRange(range[0] + range[1] + open.length + close.length, 0);
}
else {
 // no selection, find last 
 var lastOpen = priorText.lastIndexOf(open);
 var lastClose = priorText.lastIndexOf(close);
 
 if	(lastOpen == -1 || lastClose > lastOpen) { // no close, use open
   setSelectedText(open);
   setSelectedRange(range[0]+open.length, 0);
 }
 else { // close last open
   setSelectedText(close);
   setSelectedRange(range[0]+close.length, 0);
 }
}

Advanced

Keyboard shortcut None
Hide key Yes

Discussion

comments powered by Disqus