3
是否可以將我的類型構建宏應用於項目中的所有類而不修改其代碼?Haxe:將元數據添加到項目中的所有類
我想實現一個基於Haxe宏的調試器:基本上我在每個類的函數中的每個表達式之間向我的函數注入調用。目前我有一個接口IDebuggable
,只有實現該接口的類中的代碼才能在斷點處停止。
是否可以將我的類型構建宏應用於項目中的所有類而不修改其代碼?Haxe:將元數據添加到項目中的所有類
我想實現一個基於Haxe宏的調試器:基本上我在每個類的函數中的每個表達式之間向我的函數注入調用。目前我有一個接口IDebuggable
,只有實現該接口的類中的代碼才能在斷點處停止。
您可以使用haxe.macro.Compiler.addGlobalMetadata()
。這可以從initialization macro或命令行完成:
--macro addGlobalMetadata('', '@:build(Build.build())')
是否可以區分標準或庫類和項目類?目前我已經添加了這段代碼,但這很難看: \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
您可以使用'pathFilter'參數。 – Gama11
看不到我該如何使用它。它允許只過濾一個前綴。但是大多數項目都有很多不同的軟件包。我認爲可以根據文件路徑進行過濾,並從Context.CurrentPos獲取文件路徑,但爲此我需要項目源路徑。 – romamik