Skip to content

Commit 200209a

Browse files
committed
fix: use placeholder to report a more specific message
1 parent 8f9ab8e commit 200209a

File tree

4 files changed

+33
-11
lines changed

4 files changed

+33
-11
lines changed

docs/rules/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,7 @@ For example:
270270
| [vue/prefer-prop-type-boolean-first](./prefer-prop-type-boolean-first.md) | enforce `Boolean` comes first in component prop types | :bulb: | :warning: |
271271
| [vue/prefer-separate-static-class](./prefer-separate-static-class.md) | require static class names in template to be in a separate `class` attribute | :wrench: | :hammer: |
272272
| [vue/prefer-true-attribute-shorthand](./prefer-true-attribute-shorthand.md) | require shorthand form attribute when `v-bind` value is `true` | :bulb: | :hammer: |
273-
| [vue/prefer-use-template-ref](./prefer-use-template-ref.md) | require using `useTemplateRef` instead of `ref` for template refs | | :hammer: |
273+
| [vue/prefer-use-template-ref](./prefer-use-template-ref.md) | require using `useTemplateRef` instead of `ref`/`shallowRef` for template refs | | :hammer: |
274274
| [vue/require-default-export](./require-default-export.md) | require components to be the default export | | :warning: |
275275
| [vue/require-direct-export](./require-direct-export.md) | require the component to be directly exported | | :hammer: |
276276
| [vue/require-emit-validator](./require-emit-validator.md) | require type definitions in emits | :bulb: | :hammer: |

docs/rules/prefer-use-template-ref.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
pageClass: rule-details
33
sidebarDepth: 0
44
title: vue/prefer-use-template-ref
5-
description: require using `useTemplateRef` instead of `ref/shallowRef` for template refs
5+
description: require using `useTemplateRef` instead of `ref`/`shallowRef` for template refs
66
since: v9.31.0
77
---
88

99
# vue/prefer-use-template-ref
1010

11-
> require using `useTemplateRef` instead of `ref/shallowRef` for template refs
11+
> require using `useTemplateRef` instead of `ref`/`shallowRef` for template refs
1212
1313
## :book: Rule Details
1414

1515
Vue 3.5 introduced a new way of obtaining template refs via
1616
the [`useTemplateRef()`](https://vuejs.org/guide/essentials/template-refs.html#accessing-the-refs) API.
1717

18-
This rule enforces using the new `useTemplateRef` function instead of `ref/shallowRef` for template refs.
18+
This rule enforces using the new `useTemplateRef` function instead of `ref`/`shallowRef` for template refs.
1919

2020
<eslint-code-block :rules="{'vue/prefer-use-template-ref': ['error']}">
2121

lib/rules/prefer-use-template-ref.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,13 @@ module.exports = {
2222
type: 'suggestion',
2323
docs: {
2424
description:
25-
'require using `useTemplateRef` instead of `ref/shallowRef` for template refs',
25+
'require using `useTemplateRef` instead of `ref`/`shallowRef` for template refs',
2626
categories: undefined,
2727
url: 'https://eslint.vuejs.org/rules/prefer-use-template-ref.html'
2828
},
2929
schema: [],
3030
messages: {
31-
preferUseTemplateRef: "Replace 'ref/shallowRef' with 'useTemplateRef'."
31+
preferUseTemplateRef: "Replace '{{name}}' with 'useTemplateRef'."
3232
}
3333
},
3434
/** @param {RuleContext} context */
@@ -50,10 +50,7 @@ module.exports = {
5050
context,
5151
{
5252
'VAttribute[directive=false]'(node) {
53-
if (
54-
(node.key.name === 'ref' || node.key.name === 'shallowRef') &&
55-
node.value?.value
56-
) {
53+
if (node.key.name === 'ref' && node.value?.value) {
5754
templateRefs.add(node.value.value)
5855
}
5956
}
@@ -86,7 +83,11 @@ module.exports = {
8683

8784
context.report({
8885
node: scriptRef.node,
89-
messageId: 'preferUseTemplateRef'
86+
messageId: 'preferUseTemplateRef',
87+
data: {
88+
// @ts-ignore
89+
name: scriptRef.node?.callee?.name
90+
}
9091
})
9192
}
9293
}

tests/lib/rules/prefer-use-template-ref.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,9 @@ tester.run('prefer-use-template-ref', rule, {
214214
errors: [
215215
{
216216
messageId: 'preferUseTemplateRef',
217+
data: {
218+
name: 'ref'
219+
},
217220
line: 7,
218221
column: 22
219222
}
@@ -235,6 +238,9 @@ tester.run('prefer-use-template-ref', rule, {
235238
errors: [
236239
{
237240
messageId: 'preferUseTemplateRef',
241+
data: {
242+
name: 'ref'
243+
},
238244
line: 9,
239245
column: 22
240246
}
@@ -256,11 +262,17 @@ tester.run('prefer-use-template-ref', rule, {
256262
errors: [
257263
{
258264
messageId: 'preferUseTemplateRef',
265+
data: {
266+
name: 'ref'
267+
},
259268
line: 8,
260269
column: 25
261270
},
262271
{
263272
messageId: 'preferUseTemplateRef',
273+
data: {
274+
name: 'ref'
275+
},
264276
line: 9,
265277
column: 22
266278
}
@@ -288,6 +300,9 @@ tester.run('prefer-use-template-ref', rule, {
288300
errors: [
289301
{
290302
messageId: 'preferUseTemplateRef',
303+
data: {
304+
name: 'ref'
305+
},
291306
line: 14,
292307
column: 33
293308
}
@@ -314,6 +329,9 @@ tester.run('prefer-use-template-ref', rule, {
314329
errors: [
315330
{
316331
messageId: 'preferUseTemplateRef',
332+
data: {
333+
name: 'ref'
334+
},
317335
line: 12,
318336
column: 28
319337
}
@@ -333,6 +351,9 @@ tester.run('prefer-use-template-ref', rule, {
333351
errors: [
334352
{
335353
messageId: 'preferUseTemplateRef',
354+
data: {
355+
name: 'shallowRef'
356+
},
336357
line: 7,
337358
column: 22
338359
}

0 commit comments

Comments
 (0)