Skip to content

Commit 1f3bf3b

Browse files
committed
Fix label detection for nested classes
1 parent 15f4cda commit 1f3bf3b

File tree

1 file changed

+13
-4
lines changed

1 file changed

+13
-4
lines changed

src/main/java/the/bytecode/club/jda/gui/fileviewer/BytecodeSyntaxArea.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -72,16 +72,25 @@ private void parseLabels(Fold parent, Fold f) {
7272
}
7373
}
7474

75+
private boolean isMethodFold(Fold f) {
76+
if (f.getParent() == null)
77+
return false;
78+
Fold parent = f.getParent();
79+
for (Token t = getTokenListForLine(parent.getStartLine()); t != null; t = t.getNextToken()) {
80+
if (t.getType() == TokenTypes.RESERVED_WORD && t.getLexeme().equals("class"))
81+
return true;
82+
}
83+
return false;
84+
}
85+
7586
private Fold getMethodFold(Token token) {
7687
return parentFoldCache.computeIfAbsent(token, t -> {
7788
FoldManager foldManager = getFoldManager();
78-
Fold rootFold = foldManager.getFold(0);
7989
Fold curFold = foldManager.getDeepestFoldContaining(t.getOffset());
8090
while (curFold != null) {
81-
Fold parentFold = curFold.getParent();
82-
if (parentFold == rootFold)
91+
if (isMethodFold(curFold))
8392
return curFold;
84-
curFold = parentFold;
93+
curFold = curFold.getParent();
8594
}
8695
throw new IllegalArgumentException("Token is not parented in top-level (class def) fold");
8796
});

0 commit comments

Comments
 (0)