Browse Source

allow to references sub components of other domkit with root.sub name

Nicolas Cannasse 7 months ago
parent
commit
ba468ab80c
2 changed files with 19 additions and 1 deletions
  1. 8 1
      hide/comp/DomkitEditor.hx
  2. 11 0
      hrt/impl/DomkitViewer.hx

+ 8 - 1
hide/comp/DomkitEditor.hx

@@ -349,6 +349,13 @@ class DomkitChecker extends ScriptEditor.ScriptChecker {
 	}
 
 	function resolveComp( name : String ) : TypedComponent {
+
+		var rootComp = name;
+		var index = name.indexOf(".");
+		if( index >= 0 ) {
+			rootComp = name.substr(0, index);
+			name = name.substr(index+1);
+		}
 		var c = components.get(name);
 		if( c != null )
 			return c;
@@ -356,7 +363,7 @@ class DomkitChecker extends ScriptEditor.ScriptChecker {
 		var dirs : Array<String> = config.get("domkit.components");
 		if( dirs == null ) dirs = ["ui/comp"];
 		for( d in dirs ) {
-			var path = d+"/"+name+".domkit";
+			var path = d+"/"+rootComp.split("-").join("_")+".domkit";
 			var content = try sys.io.File.getContent(ide.getPath(path)) catch( e : Dynamic ) continue;
 			var data = hrt.impl.DomkitViewer.DomkitFile.parse(content);
 			var node = null, params = new Map();

+ 11 - 0
hrt/impl/DomkitViewer.hx

@@ -41,6 +41,16 @@ class DomkitViewer {
 		}
 	}
 
+	static function clearImportNames( m : domkit.MarkupParser.Markup ) {
+		switch( m.kind ) {
+		case Node(n) if( n != null && n.indexOf(".") >= 0 ): m.kind = Node(n.split(".").pop()); // remove root.name
+		default:
+		}
+		if( m.children != null )
+			for( c in m.children )
+				clearImportNames(c);
+	}
+
 	public static function loadSource( path : String, pos : Position, fields : Array<Field> ) {
 		var name = path.split("/").pop().split("_").join("-");
 		var dotPos = name.lastIndexOf(".");
@@ -104,6 +114,7 @@ class DomkitViewer {
 			}
 			if( hasDynParam )
 				removeDynParamsRec(m, dynParams);
+			clearImportNames(m);
 
 			fields.push({
 				name : "__CSS",