Bartosz Dziewoński has uploaded a new change for review.

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

Change subject: ve.ce.TextNode: Use getChar() helper
......................................................................

ve.ce.TextNode: Use getChar() helper

The repeated `if (array) {…} else if (string) {…}` check is ugly.
There already is a setChar() helper here.

Change-Id: I41ca00567aca2b891f8256fe4b0d0614ad5bb321
---
M modules/ve/ce/nodes/ve.ce.TextNode.js
1 file changed, 13 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/VisualEditor/VisualEditor 
refs/changes/36/150236/1

diff --git a/modules/ve/ce/nodes/ve.ce.TextNode.js 
b/modules/ve/ce/nodes/ve.ce.TextNode.js
index 9d999b9..6d2db6b 100644
--- a/modules/ve/ce/nodes/ve.ce.TextNode.js
+++ b/modules/ve/ce/nodes/ve.ce.TextNode.js
@@ -43,7 +43,7 @@
  * @returns {Array} Array of rendered HTML fragments with annotations
  */
 ve.ce.TextNode.prototype.getAnnotatedHtml = function () {
-       var i, chr, character, nextCharacter,
+       var i, chr,
                data = this.model.getDocument().getDataFromNode( this.model ),
                whitespaceHtmlChars = ve.ce.TextNode.whitespaceHtmlCharacters,
                significantWhitespace = 
this.getModel().getParent().hasSignificantWhitespace();
@@ -58,33 +58,38 @@
                }
        }
 
+       function getChar( index, data ) {
+               if ( ve.isArray( data[index] ) ) {
+                       return data[index][0];
+               } else {
+                       return data[index];
+               }
+       }
+
        if ( !significantWhitespace ) {
                // Replace spaces with   where needed
                if ( data.length > 0 ) {
                        // Leading space
-                       character = data[0];
-                       if ( ve.isArray( character ) ? character[0] === ' ' : 
character === ' ' ) {
+                       if ( getChar( 0, data ) === ' ' ) {
                                // \u00a0 ==   ==  
                                setChar( '\u00a0', 0, data );
                        }
                }
                if ( data.length > 1 ) {
                        // Trailing space
-                       character = data[data.length - 1];
-                       if ( ve.isArray( character ) ? character[0] === ' ' : 
character === ' ' ) {
+                       if ( getChar( data.length - 1, data ) === ' ' ) {
                                setChar( '\u00a0', data.length - 1, data );
                        }
                }
        }
 
        for ( i = 0; i < data.length; i++ ) {
-               chr = typeof data[i] === 'string' ? data[i] : data[i][0];
+               chr = getChar( i, data );
 
                if ( chr === ' ' && !significantWhitespace && data.length > 2 
&& i !== 0 && i !== data.length - 1 ) {
                        // Replace any sequence of 2+ spaces with an 
alternating pattern
                        // (space-nbsp-space-nbsp-...)
-                       nextCharacter = typeof data[i + 1] === 'string' ? 
data[i + 1] : data[i + 1][0];
-                       if ( nextCharacter === ' ' ) {
+                       if ( getChar( i + 1, data ) === ' ' ) {
                                setChar( '\u00a0', i + 1, data );
                        }
                }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I41ca00567aca2b891f8256fe4b0d0614ad5bb321
Gerrit-PatchSet: 1
Gerrit-Project: VisualEditor/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <matma....@gmail.com>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to