Improve suggest menu string replacement

This commit is contained in:
Frederic Guillot 2016-11-27 18:06:10 -05:00
parent d8b0423d15
commit de1b9416d2
No known key found for this signature in database
GPG Key ID: 92D77191BA7FBC99
2 changed files with 20 additions and 6 deletions

File diff suppressed because one or more lines are too long

View File

@ -38,13 +38,27 @@ KB.component('suggest-menu', function(containerElement, options) {
var element = KB.find('.suggest-menu-item.active');
var value = element.data('value');
var trigger = element.data('trigger');
var position = containerElement.value.lastIndexOf(trigger) + 1;
var content = containerElement.value.substring(0, position);
var content = containerElement.value;
var text = getLastWord(containerElement);
var substitute = trigger + value + ' ';
var before = content.substring(0, containerElement.selectionStart - text.length);
var after = content.substring(containerElement.selectionEnd);
var position = before.length + substitute.length;
containerElement.value = before + substitute + after;
containerElement.setSelectionRange(position, position);
containerElement.value = content + value;
destroy();
}
function getLastWord(element) {
var lines = element.value.substring(0, element.selectionEnd).split("\n");
var lastLine = lines[lines.length - 1];
var words = lastLine.split(' ');
console.log(words);
return words[words.length - 1];
}
function getParentElement() {
var selectors = ['.popover-form', '#popover-content', 'body'];
@ -103,7 +117,7 @@ KB.component('suggest-menu', function(containerElement, options) {
}
function search(element) {
var text = element.value.substring(element.value.lastIndexOf(' ') + 1, element.selectionEnd);
var text = getLastWord(element);
var trigger = getTrigger(text, options.triggers);
destroy();