import ace from 'brace'; import 'brace/mode/javascript'; import 'brace/mode/plain_text'; import 'brace/mode/sh'; import 'brace/mode/ini'; import 'brace/ext/searchbox' import './theme-vito' import './mode-env'; import './mode-nginx'; window.initAceEditor = function (options = {}) { const editorValue = JSON.parse(options.value || ''); const editor = ace.edit(options.id); editor.setTheme("ace/theme/vito"); editor.getSession().setMode(`ace/mode/${options.lang || 'plain_text'}`); editor.setValue(editorValue, -1); editor.clearSelection(); editor.focus(); editor.setOptions({ enableBasicAutocompletion: true, enableSnippets: true, enableLiveAutocompletion: true, printMargin: false, }); editor.renderer.setScrollMargin(15, 15, 0, 0) editor.renderer.setPadding(15); editor.getSession().on('change', function () { document.getElementById(`textarea-${options.id}`).value = editor.getValue(); }); window.addEventListener('resize', function () { editor.resize(); }) document.getElementById(`textarea-${options.id}`).innerHTML = editorValue; return editor; }