Browse Source

added dml format button

Nicolas Cannasse 8 months ago
parent
commit
e598f6374e
2 changed files with 19 additions and 2 deletions
  1. 10 1
      hide/comp/DomkitEditor.hx
  2. 9 1
      hide/view/Domkit.hx

+ 10 - 1
hide/comp/DomkitEditor.hx

@@ -104,6 +104,15 @@ class DomkitChecker extends ScriptEditor.ScriptChecker {
 		}
 	}
 
+	public function formatDML( code : String ) : String {
+		code = StringTools.trim(code);
+		code = [for( l in code.split("\n") ) StringTools.rtrim(l)].join("\n");
+		var parser = new domkit.MarkupParser();
+		parser.allowRawText = true;
+		var expr = parser.parse(code,"", 0);
+		return domkit.MarkupParser.markupToString(expr);
+	}
+
 	public function checkLess( cssCode : String ) {
 		var includes : Array<String> = config.get("less.includes", []);
 		var parser = new DomkitCssParser(this);
@@ -634,7 +643,7 @@ class DomkitChecker extends ScriptEditor.ScriptChecker {
 					checker.locals.set(n, prev);
 			}
 			default:
-				throw "assert";
+				domkitError("Invalid for block", e.pmin);
 			}
 		case Text(_):
 			// nothing

+ 9 - 1
hide/view/Domkit.hx

@@ -15,7 +15,10 @@ class Domkit extends FileView {
 			<div class="editors">
 				<div class="left panel">
 					<div class="editor dmlEditor top">
-						<span>DML</span>
+						<span>
+							DML
+							<input id="format" type="button" value="Format"/>
+						</span>
 					</div>
 					<div class="editor paramsEditor bot">
 						<span>Parameters</span>
@@ -81,6 +84,11 @@ class Domkit extends FileView {
 		defineGlobal("loadTile",[{ name : "path", t : "String" }],"h2d.Tile");
 
 
+		element.find("#format").click(function(_) {
+			var dml = dmlEditor.checker.formatDML(dmlEditor.code);
+			dmlEditor.setCode(dml);
+		});
+
 		// add a scene so the CssParser can resolve Tiles
 		var scene = element.find(".scene");
 		new hide.comp.Scene(config, scene, scene).onReady = function() check();