Stored JSDocInfo in FieldInfo and MethodInfo

This commit is contained in:
bigguy345 committed 2026-01-05 23:41:48 +02:00
1 parent ce3700b820
commit 830f2a3d8f
3 files changed
+18 -1

No files matched your search

@@ -738,6 +738,10 @@ public class ScriptDocument {
m.start(), nameStart, nameStart,
bodyStart, bodyEnd, 0, documentation
);
if(jsDoc!=null)
methodInfo.setJSDocInfo(jsDoc);
methods.add(methodInfo);
}
} else {
@@ -1032,6 +1036,8 @@ public class ScriptDocument {
FieldInfo fieldInfo = FieldInfo.localField(varName, typeInfo, absPos, method, initStart, initEnd, 0);
if(jsDoc != null)
fieldInfo.setJSDocInfo(jsDoc);
// Check for duplicate
if (locals.containsKey(varName) || globalFields.containsKey(varName)) {
AssignmentInfo dupError = AssignmentInfo.duplicateDeclaration(
@@ -1349,6 +1355,9 @@ public class ScriptDocument {
FieldInfo fieldInfo = FieldInfo.globalField(varName, typeInfo, position, documentation, initStart, initEnd, 0);
if(jsDoc != null)
fieldInfo.setJSDocInfo(jsDoc);
if (globalFields.containsKey(varName)) {
AssignmentInfo dupError = AssignmentInfo.duplicateDeclaration(
varName, position, position + varName.length(),
@@ -3,6 +3,7 @@ package noppes.npcs.client.gui.util.script.interpreter.field;
import noppes.npcs.client.gui.util.script.interpreter.js_parser.JSFieldInfo;
import noppes.npcs.client.gui.util.script.interpreter.js_parser.JSTypeInfo;
import noppes.npcs.client.gui.util.script.interpreter.js_parser.JSTypeRegistry;
import noppes.npcs.client.gui.util.script.interpreter.jsdoc.JSDocInfo;
import noppes.npcs.client.gui.util.script.interpreter.token.TokenType;
import noppes.npcs.client.gui.util.script.interpreter.type.TypeInfo;
import noppes.npcs.client.gui.util.script.interpreter.method.MethodCallInfo;
@@ -34,7 +35,8 @@ public final class FieldInfo {
private final int declarationOffset; // Where this field was declared in the source
private final boolean resolved;
private final String documentation; // Javadoc/comment documentation for this field
private JSDocInfo jsDocInfo; // Parsed JSDoc info for this method (may be null)
// Initialization value range (for displaying "= value" in hover info)
private final int initStart; // Position of '=' or -1 if no initializer
private final int initEnd; // Position after initializer (before ';') or -1
@@ -467,6 +469,8 @@ public final class FieldInfo {
public boolean isResolved() { return resolved; }
public MethodInfo getContainingMethod() { return containingMethod; }
public String getDocumentation() { return documentation; }
public JSDocInfo getJSDocInfo() { return jsDocInfo; }
public void setJSDocInfo(JSDocInfo jsDocInfo) { this.jsDocInfo = jsDocInfo; }
public int getInitStart() { return initStart; }
public int getInitEnd() { return initEnd; }
public boolean hasInitializer() { return initStart >= 0 && initEnd > initStart; }
@@ -2,6 +2,7 @@ package noppes.npcs.client.gui.util.script.interpreter.method;
import noppes.npcs.client.gui.util.script.interpreter.*;
import noppes.npcs.client.gui.util.script.interpreter.field.FieldInfo;
import noppes.npcs.client.gui.util.script.interpreter.jsdoc.JSDocInfo;
import noppes.npcs.client.gui.util.script.interpreter.js_parser.JSMethodInfo;
import noppes.npcs.client.gui.util.script.interpreter.js_parser.JSTypeInfo;
import noppes.npcs.client.gui.util.script.interpreter.js_parser.JSTypeRegistry;
@@ -59,6 +60,7 @@ public final class MethodInfo {
private final boolean isDeclaration; // true if this is a declaration, false if it's a call
private final int modifiers; // Java Modifier flags (e.g., Modifier.PUBLIC | Modifier.STATIC)
private final String documentation; // Javadoc/comment documentation for this method
private JSDocInfo jsDocInfo; // Parsed JSDoc info for this method (may be null)
private final java.lang.reflect.Method javaMethod; // The Java reflection Method, if this was created from reflection
// Error tracking for method declarations
@@ -269,6 +271,8 @@ public final class MethodInfo {
public boolean isPrivate() { return Modifier.isPrivate(modifiers); }
public boolean isProtected() { return Modifier.isProtected(modifiers); }
public String getDocumentation() { return documentation; }
public JSDocInfo getJSDocInfo() { return jsDocInfo; }
public void setJSDocInfo(JSDocInfo jsDocInfo) { this.jsDocInfo = jsDocInfo; }
// ==================== OVERRIDE/IMPLEMENTS GETTERS/SETTERS ====================