Pastakhov has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/157813

Change subject: add highlighting tag <pre> (v 1.10.0)
......................................................................

add highlighting tag <pre> (v 1.10.0)

* remove state.allowWikimarkup

Change-Id: Ic34d8be7e10b2e829cf76d5e5c0f40da3c943961
---
M CodeMirror.php
M resources/mode/mediawiki/mediawiki.js
2 files changed, 22 insertions(+), 7 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/CodeMirror 
refs/changes/13/157813/1

diff --git a/CodeMirror.php b/CodeMirror.php
index ecc2f05..7312027 100644
--- a/CodeMirror.php
+++ b/CodeMirror.php
@@ -15,7 +15,7 @@
        die( 'This file is an extension to MediaWiki and thus not a valid entry 
point.' );
 }
 
-const EXT_CODEMIRROR_VERSION = '1.9.2';
+const EXT_CODEMIRROR_VERSION = '1.10.0';
 
 // Register this extension on Special:Version
 $wgExtensionCredits['parserhook'][] = array(
diff --git a/resources/mode/mediawiki/mediawiki.js 
b/resources/mode/mediawiki/mediawiki.js
index 8fbb6ab..d5e864e 100644
--- a/resources/mode/mediawiki/mediawiki.js
+++ b/resources/mode/mediawiki/mediawiki.js
@@ -179,7 +179,7 @@
                                style.push( 'string-2' );
                                break;
                        case 'TagName':
-                               var tmp = stream.eatWhile( 
/[^>\/\s\u00a0<\{\&]/ );
+                               var tmp = stream.match( /[^>\/\s\u00a0<\{\&]*/ 
)[0];
                                if ( tmp ) {
                                        if ( stream.eatSpace() || 
/[>\/\s\u00a0]/.test( stream.peek() ) ) {
                                                state.ImInBlock.pop();
@@ -202,6 +202,7 @@
                                }
                                if ( stream.eat( '>' ) ) {
                                        state.ImInBlock.pop();
+                                       state.ImInBlock.push( 'InsideTag' );
                                        return 'tag bracket';
                                }
                                break;
@@ -218,9 +219,26 @@
                        case 'TagCloseEnd':
                                if ( stream.eat( '>' ) ) {
                                        state.ImInBlock.pop();
+                                       state.ImInTag.pop();
                                        return 'tag bracket';
                                }
                                return 'error';
+                       case 'InsideTag':
+                               var tag = state.ImInTag[ state.ImInTag.length - 
1 ];
+                               if ( tag === 'pre' ) {
+                                       if ( stream.eatWhile( /[^&<]/ ) ) {
+                                               return 'qualifier';
+                                       } else if ( stream.peek() === '&' ) {
+                                               style = ['qualifier'];
+                                       } else if ( stream.match( '</pre>') ) {
+                                               stream.backUp( 6 );
+                                               state.ImInBlock.pop();
+                                       } else {
+                                               stream.next();
+                                               return 'qualifier';
+                                       }
+                               }
+                               break;
                        case null:
                                if ( sol ) {
                                        state.isBold = false;
@@ -263,7 +281,7 @@
                                mnemonicStyle.push( 'atom' );
                                return mnemonicStyle.join(' ');
                        }
-               } else if ( state.allowWikimarkup ) {
+               } else {
                        state.bTempArgName = false;
                        switch ( ch ) {
                                case '{':
@@ -328,9 +346,6 @@
 //                     if ( state.skipFormatting ) {
 //                             style.push( 'mw-skipformatting' );
 //                     }
-               } else {
-                       stream.eatWhile( /[^&]/ );
-                       style.push( 'qualifier' );
                }
 
                if ( style.length > 0 ) {
@@ -354,7 +369,7 @@
 
        return {
                startState: function() {
-                       return { tokenize: inWikitext, ImInBlock: [], 
ImInTag:[], allowWikimarkup: true, skipFormatting: false, bTempArgName: false, 
isBold: false, isItalic: false };
+                       return { tokenize: inWikitext, ImInBlock: [], 
ImInTag:[], skipFormatting: false, bTempArgName: false, isBold: false, 
isItalic: false };
                },
                token: function( stream, state ) {
                        return state.tokenize( stream, state );

-- 
To view, visit https://gerrit.wikimedia.org/r/157813
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ic34d8be7e10b2e829cf76d5e5c0f40da3c943961
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/CodeMirror
Gerrit-Branch: master
Gerrit-Owner: Pastakhov <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to