From bd46d5f1bc4608b5809e43ecfdbbc15d7bfc8eec Mon Sep 17 00:00:00 2001 From: fisker Cheung Date: Tue, 1 Sep 2020 11:24:33 +0800 Subject: [PATCH] Glimmer: Use common `locationToOffset` (#9106) --- src/language-handlebars/printer-glimmer.js | 44 ++-------------------- 1 file changed, 3 insertions(+), 41 deletions(-) diff --git a/src/language-handlebars/printer-glimmer.js b/src/language-handlebars/printer-glimmer.js index adcdb1b15..21e46762f 100644 --- a/src/language-handlebars/printer-glimmer.js +++ b/src/language-handlebars/printer-glimmer.js @@ -10,6 +10,7 @@ const { line, softline, } = require("../document").builders; +const locationToOffset = require("../utils/line-column-to-index"); const clean = require("./clean"); const { @@ -36,16 +37,8 @@ function print(path, options, print) { } if (hasPrettierIgnore(path)) { - const startOffset = locationToOffset( - options.originalText, - n.loc.start.line - 1, - n.loc.start.column - ); - const endOffset = locationToOffset( - options.originalText, - n.loc.end.line - 1, - n.loc.end.column - ); + const startOffset = locationToOffset(n.loc.start, options.originalText); + const endOffset = locationToOffset(n.loc.end, options.originalText); const ignoredText = options.originalText.slice(startOffset, endOffset); return ignoredText; @@ -658,37 +651,6 @@ function printBlockParams(node) { return concat([" as |", node.blockParams.join(" "), "|"]); } -/* istanbul ignore next - https://github.com/glimmerjs/glimmer-vm/blob/master/packages/%40glimmer/compiler/lib/location.ts#L5-L29 -*/ -function locationToOffset(source, line, column) { - let seenLines = 0; - let seenChars = 0; - - // eslint-disable-next-line no-constant-condition - while (true) { - if (seenChars === source.length) { - return null; - } - - let nextLine = source.indexOf("\n", seenChars); - if (nextLine === -1) { - nextLine = source.length; - } - - if (seenLines === line) { - if (seenChars + column > nextLine) { - return null; - } - return seenChars + column; - } else if (nextLine === -1) { - return null; - } - seenLines += 1; - seenChars = nextLine + 1; - } -} - function doesNotHaveHashParams(node) { return node.hash.pairs.length === 0; }