Skip to content

Commit 4b3efa1

Browse files
Refactoring
1 parent 956fc88 commit 4b3efa1

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

src/main/java/io/protostuff/jetbrains/plugin/view/structure/AbstractTreeElement.java

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,15 @@
22

33
import com.intellij.ide.structureView.StructureViewTreeElement;
44
import com.intellij.ide.util.treeView.smartTree.SortableTreeElement;
5-
import com.intellij.navigation.NavigationItem;
6-
import com.intellij.psi.PsiElement;
5+
import com.intellij.psi.NavigatablePsiElement;
76
import com.intellij.psi.PsiNamedElement;
87
import org.jetbrains.annotations.NotNull;
98

10-
abstract class AbstractTreeElement<ElementT extends PsiElement> implements StructureViewTreeElement, SortableTreeElement {
9+
abstract class AbstractTreeElement<ElementT extends NavigatablePsiElement> implements StructureViewTreeElement, SortableTreeElement {
1110

1211
protected final ElementT element;
1312

14-
AbstractTreeElement(ElementT element) {
13+
AbstractTreeElement(@NotNull ElementT element) {
1514
this.element = element;
1615
}
1716

@@ -22,27 +21,23 @@ public ElementT getValue() {
2221

2322
@Override
2423
public void navigate(boolean requestFocus) {
25-
if (element instanceof NavigationItem) {
26-
((NavigationItem) element).navigate(requestFocus);
27-
}
24+
element.navigate(requestFocus);
2825
}
2926

3027
@Override
3128
public boolean canNavigate() {
32-
return element instanceof NavigationItem &&
33-
((NavigationItem) element).canNavigate();
29+
return element.canNavigate();
3430
}
3531

3632
@Override
3733
public boolean canNavigateToSource() {
38-
return element instanceof NavigationItem &&
39-
((NavigationItem) element).canNavigateToSource();
34+
return element.canNavigateToSource();
4035
}
4136

4237
@NotNull
4338
@Override
4439
public String getAlphaSortKey() {
45-
String s = element instanceof PsiNamedElement ? ((PsiNamedElement) element).getName() : null;
40+
String s = element instanceof PsiNamedElement ? element.getName() : null;
4641
if (s == null) return "unknown key";
4742
return s;
4843
}

src/main/java/io/protostuff/jetbrains/plugin/view/structure/ProtoStructureViewModel.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ private static RootTreeElement getProtoRootElement(ProtoPsiFileRoot root) {
2626
return new RootTreeElement(root, root.findChildByClass(ProtoRootNode.class));
2727
}
2828

29+
/**
30+
* Used for "auto-scroll from source".
31+
*/
32+
@NotNull
33+
@Override
34+
protected Class[] getSuitableClasses() {
35+
return new Class[]{MessageNode.class, EnumNode.class, ServiceNode.class,
36+
FieldNode.class, EnumConstantNode.class, RpcMethodNode.class};
37+
}
38+
2939
@Override
3040
@NotNull
3141
public Sorter[] getSorters() {

0 commit comments

Comments
 (0)