I making a text editor using jquery and electron. I would like to be able to make the text editor autocomplete HTML tags.
What I would like is when the user types a tag, for example <tag>
a closing </tag>
is than inserted. I am planning to do this by detecting when >
is typed and saving the characters up until <
as a variable. I would then insert those characters between </
and >
. However I am unsure how to do this.
I have the following code:
function setCaretPosition(elemId, caretPos) {
var el = document.getElementById(elemId);
el.value = el.value;
if (el !== null) {
if (el.createTextRange) {
var range = el.createTextRange();
range.move('character', caretPos);
range.select();
return true;
} else {
if (el.selectionStart || el.selectionStart === 0) {
el.focus();
el.setSelectionRange(caretPos, caretPos);
return true;
} else {
el.focus();
return false;
}
}
}
}
$("#input").on("keydown", function(e) {
if (e.key === ">") {
$("#input").focus();
document.execCommand('insertHTML', true, '></>');
var cursorPosition = $('#input').prop("selectionStart");
setCaretPosition('input', cursorPosition - 3);
}
});
and
<textarea class="form-control" id="input" spellcheck="false" wrap="off" placeholder="Get Creative!"></textarea>
Is there a way to do this?