While CodeMirror is extremely helpful for regular wiki editing tools, it has no means for third-party usage outside of #wpTextbox1:
https://github.com/wikimedia/mediawiki-extensions-CodeMirror/blob/master/resources/ext.CodeMirror.js
I think making the code more agnostic and exposing the function for enabling CodeMirror in any other libraries working with WikiEditor, for example, Convenient-Discussions, will be beneficial for them.
Acceptance criteria
- CodeMirror should be usable on any textarea, with or without WikiEditor
To test without WikiEditor, you can go to Special:BlankPage and enter the following in your JS console:
$( '.mw-body-content' ).append( $('<textarea>' ) ); mw.loader.using( [ 'ext.CodeMirror.v6', 'ext.CodeMirror.v6.mode.mediawiki' ] ).then( ( require ) => { const CodeMirror = require( 'ext.CodeMirror.v6' ); const mediawikiLang = require( 'ext.CodeMirror.v6.mode.mediawiki' ); const cm = new CodeMirror( $( 'textarea' ) ); cm.initialize( [ cm.defaultExtensions, mediawikiLang() ] ); } );
Integration with WikiEditor only works for wikitext (aka "mediawiki mode"). Also at Special:BlankPage:
await mw.loader.using( [ 'ext.CodeMirror.v6.WikiEditor' ] ); $( '.mw-body-content' ).append( $( '<textarea>' ) ); mw.addWikiEditor( $( 'textarea' ) );