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",