<directoryProjectGenerator implementation="com.jetbrains.edu.learning.PyStudyDirectoryProjectGenerator"/>
</extensions>
<extensions defaultExtensionNs="Pythonid">
- <visitorFilter language="Python" implementationClass="com.jetbrains.edu.learning.highlighting.PyStudyVisitorFilter"/>
+ <inspectionExtension implementation="com.jetbrains.edu.learning.highlighting.PyStudyInspectionExtension"/>
<pyReferenceResolveProvider implementation="com.jetbrains.edu.learning.PyStudyReferenceResolveProvider"/>
</extensions>
<extensions defaultExtensionNs="Edu">
--- /dev/null
+package com.jetbrains.edu.learning.highlighting;
+
+import com.intellij.psi.PsiFile;
+import com.intellij.psi.PsiReference;
+import com.intellij.psi.util.PsiTreeUtil;
+import com.jetbrains.edu.learning.StudyTaskManager;
+import com.jetbrains.python.inspections.PyInspectionExtension;
+import com.jetbrains.python.psi.PyElement;
+import com.jetbrains.python.psi.PyImportStatement;
+import org.jetbrains.annotations.NotNull;
+
+public class PyStudyInspectionExtension extends PyInspectionExtension {
+
+ @Override
+ public boolean ignoreUnresolvedReference(@NotNull PyElement element, @NotNull PsiReference reference) {
+ final PsiFile file = element.getContainingFile();
+ if (StudyTaskManager.getInstance(file.getProject()).getCourse() != null) {
+ if (PsiTreeUtil.getParentOfType(element, PyImportStatement.class) != null) {
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
+
+}
+++ /dev/null
-package com.jetbrains.edu.learning.highlighting;
-
-import com.intellij.psi.PsiFile;
-import com.jetbrains.edu.learning.StudyTaskManager;
-import com.jetbrains.python.inspections.PythonVisitorFilter;
-import com.jetbrains.python.inspections.unresolvedReference.PyUnresolvedReferencesInspection;
-import org.jetbrains.annotations.NotNull;
-
-public class PyStudyVisitorFilter implements PythonVisitorFilter {
- @Override
- public boolean isSupported(@NotNull final Class visitorClass, @NotNull final PsiFile file) {
- if (StudyTaskManager.getInstance(file.getProject()).getCourse() == null) return true;
- if (visitorClass == PyUnresolvedReferencesInspection.class) {
- return false;
- }
- return true;
- }
-}