diff --git a/python/src/com/jetbrains/python/psi/impl/ResolveResultList.java b/python/src/com/jetbrains/python/psi/impl/ResolveResultList.java index edb5404b03d7..20733f8ba38b 100644 --- a/python/src/com/jetbrains/python/psi/impl/ResolveResultList.java +++ b/python/src/com/jetbrains/python/psi/impl/ResolveResultList.java @@ -2,6 +2,7 @@ package com.jetbrains.python.psi.impl; import com.intellij.psi.PsiElement; import com.intellij.psi.PsiInvalidElementAccessException; +import com.intellij.psi.impl.light.LightElement; import com.jetbrains.python.psi.resolve.RatedResolveResult; import java.util.ArrayList; @@ -25,7 +26,7 @@ public class ResolveResultList extends ArrayList { public boolean poke(final PsiElement what, final int rate) { if (what == null) return false; - if (!what.isValid()) { + if (!(what instanceof LightElement) && !what.isValid()) { throw new PsiInvalidElementAccessException(what, "Trying to resolve a reference to an invalid element"); } super.add(new RatedResolveResult(rate, what)); diff --git a/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java b/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java index da7e4cbbcca9..194ae430ae4a 100644 --- a/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java +++ b/python/src/com/jetbrains/python/validation/Pep8ExternalAnnotator.java @@ -36,8 +36,10 @@ import com.jetbrains.python.PythonFileType; import com.jetbrains.python.PythonHelpersLocator; import com.jetbrains.python.inspections.PyPep8Inspection; import com.jetbrains.python.inspections.quickfix.ReformatFix; +import com.jetbrains.python.sdk.PreferredSdkComparator; import com.jetbrains.python.sdk.PySdkUtil; import com.jetbrains.python.sdk.PythonSdkType; +import com.jetbrains.python.sdk.flavors.PythonSdkFlavor; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -86,6 +88,8 @@ public class Pep8ExternalAnnotator extends ExternalAnnotator allSdks = PythonSdkType.getAllSdks(); + Collections.sort(allSdks, PreferredSdkComparator.INSTANCE); + for (Sdk sdk : allSdks) { + LOG.info(" Path: " + sdk.getHomePath() + "; Flavor: " + PythonSdkFlavor.getFlavor(sdk) + "; Remote: " + PythonSdkType.isRemote(sdk)); + } + LOG.info("]"); + } + @Nullable @Override public State doAnnotate(State collectedInfo) { @@ -167,7 +193,13 @@ public class Pep8ExternalAnnotator extends ExternalAnnotator= document.getLineCount() ? document.getTextLength()-1 : document.getLineEndOffset(line); + } + else { + lineEndOffset = StringUtil.lineColToOffset(text, line+1, 0) - 1; + } problemRange = new TextRange(offset, lineEndOffset); } final Annotation annotation;