Added hover info for enum constants

This commit is contained in:
bigguy345 committed 2026-01-02 16:11:49 +02:00
1 parent d3a1535a31
commit aaaeaf4b19
1 file changed
+63 -1
@@ -120,7 +120,10 @@ public class TokenHoverInfo {
case METHOD_DECL:
info.extractMethodDeclInfo(token);
break;
case ENUM_CONSTANT:
info.extractEnumConstantInfo(token);
break;
case GLOBAL_FIELD:
info.extractGlobalFieldInfo(token);
break;
@@ -773,6 +776,47 @@ public class TokenHoverInfo {
addInitializationTokens(token, fieldInfo);
}
private void extractEnumConstantInfo(Token token) {
EnumConstantInfo enumInfo = token.getEnumConstantInfo();
if (enumInfo == null)
return;
FieldInfo fieldInfo = enumInfo.getFieldInfo();
if (fieldInfo == null)
return;
iconIndicator = "e";
// Add documentation if available
if (fieldInfo.getDocumentation() != null && !fieldInfo.getDocumentation().isEmpty()) {
String[] docLines = fieldInfo.getDocumentation().split("\n");
for (String line : docLines) {
documentation.add(line);
}
}
TypeInfo enumType = enumInfo.getEnumType();
if (enumType != null) {
// Show enum's package
String pkg = getPackageName(enumType);
if (pkg != null && !pkg.isEmpty())
packageName = pkg;
// Type (enum type name)
int typeColor = getColorForTypeInfo(enumType);
addSegment(enumType.getSimpleName(), typeColor);
addSegment(" ", TokenType.DEFAULT.getHexColor());
}
// Enum constant name
addSegment(fieldInfo.getName(), TokenType.ENUM_CONSTANT.getHexColor());
// Add constructor arguments if available
addInitializationTokens(token, fieldInfo);
}
private void extractLocalFieldInfo(Token token) {
FieldInfo fieldInfo = token.getFieldInfo();
if (fieldInfo == null) return;
@@ -803,6 +847,24 @@ public class TokenHoverInfo {
additionalInfo.add("Local variable");
}
public String getPackageName(TypeInfo type) {
if (type == null)
return null;
String fullName = type.getFullName();
if (fullName != null && !fullName.isEmpty()) {
return fullName;
} else {
String pkg = type.getPackageName();
String className = type.getSimpleName();
if (pkg != null && !pkg.isEmpty()) {
return pkg + "." + className;
} else {
return className;
}
}
}
private void extractParameterInfo(Token token) {
FieldInfo fieldInfo = token.getFieldInfo();
if (fieldInfo == null) return;