From bc6e9786dab536b2a766619fed344eab00be9d13 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Sat, 3 Jan 2026 01:29:41 +0200 Subject: [PATCH] Fixed error hover info for enums being broken --- .../script/interpreter/hover/TokenHoverInfo.java | 12 +++++++++--- .../gui/util/script/interpreter/token/Token.java | 3 +++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/hover/TokenHoverInfo.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/hover/TokenHoverInfo.java index 9f9fae12d..2e01e47f8 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/hover/TokenHoverInfo.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/hover/TokenHoverInfo.java @@ -184,7 +184,7 @@ public class TokenHoverInfo { } // Show method-level errors if this is the method name itself - MethodCallInfo callInfo = token.getMethodCallInfo(); + MethodCallInfo callInfo = token.isEnumConstant()? containingCall : token.getMethodCallInfo(); if (callInfo != null) { if (callInfo.hasArgCountError()) { errors.add(callInfo.getErrorMessage()); @@ -337,12 +337,18 @@ public class TokenHoverInfo { ScriptDocument doc = line.getParent(); int tokenStart = token.getGlobalStart(); - + for (MethodCallInfo call : doc.getMethodCalls()) { + boolean isWithinName = tokenStart >= call.getMethodNameStart() && tokenStart <= call.getMethodNameEnd(); + + // If this is an enum constant, return methodCall on name itself + if (token.isEnumConstant() && isWithinName) + return call; + // Check if token is within the argument list if (tokenStart >= call.getOpenParenOffset() && tokenStart <= call.getCloseParenOffset()) { // Make sure it's not the method name itself - if (tokenStart >= call.getMethodNameStart() && tokenStart <= call.getMethodNameEnd()) { + if (isWithinName) { continue; } return call; diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java index 194878c76..b7b81af9e 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/token/Token.java @@ -206,6 +206,9 @@ public class Token { type == TokenType.ENUM_DECL; } + public boolean isEnumConstant() { + return type == TokenType.ENUM_CONSTANT; + } public boolean isResolved() { if (typeInfo != null) return typeInfo.isResolved(); if (fieldInfo != null) return fieldInfo.isResolved();