@@ -25,6 +25,7 @@ window.funsConfig = {
2525 document . body . classList . remove ( "tema-c" ) ;
2626 document . body . classList . add ( "tema-o" ) ;
2727 }
28+ confCMI ( ) ;
2829 } ,
2930 colorClaroCM : ( v ) => { document . styleSheets [ 1 ] . cssRules [ 1 ] . style . setProperty ( "--c-c-m" , v ) ; } ,
3031 colorClaroFM : ( v ) => { document . styleSheets [ 1 ] . cssRules [ 1 ] . style . setProperty ( "--c-f-m" , v ) ; } ,
@@ -444,6 +445,35 @@ function onInputCMI(cm){
444445}
445446
446447/* Configuración */
448+
449+ /**
450+ * Crea una instancia de CodeMirror, y la configura
451+ *
452+ */
453+ function confCMI ( ) {
454+ let w = document . querySelector ( "#codemirror" )
455+ w . textContent = "" ;
456+ window . cmi = CodeMirror ( w , {
457+ lineNumbers : true ,
458+ gutters : [ "CodeMirror-linenumbers" , "breakpoints" ] ,
459+ theme : ( window . matchMedia ( "(prefers-color-scheme: dark)" ) . matches || document . body . classList . contains ( "tema-o" ) ) ?"monokai" :null
460+ } ) ;
461+ cmi . setSize ( "100%" , "100%" ) ;
462+ cmi . on ( "gutterClick" , ( cm , n ) => {
463+ var info = cm . lineInfo ( n ) ;
464+ cm . setGutterMarker ( n , "breakpoints" , info . gutterMarkers ? null : ( ( ) => {
465+ var marker = document . createElement ( "u" ) ;
466+ marker . classList . add ( "bp" ) ;
467+ marker . textContent = "●" ;
468+ return marker ;
469+ } ) ( ) ) ;
470+ } ) ;
471+ cmi . on ( "change" , onChangeCMI ) ;
472+ cmi . on ( "cursorActivity" , onInputCMI ) ;
473+ onChangeCMI ( cmi ) ;
474+ onInputCMI ( cmi ) ;
475+ }
476+
447477/**
448478 * Establece y aplica un valor en la configuración.
449479 *
@@ -607,26 +637,8 @@ window.addEventListener("DOMContentLoaded", () => {
607637
608638 /* Estado */
609639 document . getElementById ( "outEstado" ) . textContent = "Listo" ;
640+ window . matchMedia ( '(prefers-color-scheme: dark)' ) . addEventListener ( 'change' , confCMI ) ;
610641
611- /* CodeMirror */
612- window . cmi = CodeMirror ( document . querySelector ( "#codemirror" ) , {
613- lineNumbers : true ,
614- gutters : [ "CodeMirror-linenumbers" , "breakpoints" ] ,
615- } ) ;
616- cmi . setSize ( "100%" , "100%" ) ;
617- cmi . on ( "gutterClick" , ( cm , n ) => {
618- var info = cm . lineInfo ( n ) ;
619- cm . setGutterMarker ( n , "breakpoints" , info . gutterMarkers ? null : ( ( ) => {
620- var marker = document . createElement ( "u" ) ;
621- marker . classList . add ( "bp" ) ;
622- marker . textContent = "●" ;
623- return marker ;
624- } ) ( ) ) ;
625- } ) ;
626- cmi . on ( "change" , onChangeCMI ) ;
627- cmi . on ( "cursorActivity" , onInputCMI ) ;
628- onChangeCMI ( cmi ) ;
629- onInputCMI ( cmi ) ;
630642 // Al cambiar el contenido del editor al cambiar de archivo, el sistema piensa que se ha editado el archivo. Esta bandera evita ese comportamiento.
631643 window . cambioCMI = false ;
632644
0 commit comments