From 37b1bff8f2816f9d2acb7df101b1eb120b27acc0 Mon Sep 17 00:00:00 2001 From: Skylot Date: Tue, 25 Apr 2023 21:28:27 +0100 Subject: [PATCH] fix(gui): adjust node by offset search in code area (#1845) --- .../java/jadx/gui/ui/codearea/CodeArea.java | 30 ++++++++----------- 1 file changed, 12 insertions(+), 18 deletions(-) diff --git a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java index 496f8d96c..3134d0a9e 100644 --- a/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java +++ b/jadx-gui/src/main/java/jadx/gui/ui/codearea/CodeArea.java @@ -141,23 +141,6 @@ public final class CodeArea extends AbstractCodeArea { if (token == null) { return -1; } - int type = token.getType(); - final int sourceOffset; - if (node instanceof JClass) { - if (type == TokenTypes.IDENTIFIER) { - sourceOffset = token.getOffset(); - } else if (type == TokenTypes.ANNOTATION && token.length() > 1) { - sourceOffset = token.getOffset() + 1; - } else { - return -1; - } - } else { - if (type == TokenTypes.MARKUP_TAG_ATTRIBUTE_VALUE) { - sourceOffset = token.getOffset() + 1; // skip quote at start (") - } else { - return -1; - } - } // fast skip if (token.length() == 1) { char ch = token.getTextArray()[token.getTextOffset()]; @@ -165,7 +148,18 @@ public final class CodeArea extends AbstractCodeArea { return -1; } } - return sourceOffset; + int type = token.getType(); + if (node instanceof JClass) { + if (type == TokenTypes.IDENTIFIER || type == TokenTypes.FUNCTION) { + return token.getOffset(); + } + if (type == TokenTypes.ANNOTATION && token.length() > 1) { + return token.getOffset() + 1; + } + } else if (type == TokenTypes.MARKUP_TAG_ATTRIBUTE_VALUE) { + return token.getOffset() + 1; // skip quote at start (") + } + return -1; } /**