/// <summary> /// Execute the macro using the source saved in macro /// </summary> /// <param name="async">Bool identifying if the macro should be execute asynchronously or not (synchronous)</param> /// <param name="runtime">Runtime tag identifying which execution engine to use, if empty, a default will be chosen</param> public async Task <bool> TryExecuteFile(FileDeclaration d, bool async, string runtime = "") { d.Save(); if (string.IsNullOrEmpty(runtime)) { runtime = GetDefaultRuntime(); } IExecutionEngine engine = GetExecutionEngine(runtime); if (engine == null) { engine = GetExecutionEngine(GetDefaultRuntime()); } if (engine == null) { return(false); } return(await engine.ExecuteMacro(d.Content, async, d.Info != null?d.Info.Directory.FullName : "")); }