diff --git a/index.js b/index.js index 7e9a996fb..a4098b405 100644 --- a/index.js +++ b/index.js @@ -104,7 +104,11 @@ function findSiblingAncestors(startNodeAndParents, endNodeAndParents) { let resultEndNode = endNodeAndParents.node; for (const endParent of endNodeAndParents.parentNodes) { - if (util.locStart(endParent) >= util.locStart(startNodeAndParents.node)) { + if ( + endParent.type !== "Program" && + endParent.type !== "File" && + util.locStart(endParent) >= util.locStart(startNodeAndParents.node) + ) { resultEndNode = endParent; } else { break; @@ -112,7 +116,11 @@ function findSiblingAncestors(startNodeAndParents, endNodeAndParents) { } for (const startParent of startNodeAndParents.parentNodes) { - if (util.locEnd(startParent) <= util.locEnd(endNodeAndParents.node)) { + if ( + startParent.type !== "Program" && + startParent.type !== "File" && + util.locEnd(startParent) <= util.locEnd(endNodeAndParents.node) + ) { resultStartNode = startParent; } else { break; diff --git a/tests/range/__snapshots__/jsfmt.spec.js.snap b/tests/range/__snapshots__/jsfmt.spec.js.snap index f52c4746e..9b2f90b20 100644 --- a/tests/range/__snapshots__/jsfmt.spec.js.snap +++ b/tests/range/__snapshots__/jsfmt.spec.js.snap @@ -176,6 +176,46 @@ function ugly ( {a=1, b = 2 } ) { `; +exports[`range-end.js 1`] = ` +// Unchanged +call( + 1, 2,3 +); + + +call( + 1, 2,3 +);~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// Unchanged +call( + 1, 2,3 +); + + +call(1, 2, 3); +`; + +exports[`range-start.js 1`] = ` +call( + 1, 2,3 +); + + +// Unchanged +call( + 1, 2,3 +); +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +call(1, 2, 3); + + +// Unchanged +call( + 1, 2,3 +); + +`; + exports[`try-catch.js 1`] = ` try {} catch (err) {} diff --git a/tests/range/range-end.js b/tests/range/range-end.js new file mode 100644 index 000000000..99d0bd914 --- /dev/null +++ b/tests/range/range-end.js @@ -0,0 +1,9 @@ +// Unchanged +call( + 1, 2,3 +); + +<<>> +call( + 1, 2,3 +);<<>> \ No newline at end of file diff --git a/tests/range/range-start.js b/tests/range/range-start.js new file mode 100644 index 000000000..1501ceafb --- /dev/null +++ b/tests/range/range-start.js @@ -0,0 +1,9 @@ +<<>>call( + 1, 2,3 +); +<<>> + +// Unchanged +call( + 1, 2,3 +);