mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Show qualified base class names in structure view (PY-3714)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user