Вы можете использовать туз-функцию jumpToMatching внутри insertMatch вашего пользовательского автозаполнения, чтобы переместить курсор в начальную позицию слова и затем использовать replace для добавьте свое автозаполненное слово.
var customCompleter = {
getCompletions: function (editor, session, pos, prefix, callback) {
callback(null, [
{
value: 'foo.bar', score: 1, meta: 'History',
completer: {
insertMatch: function (insertEditor, data) {
var insertValue = data.value;
var lastPositon = editor.selection.getCursor();
insertEditor.jumpToMatching();
var startPosition = editor.selection.getCursor();
insertEditor.session.replace({
start: { row: startPosition.row, column: startPosition.column },
end: { row: lastPositon.row, column: lastPositon.column }
}, "");
}
}
])
}
}
Здесь startPosition будет там, где начинается слово, а lastPositon будет там, где вы хотите заменить слово.