Show qualified base class names in structure view (PY-3714)

This commit is contained in:
Andrey Vlasovskikh
2011-05-27 16:51:40 +04:00
parent adc97e2552
commit cc898d0921
4 changed files with 20 additions and 8 deletions
@@ -15,13 +15,14 @@ import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.impl.ParamHelper;
import com.jetbrains.python.psi.impl.PyBuiltinCache;
import org.jetbrains.annotations.Nullable;
import static com.intellij.openapi.util.text.StringUtil.join;
import static com.intellij.openapi.util.text.StringUtil.notNullize;
import javax.swing.*;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.Arrays;
import static com.intellij.openapi.util.text.StringUtil.join;
import static com.intellij.openapi.util.text.StringUtil.notNullize;
/**
* Handles nodes in Structure View.
@@ -159,9 +160,10 @@ public class PyStructureViewElement implements StructureViewTreeElement {
PyClass[] superClasses = c.getSuperClasses();
if (superClasses.length > 0) {
result.append("(");
result.append(join(Arrays.asList(c.getSuperClasses()), new Function<PyClass, String>() {
public String fun(PyClass c) {
return notNullize(c.getName(), unnamed);
result.append(join(Arrays.asList(c.getSuperClassExpressions()), new Function<PyExpression, String>() {
public String fun(PyExpression expr) {
String name = expr.getText();
return notNullize(name, unnamed);
}
}, ", "));
result.append(")");
@@ -1,3 +1,5 @@
import lib1
class B1:
def f(self, x):
return x + self.y
@@ -15,3 +17,7 @@ class D1(C):
class D2(C):
pass
# PY-3714
class D3(lib1.C):
pass
+2
View File
@@ -0,0 +1,2 @@
class C(object):
pass
@@ -11,7 +11,8 @@ import static com.intellij.testFramework.PlatformTestUtil.assertTreeEqual;
*/
public class PyStructureViewTest extends PyLightFixtureTestCase {
public void testBaseClassNames() {
myFixture.configureByFile("structureView/baseClassNames.py");
myFixture.configureByFiles("structureView/baseClassNames.py",
"structureView/lib1.py");
myFixture.testStructureView(new Consumer<StructureViewComponent>() {
@Override
public void consume(StructureViewComponent component) {
@@ -22,7 +23,8 @@ public class PyStructureViewTest extends PyLightFixtureTestCase {
" g(x)\n" +
" C(B1, B2)\n" +
" D1(C)\n" +
" D2(C)\n");
" D2(C)\n" +
" D3(lib1.C)\n");
}
});
}