Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | 2x 2x 2x 2x 2x 2x 2x 2x 2x 2x 395x 395x 2x 2x 2x 2x 114x 94x 94x 2x 2x 174x 4x 4x 2x 2x 1327x 218x 218x 218x 218x 1327x 1327x 2x 2x 1309x 28x 1309x 1281x 1281x 1309x 2x | /** @import { Visitors } from 'zimmerframe' */ /** @import { Css } from '#compiler' */ import { walk } from 'zimmerframe'; import * as w from '../../../warnings.js'; import { is_keyframes_node } from '../../css.js'; /** * @param {Css.StyleSheet} stylesheet */ export function warn_unused(stylesheet) { walk(stylesheet, { stylesheet }, visitors); } /** @type {Visitors<Css.Node, { stylesheet: Css.StyleSheet }>} */ const visitors = { Atrule(node, context) { if (!is_keyframes_node(node)) { context.next(); } }, PseudoClassSelector(node, context) { if (node.name === 'is' || node.name === 'where') { context.next(); } }, ComplexSelector(node, context) { if (!node.metadata.used) { const content = context.state.stylesheet.content; const text = content.styles.substring(node.start - content.start, node.end - content.start); w.css_unused_selector(node, text); } context.next(); }, Rule(node, context) { if (node.metadata.is_global_block) { context.visit(node.prelude); } else { context.next(); } } }; |