JavaリソースにリンクするカスタムXML形式があります。簡単にするために、私のXMLファイルは次のようになっていると仮定しましょう。
<root>
<java-class>my.fully.qualified.class.name</java-class>
</root>
最終的に、私の参照はやや複雑になります。完全修飾クラス名が直接含まれることはなく、正しいクラスを解決するためのロジックが必要になりますが、ここでは例をできるだけ単純にしておきたいと思います。
ここで、要素のテキストをStrg +クリックして、Spring-XMLファイルで可能であるのと同じように、IntelliJで.javaファイルに移動できるようにします。IDEAプラグイン開発FAQには、「 XMLファイルのJava要素へのカスタム参照を追加するにはどうすればよいですか? 」というリンクがあります。これはまさに私が必要としているもののように聞こえます。残念ながら、それは誰かが多かれ少なかれこのような何かを実装し、いくつかの小さな問題を抱えているという議論にリンクしています。それにもかかわらず、私はおそらくインターフェースcom.intellij.psi.PsiReferenceの実装を書く必要があることを理解しました。「PsiReference」と「IntelliJ」または「IDEA」をグーグルで検索しても、残念ながらその使用方法に関するチュートリアルは表示されませんでしたが、クラスXmlValueReferenceが見つかりました。便利そうですね。さらに、「XmlValueReference」をグーグルで検索しても、クラスの使用方法に役立つものは何も見つかりませんでした。少なくともPSIクックブックには、を使用してJavaクラスを見つけることができると書かれていJavaPsiFacade.findClass()
ます。正しい使い方を教えてくれるチュートリアルやヒントなどをいただければ幸いです。
上記のリンクされたディスカッションでは、registry.registerReferenceProvider(XmlTag.class, provider)
最終的にプロバイダーを実装できたら、プロバイダーを登録するために電話をかける必要があると述べていますが、どのタイプの「レジストリ」で、どこから入手できますか?