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 490743a97..d0c0730b1 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 @@ -895,8 +895,8 @@ public class ScriptDocument { // Methods markMethodDeclarations(marks); - // Numbers - addPatternMarks(marks, NUMBER_PATTERN, TokenType.NUMBER); + // Numbers and othe + addPatternMarks(marks, NUMBER_PATTERN, TokenType.LITERAL); // Method calls (parse before variables so we can attach context) markMethodCalls(marks); @@ -1654,15 +1654,6 @@ public class ScriptDocument { } return TypeInfo.fromPrimitive("int"); } - if (expr.matches("-?\\d+\\.\\d*[fF]?")) { - if (expr.toLowerCase().endsWith("f")) { - return TypeInfo.fromPrimitive("float"); - } - return TypeInfo.fromPrimitive("double"); - } - if (expr.matches("-?\\d+\\.\\d*[dD]")) { - return TypeInfo.fromPrimitive("double"); - } // "this" keyword if (expr.equals("this")) { diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptTextContainer.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptTextContainer.java index 5c98ca2f5..9e3f83b96 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptTextContainer.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/ScriptTextContainer.java @@ -136,7 +136,7 @@ public class ScriptTextContainer extends JavaTextContainer { if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.TYPE_DECL) return JavaTextContainer.TokenType.TYPE_DECL; if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.METHOD_DECL) return JavaTextContainer.TokenType.METHOD_DECARE; if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.METHOD_CALL) return JavaTextContainer.TokenType.METHOD_CALL; - if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.NUMBER) return JavaTextContainer.TokenType.NUMBER; + if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.LITERAL) return JavaTextContainer.TokenType.NUMBER; if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.GLOBAL_FIELD) return JavaTextContainer.TokenType.GLOBAL_FIELD; if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.LOCAL_FIELD) return JavaTextContainer.TokenType.LOCAL_FIELD; if (type == noppes.npcs.client.gui.util.script.interpreter.TokenType.PARAMETER) return JavaTextContainer.TokenType.PARAMETER; diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/Token.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/Token.java index cbbb1645e..06aa821a7 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/Token.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/Token.java @@ -1,7 +1,5 @@ package noppes.npcs.client.gui.util.script.interpreter; -import noppes.npcs.client.ClientProxy; - /** * Represents a single token in the source code with its type and metadata. * Tokens are the atomic units of the syntax highlighting system. @@ -62,8 +60,8 @@ public class Token { return new Token(text, start, end, TokenType.STRING); } - public static Token number(String text, int start, int end) { - return new Token(text, start, end, TokenType.NUMBER); + public static Token literal(String text, int start, int end) { + return new Token(text, start, end, TokenType.LITERAL); } public static Token typeReference(String text, int start, int end, TypeInfo info) { diff --git a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TokenType.java b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TokenType.java index 24c8c059c..acbace01d 100644 --- a/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TokenType.java +++ b/src/main/java/noppes/npcs/client/gui/util/script/interpreter/TokenType.java @@ -36,7 +36,7 @@ public enum TokenType { LOCAL_FIELD(0xFFFF55, 25), // local variables (yellow) // Literals - NUMBER(0x777777, 40), // numeric literals + LITERAL(0x777777, 40), // numeric and boolean literals // Default VARIABLE(0xFFFFFF, 30), // generic variables @@ -65,7 +65,7 @@ public enum TokenType { public char toColorCode() { switch (this) { case COMMENT: - case NUMBER: + case LITERAL: case UNUSED_IMPORT: return '7'; // gray case STRING: 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 2f24db15c..9e5e79071 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 @@ -125,10 +125,13 @@ public class TokenHoverInfo { info.extractUndefinedInfo(token); break; + case LITERAL: + if (info.hasErrors()) + return info; + return null; case KEYWORD: case MODIFIER: case STRING: - case NUMBER: case COMMENT: // These don't need hover info typically return null;