From 021a32b96209c6fe7ff01d40fad4ac28edc893c3 Mon Sep 17 00:00:00 2001 From: bigguy345 Date: Sat, 24 Jan 2026 02:24:13 +0200 Subject: [PATCH] Added JSDocInfo for TypeInfo too --- .../gui/util/script/interpreter/ScriptDocument.java | 6 ++++++ .../gui/util/script/interpreter/hover/TokenHoverInfo.java | 5 +++++ .../client/gui/util/script/interpreter/type/TypeInfo.java | 8 ++++++++ 3 files changed, 19 insertions(+) diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java index a74d473fa..5a5e29ef6 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptDocument.java @@ -671,10 +671,16 @@ public class ScriptDocument { // Extract modifiers from the matched text String fullMatch = text.substring(m.start(), m.end()); int modifiers = parseModifiers(fullMatch); + + JSDocInfo jsDoc = jsDocParser.extractJSDocBefore(text, m.start()); ScriptTypeInfo scriptType = ScriptTypeInfo.create( typeName, kind, m.start(), bodyStart, bodyEnd, modifiers); + if (jsDoc != null) { + scriptType.setJSDocInfo(jsDoc); + } + // Store the script type first so it can be resolved by other types scriptTypes.put(typeName, scriptType); 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 b6a1ebbdc..d3fa8d020 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 @@ -665,6 +665,11 @@ public class TokenHoverInfo { errors.add(scriptType.getErrorMessage()); } } + + JSDocInfo jsDocInfo = scriptType.getJSDocInfo(); + if (jsDocInfo != null) { + formatJSDocumentation(jsDocInfo, null); + } } else if (typeInfo.isJSType()) { JSTypeInfo jsType = typeInfo.getJSTypeInfo(); diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/type/TypeInfo.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/type/TypeInfo.java index cb0800ebb..500c6afa2 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/type/TypeInfo.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/type/TypeInfo.java @@ -66,6 +66,9 @@ public class TypeInfo { // Type parameters (generics) private final List typeParams = new ArrayList<>(); + // Documentation (script-defined types) + private JSDocInfo jsDocInfo; + private TypeInfo(String simpleName, String fullName, String packageName, Kind kind, Class javaClass, boolean resolved, TypeInfo enclosingType) { this(simpleName, fullName, packageName, kind, javaClass, resolved, enclosingType, null); @@ -229,9 +232,14 @@ public class TypeInfo { } public JSDocInfo getJSDocInfo() { + if (jsDocInfo != null) { + return jsDocInfo; + } return jsTypeInfo != null ? jsTypeInfo.getJsDocInfo() : null; } + public void setJSDocInfo(JSDocInfo jsDocInfo) { this.jsDocInfo = jsDocInfo; } + // Getters public String getSimpleName() { return simpleName; } public String getFullName() { return fullName; }