From f7d4a369340d7931923972e07634bb82f598c3f0 Mon Sep 17 00:00:00 2001 From: Brad Cornes Date: Sun, 21 Jun 2020 16:05:46 +0100 Subject: [PATCH] invalid @apply quick fix: check that base class name can be @applied --- .../provideInvalidApplyCodeActions.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lsp/providers/codeActions/provideInvalidApplyCodeActions.ts b/src/lsp/providers/codeActions/provideInvalidApplyCodeActions.ts index 22c6603..346f246 100644 --- a/src/lsp/providers/codeActions/provideInvalidApplyCodeActions.ts +++ b/src/lsp/providers/codeActions/provideInvalidApplyCodeActions.ts @@ -22,6 +22,7 @@ import dset from 'dset' import selectorParser from 'postcss-selector-parser' import { flatten } from '../../../util/array' import { getClassNameMeta } from '../../util/getClassNameMeta' +import { validateApply } from '../../util/validateApply' export async function provideInvalidApplyCodeActions( state: State, @@ -173,11 +174,12 @@ function classNameToAst( selector: string, important: boolean = false ) { - const baseClassName = dlv( - state.classNames.classNames, - classNameParts[classNameParts.length - 1] - ) - if (!baseClassName) { + const baseClassName = classNameParts[classNameParts.length - 1] + const validatedBaseClassName = validateApply(state, [baseClassName]) + if ( + validatedBaseClassName === null || + validatedBaseClassName.isApplyable === false + ) { return null } const meta = getClassNameMeta(state, classNameParts) @@ -216,9 +218,7 @@ function classNameToAst( let rule = { [selector]: { - [`@apply ${classNameParts[classNameParts.length - 1]}${ - important ? ' !important' : '' - }`]: '', + [`@apply ${baseClassName}${important ? ' !important' : ''}`]: '', }, } if (path.length) {