insert-mode keybind: ^S - spoiler

This commit is contained in:
James Campos 2010-12-19 01:32:56 -08:00
parent ac49970879
commit f4327d3b19
2 changed files with 28 additions and 3 deletions

View File

@ -426,7 +426,20 @@ keyModeInsert = (e) ->
remove $ '#qr' remove $ '#qr'
e.preventDefault() e.preventDefault()
else if e.ctrlKey and char is "S" else if e.ctrlKey and char is "S"
console.log 'spoiler' ta = document.activeElement
return unless ta.nodeName is 'TEXTAREA'
value = ta.value
selStart = ta.selectionStart
selEnd = ta.selectionEnd
valStart = value[0...selStart] + '[spoiler]'
valMid = value[selStart...selEnd]
valEnd = '[/spoiler]' + value[selEnd..]
ta.value = valStart + valMid + valEnd
range = valStart.length + valMid.length
ta.setSelectionRange range, range
e.preventDefault() e.preventDefault()
keyModeNormal = (e) -> keyModeNormal = (e) ->

View File

@ -536,14 +536,26 @@
} }
}; };
keyModeInsert = function(e) { keyModeInsert = function(e) {
var char, kc; var char, kc, range, selEnd, selStart, ta, valEnd, valMid, valStart, value;
kc = g.keyCode; kc = g.keyCode;
char = g.char; char = g.char;
if (kc === 27) { if (kc === 27) {
remove($('#qr')); remove($('#qr'));
return e.preventDefault(); return e.preventDefault();
} else if (e.ctrlKey && char === "S") { } else if (e.ctrlKey && char === "S") {
console.log('spoiler'); ta = document.activeElement;
if (ta.nodeName !== 'TEXTAREA') {
return;
}
value = ta.value;
selStart = ta.selectionStart;
selEnd = ta.selectionEnd;
valStart = value.slice(0, selStart) + '[spoiler]';
valMid = value.slice(selStart, selEnd);
valEnd = '[/spoiler]' + value.slice(selEnd);
ta.value = valStart + valMid + valEnd;
range = valStart.length + valMid.length;
ta.setSelectionRange(range, range);
return e.preventDefault(); return e.preventDefault();
} }
}; };