3
自分のコードを変更せずに、自分のタイプのビルディングマクロをプロジェクトのすべてのクラスに適用できますか?Haxe:@を追加する:プロジェクト内のすべてのクラスにメタデータを作成
私はHaxeマクロに基づいてデバッガを実装しようとしています。基本的には、クラスのすべての関数のすべての式の間に関数への呼び出しを挿入します。現在私はインターフェイスIDebuggable
を持っており、そのインターフェイスを実装するクラスのコードだけがブレークポイントで停止することができます。
standartクラスまたはライブラリクラスとプロジェクトクラスを区別することはできますか?現在、このコードを追加しましたが、これは醜いです: \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
どうすればそれを使うことができないのでしょうか。 1つのプレフィックスだけをフィルタリングすることができます。しかし、ほとんどのプロジェクトにはさまざまなパッケージがあります。私はファイルパスに基づいてフィルタを適用し、Context.CurrentPosからファイルパスを取得することは可能だと思いますが、このためにはプロジェクトのソースパスが必要です。 – romamik