¿Agregar CodeMirror a Shadow Dom del elemento personalizado?

Me gustaría crear dinámicamente una instancia de CodeMirror dentro de un elemento personalizado y hacer que viva dentro del Shadow DOM del elemento. Por ejemplo:

<code-mirror>foo</code-mirror>
<script>
window.customElements.define('code-mirror', class extends HTMLElement {
    constructor() {
        super();
        let shadowRoot = this.attachShadow({mode: 'open'});
    }

    connectedCallback() {
        this.cm = CodeMirror(this.shadowRoot, {lineNumbers: true});
    }
});
</script>

Esto "funciona", pero el diseño es incorrecto ... el margen izquierdo se ajusta al ancho de la ventana, los números de línea no se muestran correctamente y la lógica de selección está apagada verticalmente.

Aquí hay un jsfiddle que demuestra el problema de diseño:enlazar

Sugerencias?

Respuestas a la pregunta(1)

Su respuesta a la pregunta