/** * @fileoverview disallow unused variable definitions of v-for directives or scope attributes. * @author 薛定谔的猫 */ 'use strict' const utils = require('../utils') // ------------------------------------------------------------------------------ // Rule Definition // ------------------------------------------------------------------------------ module.exports = { meta: { type: 'suggestion', docs: { description: 'disallow unused variable definitions of v-for directives or scope attributes', category: 'essential', url: 'https://eslint.vuejs.org/rules/no-unused-vars.html' }, fixable: null, schema: [] }, create (context) { return utils.defineTemplateBodyVisitor(context, { VElement (node) { const variables = node.variables for ( let i = variables.length - 1; i >= 0 && !variables[i].references.length; i-- ) { const variable = variables[i] context.report({ node: variable.id, loc: variable.id.loc, message: `'{{name}}' is defined but never used.`, data: variable.id }) } } }) } }