diff --git a/includes/CodeMirrorHooks.php b/includes/CodeMirrorHooks.php index 3f90087a..6901234d 100644 --- a/includes/CodeMirrorHooks.php +++ b/includes/CodeMirrorHooks.php @@ -5,10 +5,16 @@ class CodeMirrorHooks { /** * Checks if CodeMirror for textarea wikitext editor should be loaded on this page or not. * - * @param IContextSource $context The current ContextSource object + * @param OutputPage $out * @return bool */ - private static function isCodeMirrorOnPage( IContextSource $context ) { + private static function isCodeMirrorOnPage( OutputPage $out ) { + // Disable CodeMirror when CodeEditor is active on this page + // Depends on ext.codeEditor being added by EditPage::showEditForm:initial + if ( in_array( 'ext.codeEditor', $out->getModules() ) ) { + return false; + } + $context = $out->getContext(); return in_array( Action::getActionName( $context ), [ 'edit', 'submit' ] ) && // CodeMirror on textarea wikitext editors doesn't support RTL (T170001) !$context->getTitle()->getPageLanguage()->isRTL(); @@ -23,7 +29,7 @@ class CodeMirrorHooks { * @param Skin &$skin */ public static function onBeforePageDisplay( OutputPage &$out, Skin &$skin ) { - if ( self::isCodeMirrorOnPage( $out->getContext() ) ) { + if ( self::isCodeMirrorOnPage( $out ) ) { $out->addModules( 'ext.CodeMirror' ); if ( $out->getUser()->getOption( 'usecodemirror' ) ) { diff --git a/resources/ext.CodeMirror.js b/resources/ext.CodeMirror.js index 5a7c2eb4..0760bad6 100644 --- a/resources/ext.CodeMirror.js +++ b/resources/ext.CodeMirror.js @@ -8,10 +8,6 @@ 'ext.CodeMirror.mode.mediawiki' ]; - if ( mw.config.get( 'wgCodeEditorCurrentLanguage' ) ) { // If the CodeEditor is used then just exit; - return; - } - // Exit if WikiEditor is disabled // usebetatoolbar can be the string "0" if the user disabled the preference - Bug T54542#555387 if ( !( mw.loader.getState( 'ext.wikiEditor' ) && mw.user.options.get( 'usebetatoolbar' ) > 0 ) ) {