В моем случае я использую именно этот CSS, но, хотя automaticLayout: true работает, я обнаружил излишек (похоже, объединяет интервал DOM 100 мс, и у меня есть несколько редакторов, открытых в документе. Итак, я закончил реализацию его вручную:
на всякий случай, мои потребности другие: я хочу, чтобы пользователь изменил размер контейнера - стандартным способом и дешево (как по коду, так и по производительности) по библиотекам и производительности. Вот что я сделал:
контейнер css: resize: vertical; overflow: auto
и этот js:
function installResizeWatcher(el, fn, interval){
let offset = {width: el.offsetWidth, height: el.offsetHeight}
setInterval(()=>{
let newOffset = {width: el.offsetWidth, height: el.offsetHeight}
if(offset.height!=newOffset.height||offset.width!=newOffset.width){
offset = newOffset
fn()
}
}, interval)
}
const typeScriptCodeContainer = document.getElementById('typeScriptCodeContainer')
typeScriptCodeEditor = monaco.editor.create(typeScriptCodeContainer, Object.assign(editorOptions, {value: example.codeValue}))
installResizeWatcher(typeScriptCodeContainer, typeScriptCodeEditor.layout.bind(typeScriptCodeEditor), 2000)
да, с интервалом в 2 секунды и убедитесь, что он регистрируется только один раз. Я вижу, что есть / был интервал изменения размера в 100 мс для автоматического реле в Монако - ИМХО, это слишком.
Посмотрите на это в действии: https://typescript-api-playground.glitch.me/?example=2
person
cancerbero
schedule
21.06.2018