Subramanya Sastry has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/384198 )

Change subject: Linter: Provide accurate DSR offsets for issues in extension 
content
......................................................................

Linter: Provide accurate DSR offsets for issues in extension content

* DSR info was being blindly updated to entire extension range
  instead of looking inside the extension content.

* Updated mocha test that now has updated DSR offsets.

Bug: T178217
Change-Id: I7d99c1771fb4d55866d296ecd283202bfc62a8ed
---
M lib/wt2html/pp/handlers/linter.js
M tests/mocha/linter.js
2 files changed, 17 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/98/384198/1

diff --git a/lib/wt2html/pp/handlers/linter.js 
b/lib/wt2html/pp/handlers/linter.js
index fbd4d24..6f12352 100644
--- a/lib/wt2html/pp/handlers/linter.js
+++ b/lib/wt2html/pp/handlers/linter.js
@@ -229,8 +229,11 @@
        var templateInfo;
 
        if (tplInfo) {
-               dsr = tplInfo.dsr;
                templateInfo = findEnclosingTemplateName(env, tplInfo);
+       }
+
+       if (templateInfo) {
+               dsr = tplInfo.dsr;
        } else if (dp.tmp.origDSR) {
                // During DSR computation, stripped meta tags
                // surrender their width to its previous sibling.
@@ -420,15 +423,11 @@
                // Let us carry on with regularly scheduled programming.
        }
 
-       var dsr;
-       var templateInfo;
-       if (tplInfo) {
-               dsr = tplInfo.dsr;
-               templateInfo = findEnclosingTemplateName(env, tplInfo);
-       } else {
-               dsr = DU.getDataParsoid(maybeTable).dsr;
-       }
-       var lintObj = { dsr: dsr, templateInfo: templateInfo };
+       var templateInfo = tplInfo ? findEnclosingTemplateName(env, tplInfo) : 
null;
+       var lintObj = {
+               dsr: templateInfo ? tplInfo.dsr : 
DU.getDataParsoid(maybeTable).dsr,
+               templateInfo: templateInfo
+       };
        env.log('lint/fostered', lintObj);
 
        return maybeTable;
@@ -456,7 +455,7 @@
                        templateInfo = findEnclosingTemplateName(env, tplInfo);
                }
                var lintObj = {
-                       dsr: tplInfo ? tplInfo.dsr : dp.dsr,
+                       dsr: templateInfo ? tplInfo.dsr : dp.dsr,
                        templateInfo: templateInfo,
                        params: { name: c.nodeName.toLowerCase() },
                };
@@ -482,7 +481,7 @@
                                templateInfo = findEnclosingTemplateName(env, 
tplInfo);
                        }
                        env.log('lint/bogus-image-options', {
-                               dsr: tplInfo ? tplInfo.dsr : dp.dsr,
+                               dsr: templateInfo ? tplInfo.dsr : dp.dsr,
                                templateInfo: templateInfo,
                                params: { items: items },
                        });
@@ -516,6 +515,9 @@
                        var dsr;
                        if (tplInfo) {
                                templateInfo = findEnclosingTemplateName(env, 
tplInfo);
+                       }
+
+                       if (templateInfo) {
                                dsr = tplInfo.dsr;
                        } else {
                                // Identify the dsr-span of the opening tag
@@ -569,12 +571,9 @@
                                var dsr, templateInfo;
                                if (tplInfo) {
                                        templateInfo = 
findEnclosingTemplateName(env, tplInfo);
-                                       dsr = tplInfo.dsr;
-                               } else {
-                                       dsr = dp.dsr;
                                }
                                var lintObj = {
-                                       dsr: dsr,
+                                       dsr: templateInfo ? tplInfo.dsr : 
dp.dsr,
                                        templateInfo: templateInfo,
                                        params: { root: 
node.parentNode.nodeName, child: node.nodeName },
                                };
@@ -701,17 +700,13 @@
        var dsr, templateInfo;
        if (tplInfo) {
                templateInfo = findEnclosingTemplateName(env, tplInfo);
-               dsr = tplInfo.dsr;
        }
        var n = nowrapNodes.length - 1;
        nowrapNodes.forEach(function(o, i) {
                if (o.tidybug && i < n) {
-                       if (!tplInfo) {
-                               dsr = DU.getDataParsoid(o.node).dsr;
-                       }
                        if (!nowrapNodes[i + 1].hasLeadingWS) {
                                var lintObj = {
-                                       dsr: dsr,
+                                       dsr: templateInfo ? tplInfo.dsr :  
DU.getDataParsoid(o.node).dsr,
                                        templateInfo: templateInfo,
                                        params: {
                                                node: o.node.nodeName,
diff --git a/tests/mocha/linter.js b/tests/mocha/linter.js
index 29d360f..33d68df 100644
--- a/tests/mocha/linter.js
+++ b/tests/mocha/linter.js
@@ -180,7 +180,7 @@
                                result.should.have.length(1);
                                result[0].should.have.a.property('type', 
'obsolete-tag');
                                
result[0].should.not.have.a.property('templateInfo');
-                               result[0].dsr.should.deep.equal([ 0, 47, 2, 2 
]);
+                               result[0].dsr.should.deep.equal([ 24, 36, 4, 5 
]);
                        });
                });
        });

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7d99c1771fb4d55866d296ecd283202bfc62a8ed
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Subramanya Sastry <[email protected]>

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

Reply via email to