2016-06-28 31 views
3

是否可以将我的类型构建宏应用于项目中的所有类而不修改其代码?Haxe:将元数据添加到项目中的所有类

我想实现一个基于Haxe宏的调试器:基本上我在每个类的函数中的每个表达式之间向我的函数注入调用。目前我有一个接口IDebuggable,只有实现该接口的类中的代码才能在断点处停止。

回答

6

您可以使用haxe.macro.Compiler.addGlobalMetadata()。这可以从initialization macro或命令行完成:

--macro addGlobalMetadata('', '@:build(Build.build())') 
+0

是否可以区分标准或库类和项目类?目前我已经添加了这段代码,但这很难看: \t \t \t \t var module = Context.getLocalModule(); \t \t如果(模块== 'DebugRuntime' \t \t \t || module.indexOf( 'haXe的')== 0 \t \t \t || module.indexOf( '闪光灯')== 0) \t \t \t返回null; – romamik

+0

您可以使用'pathFilter'参数。 – Gama11

+0

看不到我该如何使用它。它允许只过滤一个前缀。但是大多数项目都有很多不同的软件包。我认为可以根据文件路径进行过滤,并从Context.CurrentPos获取文件路径,但为此我需要项目源路径。 – romamik

相关问题