2
0
Эх сурвалжийг харах

added evalTo for scripts checker config + script document names are always dot paths

Nicolas Cannasse 6 жил өмнө
parent
commit
112d5951b6

+ 14 - 1
hide/comp/ScriptEditor.hx

@@ -4,6 +4,7 @@ typedef GlobalsDef = haxe.DynamicAccess<{
 	var globals : haxe.DynamicAccess<String>;
 	var context : String;
 	var events : String;
+	var evalTo : String;
 	var cdbEnums : Array<String>;
 }>;
 
@@ -16,6 +17,7 @@ class ScriptChecker {
 	var config : hide.Config;
 	var documentName : String;
 	var constants : Map<String,Dynamic>;
+	var evalTo : String;
 	public var checker : hscript.Checker;
 
 	public function new( config : hide.Config, documentName : String, ?constants : Map<String,Dynamic> ) {
@@ -114,6 +116,9 @@ class ScriptChecker {
 					}
 				}
 			}
+
+			if( api.evalTo != null )
+				this.evalTo = api.evalTo;
 		}
 	}
 
@@ -170,7 +175,15 @@ class ScriptChecker {
 			var expr = parser.parseString(script, "");
 			if( checkTypes ) {
 				checker.allowAsync = true;
-				checker.check(expr);
+				var et = checker.check(expr);
+				if( evalTo != null ) {
+					var t = checker.types.resolve(evalTo);
+					if( t == null ) {
+						error('EvalTo type $evalTo not found');
+						return null;
+					}
+					checker.unify(et, t, expr);
+				}
 			}
 			return null;
 		} catch( e : hscript.Expr.Error ) {

+ 1 - 1
hide/comp/cdb/Cell.hx

@@ -202,7 +202,7 @@ class Cell extends Component {
 	}
 
 	public function getDocumentName() {
-		var name = table.sheet.name;
+		var name = table.sheet.name.split("@").join(".");
 		if( table.sheet.props.hasGroup ) {
 			var g = getGroup();
 			if( g != null ) name += "[group="+g+"]";