diff --git a/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.mdx b/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.mdx index e01f72fd3..de88dc41a 100644 --- a/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.mdx +++ b/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.mdx @@ -53,8 +53,8 @@ import React from "react"; function MyComponent({ user }) { return
Hello ${user.name}
; - // ^^^^^^^ - // - Possible unnecessary '$' character before expression. + // ^ + // - Possible unnecessary '$' character before expression. } ``` diff --git a/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.spec.ts b/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.spec.ts index a0c402d3c..d80b23687 100644 --- a/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.spec.ts +++ b/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.spec.ts @@ -12,6 +12,10 @@ ruleTester.run(RULE_NAME, rule, { errors: [ { messageId: "jsxDollar", + column: 35, + endColumn: 36, + endLine: 1, + line: 1, suggestions: [ { messageId: "removeDollarSign", @@ -32,6 +36,10 @@ ruleTester.run(RULE_NAME, rule, { errors: [ { messageId: "jsxDollar", + column: 23, + endColumn: 24, + endLine: 2, + line: 2, suggestions: [ { messageId: "removeDollarSign", @@ -54,6 +62,10 @@ ruleTester.run(RULE_NAME, rule, { errors: [ { messageId: "jsxDollar", + column: 17, + endColumn: 18, + endLine: 2, + line: 2, suggestions: [ { messageId: "removeDollarSign", @@ -76,6 +88,10 @@ ruleTester.run(RULE_NAME, rule, { errors: [ { messageId: "jsxDollar", + column: 23, + endColumn: 24, + endLine: 2, + line: 2, suggestions: [ { messageId: "removeDollarSign", diff --git a/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.ts b/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.ts index 52377ce42..ee9c503b0 100644 --- a/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.ts +++ b/packages/plugins/eslint-plugin-react-x/src/rules/jsx-dollar.ts @@ -46,9 +46,20 @@ export function create(context: RuleContext): RuleListener { if (node.children[index + 1]?.type !== T.JSXExpressionContainer) continue; // Skip if there are only two children (the dollar sign and the expression) it doesn't seem to be split from a template literal if (child.value === "$" && node.children.length === 2) continue; + const pos = child.loc.end; context.report({ messageId: "jsxDollar", node: child, + loc: { + end: { + column: pos.column, + line: pos.line, + }, + start: { + column: pos.column - 1, + line: pos.line, + }, + }, suggest: [ { messageId: "removeDollarSign",