vuejs / eslint-plugin-vue

Official ESLint plugin for Vue.js
https://eslint.vuejs.org/
MIT License
4.47k stars 667 forks source link

vue/no-bare-strings-in-template: per-component ignoring of slot content #2613

Open justingrant opened 4 days ago

justingrant commented 4 days ago

The v-icon component in Vuetify for Vue 2 uses the default slot to define the icon ID. This is not user-readable text, so I'd like to disable vue/no-bare-strings-in-template for all contents of any <v-icon> components.

For Vue3, this has been moved from a slot to an icon prop, so it's a non-issue there. But ignoring slot contents for some components seems like a good addition to this rule.

What rule do you want to change? vue/no-bare-strings-in-template

Does this change cause the rule to produce more or fewer warnings?

Fewer

How will the change be implemented? (New option, new default behavior, etc.)?

New option to allow some components or tags to be exempted (by name). For example:

  'vue/no-bare-strings-in-template': ['error',
    {
      ignoreSlots: {
        'v-icon': [ true /* true means default slot */, 'some-other-slot-name' ]
      }
    }
  ]

Please provide some example code that this change will affect:

          <v-icon color="error">
            $power
          </v-icon>

What does the rule currently do for this code? Error, because the rule thinks that $power should be localized.

What will the rule do after it's changed? No error.

Additional context