From c2cc571514059ca1c67964ca4c1ef08605bcc834 Mon Sep 17 00:00:00 2001 From: yosuke ota Date: Wed, 26 Nov 2025 12:23:30 +0900 Subject: [PATCH 1/4] Fixed false positives for TSImportType in `vue/script-indent` rule --- lib/utils/indent-ts.js | 23 ++++++++++++++++++----- package.json | 2 +- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/lib/utils/indent-ts.js b/lib/utils/indent-ts.js index 8db40869f..8bc32e1b0 100644 --- a/lib/utils/indent-ts.js +++ b/lib/utils/indent-ts.js @@ -1199,14 +1199,27 @@ function defineVisitor({ isOpeningParenToken ) setOffset(leftParenToken, 1, firstToken) - const argument = - node.argument || - /** @type {any} typescript-eslint v5 */ (node).parameter + + let source + const args = [] + if (node.source) { + source = node.source + args.push(source) + if (node.options) { + args.push(node.options) + } + } else { + // For old typescript-eslint parser + source = + node.argument || + /** @type {any} typescript-eslint v5 */ (node).parameter + args.push(source) + } const rightParenToken = tokenStore.getTokenAfter( - argument, + source, isClosingParenToken ) - processNodeList([argument], leftParenToken, rightParenToken, 1) + processNodeList(args, leftParenToken, rightParenToken, 1) if (node.qualifier) { const dotToken = tokenStore.getTokenBefore(node.qualifier) const propertyToken = tokenStore.getTokenAfter(dotToken) diff --git a/package.json b/package.json index 7e0dce997..ed938933f 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "types": "lib/index.d.ts", "scripts": { "new": "node tools/new-rule.js", - "start": "npm run test:base -- --watch --growl", + "start": "npm run test:base -- --watch", "test:base": "vitest run --reporter=dot tests/lib", "test": "vitest run", "test:integrations": "vitest run tests/integrations", From 80982894ad7255c51a9cf26e399894c06837cc0f Mon Sep 17 00:00:00 2001 From: Yosuke Ota Date: Wed, 26 Nov 2025 12:28:36 +0900 Subject: [PATCH 2/4] Create rich-bags-turn.md --- .changeset/rich-bags-turn.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/rich-bags-turn.md diff --git a/.changeset/rich-bags-turn.md b/.changeset/rich-bags-turn.md new file mode 100644 index 000000000..35a475d09 --- /dev/null +++ b/.changeset/rich-bags-turn.md @@ -0,0 +1,5 @@ +--- +"eslint-plugin-vue": patch +--- + +Fixed false positives for TSImportType in `vue/script-indent` rule From d7da29c8f2266a4586fce23716ed6356e990450c Mon Sep 17 00:00:00 2001 From: yosuke ota Date: Wed, 26 Nov 2025 12:49:49 +0900 Subject: [PATCH 3/4] refactor --- lib/utils/indent-ts.js | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/utils/indent-ts.js b/lib/utils/indent-ts.js index 8bc32e1b0..034bde947 100644 --- a/lib/utils/indent-ts.js +++ b/lib/utils/indent-ts.js @@ -1200,23 +1200,21 @@ function defineVisitor({ ) setOffset(leftParenToken, 1, firstToken) - let source const args = [] if (node.source) { - source = node.source - args.push(source) - if (node.options) { - args.push(node.options) - } + args.push(node.source) } else { // For old typescript-eslint parser - source = + args.push( node.argument || - /** @type {any} typescript-eslint v5 */ (node).parameter - args.push(source) + /** @type {any} typescript-eslint v5 */ (node).parameter + ) + } + if (node.options) { + args.push(node.options) } const rightParenToken = tokenStore.getTokenAfter( - source, + args[args.length - 1], isClosingParenToken ) processNodeList(args, leftParenToken, rightParenToken, 1) From 5a638d542631f213bbda8b5ae057bceac94a800e Mon Sep 17 00:00:00 2001 From: Flo Edelmann Date: Wed, 26 Nov 2025 09:21:09 +0100 Subject: [PATCH 4/4] Improve formatting in changeset --- .changeset/rich-bags-turn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/rich-bags-turn.md b/.changeset/rich-bags-turn.md index 35a475d09..f27e55a2a 100644 --- a/.changeset/rich-bags-turn.md +++ b/.changeset/rich-bags-turn.md @@ -2,4 +2,4 @@ "eslint-plugin-vue": patch --- -Fixed false positives for TSImportType in `vue/script-indent` rule +Fixed false positives for `TSImportType` in `vue/script-indent` rule