function buildEditor(text) {
    
    const container = document.getElementById('container');
    
    const editor = monaco.editor.create(container, {
        theme: 'vs-light',
        value: text,
        language: 'csharp',
        name: 'monacoEditor',
        automaticLayout: true
    });

    editor.getModel().onDidChangeContent((event) => {
        window.chrome.webview.postMessage(editor.getValue());
    });

    // we need the parent of the editor
    const parent = container.parentElement

    window.addEventListener('resize', () => {
        // make editor as small as possible
        editor.layout({ width: 0, height: 0 })

        // wait for next frame to ensure last layout finished
        window.requestAnimationFrame(() => {
            // get the parent dimensions and re-layout the editor
            const rect = parent.getBoundingClientRect()
            editor.layout({ width: rect.width, height: rect.height })
        })
    })
}

function doAction(action) {
    editor.focus()
    editor.trigger('dunno', action);
}
 