Java kaynaklarına bağlanan özel bir XML biçimim var. Basitlik açısından benim XML dosyası şu şekilde görünecektir varsayalım: XML dosyalarında Java öğelerinin bağlantılarının farkında olmasını sağlayın.
<root>
<java-class>my.fully.qualified.class.name</java-class>
</root>
Sonunda benim referanslar biraz daha karmaşık olacaktır. Tam olarak sınıf adını tam olarak içermeyecek ve doğru sınıfı çözmek için bir mantığa ihtiyacım olacak, ancak buradaki örneği mümkün olduğunca basit tutmak istiyorum.
Şimdi Strg + 'nin elemanın metnine tıklayın ve IntelliJet'in beni Spring-XML dosyalarında olduğu gibi .java dosyasına taşımasını istiyorum. IDEA Plugin Development FAQ'da "How do I add custom references to Java elements in XML files?" adlı bir bağlantı var ve bu tam olarak neye ihtiyacım var gibi geliyor. Ne yazık ki, birisinin az ya da çok küçük bir sorunla başa çıkabildiği, böyle bir şeyi hayata geçirdiği bir tartışmaya bağlanmaktadır. Yine de, muhtemelen com.intellij.psi.PsiReference arayüzünün bir uygulamasını yazmam gerektiğini anladım. "PsiReference" ve "IntelliJ" veya "IDEA" için maalesef, nasıl kullanılacağı konusunda herhangi bir öğretici getirmediler, ancak yararlı olan XmlValueReference sınıfını buldum. Yine de "XmlValueReference" için tekrar arama yapmak, sınıfı nasıl kullanacağına dair yararlı bir şey ortaya atmadı. En azından PSI Cookbook bana JavaPsiFacade.findClass()
kullanarak Java sınıfını bulabileceğimi söylüyor. Doğru kullanımı söyleyen herhangi bir öğretici, ipucu ve benzeri için teşekkür ederim.
Yukarıda bahsettiğim konu, en sonunda uygulamayı gerçekleştirdiğimde sağlayıcımı kaydetmek için registry.registerReferenceProvider(XmlTag.class, provider)
numaralı telefonu aramam gerektiğini, bunun hangi türden "kayıt" olduğunu ve nereden alacağımı bildirdiğinden bahseder?