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