0
У меня есть текстовое поле, которое превращается в редактор кодов в браузере. В основном это просто имитирует textarea для div, а затем получает значение для submit.Ace Code Editor автозавершение не работает
Авто завершение не работает. Это мой сценарий:
$(function() {
$('textarea[data-editor]').each(function() {
var textarea = $(this);
var mode = textarea.data('editor');
var editDiv = $('<div>', {
position: 'absolute',
height: textarea.height(),
'class': textarea.attr('class')
}).insertBefore(textarea);
textarea.css('display', 'none');
var editor = ace.edit(editDiv[0]);
editor.getSession().setValue(textarea.val());
editor.getSession().setMode("ace/mode/" + mode);
// enable autocompletion and snippets
ace.require("ace/ext/language_tools");
editor.setOptions({
enableSnippets: true,
enableBasicAutocompletion: true,
enableEmmet: true
});
// editor.setTheme("ace/theme/idle_fingers");
editor.getSession().setUseWorker(false);
editor.session.setFoldStyle('manual');
editor.setShowPrintMargin(false);
// copy back to textarea on form submit...
textarea.closest('form').submit(function() {
textarea.val(editor.getSession().getValue());
})
});
});
Если я удалить все внутри $('textarea[data-editor]').each(function() {
и просто запустить
ace.require("ace/ext/language_tools");
editor.setOptions({
enableSnippets: true,
enableBasicAutocompletion: true,
enableEmmet: true
});
он работает отлично. Что я делаю не так?