theme plugin online example javascript jquery events coffeescript codemirror

javascript - plugin - codemirror set value



¿Cómo puedo activar eventos de teclado en CodeMirror? (2)

No estoy seguro si te entiendo al 100%, pero actualmente defino eventos de teclado cuando estoy definiendo mis opciones de configuración para la instancia de codemirror.

var cmInstance = CodeMirror(target, { value: myTextArea.value, //other options here perhaps //defining some keyboard shortcuts extraKeys: { "Ctrl-J": "toMatchingTag", "Ctrl-S": function(cm) { saveCode(cm); //function called when ''ctrl+s'' is used when instance is in focus }, "F11": function(cm) { toggleFullscreen(cm,true); //function called for full screen mode }, "Esc": function(cm) { toggleFullscreen(cm,false); //function to escape full screen mode } } });

Tenga en cuenta que estas funciones solo se dispararán cuando la instancia codemirror esté enfocada. Entonces puede hacer lo que quiera en sus funciones, tal vez incluso agregar nuevos oyentes para ver qué tipo de evento ocurrió (?).

Espero que esto ayude.

Estoy usando un campo de texto diferente como proxy para CodeMirror. Quiero usar características como closebrackets.js que se activan a través de eventos de teclado como keydown , keypress y keyup . He intentado varios enfoques diferentes para desencadenar estos eventos, ninguno de los cuales ha provocado que CodeMirror reciba nada.

kc = 219 e = $.Event ''keydown'', { which: kc } $( myCodeMirror.getInputField() ).trigger e

No funciona No se disparan eventos

cmIF = $( myCodeMirror.getInputField() ) textArea = $(''<textarea></textArea>'') $(''body'').append textArea textArea.keydown (e) -> cmIF.focus() return kc = 219 e = $.Event ''keydown'', { which: kc } textArea.trigger e

Intentando reenviar eventos desde un área de texto diferente. No funciona CM no los eventos no se activan.

$( myCodeMirror.getWrapperElement() ).children().each (index) -> $(this).trigger e return

Intentando desencadenar el evento en cada elemento secundario del contenedor de CM. No funciona No hay eventos CM activados.

¿Qué estoy haciendo mal aquí? ¿Cómo puedo activar eventos de teclado en una instancia de CodeMirror?


También tengo el mismo dolor, y finalmente encuentro la solución. No sé si esto es feo o no, pero me funcionó. Espero que funcione en ti.

myCodeMirror.options.extraKeys.F11(); //trigger F11 assigned function myCodeMirror.options.extraKeys.["Ctrl-S"](); //trigger Ctrl-S assigned function