diff --git a/lib/rules/indent.js b/lib/rules/indent.js index dc9fbaf908b..0b87412c8fc 100644 --- a/lib/rules/indent.js +++ b/lib/rules/indent.js @@ -1229,9 +1229,13 @@ module.exports = { } const fromToken = sourceCode.getLastToken(node, token => token.type === "Identifier" && token.value === "from"); + const sourceToken = sourceCode.getLastToken(node, token => token.type === "String"); + const semiToken = sourceCode.getLastToken(node, token => token.type === "Punctuator" && token.value === ";"); if (fromToken) { - offsets.setDesiredOffsets([fromToken.range[0], node.range[1]], sourceCode.getFirstToken(node), 1); + const end = semiToken && semiToken.range[1] === sourceToken.range[1] ? node.range[1] : sourceToken.range[1]; + + offsets.setDesiredOffsets([fromToken.range[0], end], sourceCode.getFirstToken(node), 1); } }, diff --git a/tests/lib/rules/indent.js b/tests/lib/rules/indent.js index b25e259499d..07e025f303f 100644 --- a/tests/lib/rules/indent.js +++ b/tests/lib/rules/indent.js @@ -271,6 +271,17 @@ ruleTester.run("indent", rule, { `, options: [4] }, + { + + // https://github.com/eslint/eslint/issues/11802 + code: unIndent` + import foo from "foo" + + ;(() => {})() + `, + options: [4], + parserOptions: { sourceType: "module" } + }, { code: unIndent` function test() {