From 8584175ef1fdc0c902237914f68d27101a4336e6 Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Mon, 1 Feb 2010 19:39:08 +0300 Subject: [PATCH] special case of show implementations for Python: show initializer for target expressions (PY-237) --- .../codeInsight/hint/actions/ShowImplementationsAction.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java b/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java index 373ed13dd5..7583c57b8b 100644 --- a/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java +++ b/platform/lang-impl/src/com/intellij/codeInsight/hint/actions/ShowImplementationsAction.java @@ -35,6 +35,7 @@ import com.intellij.openapi.vfs.VirtualFile; import com.intellij.pom.PomTargetPsiElement; import com.intellij.psi.*; import com.intellij.psi.presentation.java.SymbolPresentationUtil; +import com.intellij.psi.util.PsiTreeUtil; import com.intellij.ui.popup.NotLookupOrSearchCondition; import com.intellij.ui.popup.PopupUpdateProcessor; import org.jetbrains.annotations.NonNls; @@ -190,6 +191,14 @@ public class ShowImplementationsAction extends AnAction { PsiFile psiFile = elt.getContainingFile().getOriginalFile(); if (psiFile.getVirtualFile() == null) unique.remove(elt); } + // special case for Python (PY-237) + // if the definition is the tree parent of the target element, filter out the target element + for (int i = 1; i < targetElements.length; i++) { + if (PsiTreeUtil.isAncestor(targetElements[i], targetElements[0], true)) { + unique.remove(targetElements[0]); + break; + } + } return unique.toArray(new PsiElement[unique.size()]); } }; -- 2.11.4.GIT