@@ -5,9 +5,13 @@ import com.example.ide.psi.isStyleIndex
55import com.intellij.lang.annotation.AnnotationHolder
66import com.intellij.lang.annotation.Annotator
77import com.intellij.lang.annotation.HighlightSeverity
8+ import com.intellij.lang.ecmascript6.psi.ES6ImportedBinding
89import com.intellij.lang.javascript.psi.JSLiteralExpression
10+ import com.intellij.lang.javascript.psi.JSReferenceExpression
911import com.intellij.psi.PsiElement
12+ import com.intellij.psi.css.CssClass
1013import com.intellij.psi.css.CssRuleset
14+ import com.intellij.psi.css.StylesheetFile
1115import org.jetbrains.annotations.NotNull
1216
1317
@@ -46,5 +50,18 @@ class CssModulesClassAnnotator : Annotator {
4650 resolveUnknownClass(holder, psiElement)
4751 resolveEmptyClass(holder, psiElement)
4852 }
53+ if (psiElement is JSReferenceExpression ) {
54+ val binding = psiElement.firstChild?.reference?.resolve() as ? ES6ImportedBinding ? : return
55+ val styleFile = binding.findReferencedElements().firstOrNull() as ? StylesheetFile ? : return
56+ if (psiElement.reference?.resolve() !is CssClass ) {
57+ holder.newAnnotation(
58+ HighlightSeverity .WEAK_WARNING ,
59+ " $UNKNOWN \" ${psiElement.lastChild.text} \" "
60+ )
61+ .range(psiElement.lastChild)
62+ .withFix(SimpleCssSelectorFix (psiElement.lastChild.text, styleFile))
63+ .create()
64+ }
65+ }
4966 }
5067}
0 commit comments