本文整理匯總了Java中com.intellij.psi.impl.source.jsp.jspXml.JspTag類的典型用法代碼示例。如果您正苦於以下問題:Java JspTag類的具體用法?Java JspTag怎麽用?Java JspTag使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
JspTag類屬於com.intellij.psi.impl.source.jsp.jspXml包,在下文中一共展示了JspTag類的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: registerReferenceProviders
import com.intellij.psi.impl.source.jsp.jspXml.JspTag; //導入依賴的package包/類
@Override
public void registerReferenceProviders(PsiReferenceRegistrar registrar)
{
registrar.registerReferenceProvider(XmlPatterns.xmlAttributeValue(), new PsiReferenceProvider()
{
@NotNull
@Override
public PsiReference[] getReferencesByElement(@NotNull PsiElement element, @NotNull ProcessingContext context)
{
XmlAttribute xmlAttribute = PsiTreeUtil.getParentOfType(element, XmlAttribute.class);
if(xmlAttribute == null)
{
return PsiReference.EMPTY_ARRAY;
}
JspTag jspTag = PsiTreeUtil.getParentOfType(element, JspTag.class);
if(jspTag == null)
{
return PsiReference.EMPTY_ARRAY;
}
if("include".equals(jspTag.getName()) && "file".equals(xmlAttribute.getName()))
{
FileReferenceSet set = new FileReferenceSet(element);
set.addCustomization(FileReferenceSet.DEFAULT_PATH_EVALUATOR_OPTION, file ->
{
Module module = ModuleUtilCore.findModuleForPsiElement(file);
if(module == null)
{
return Collections.emptyList();
}
ContentFolder[] contentFolders = ModuleRootManager.getInstance(module).getContentFolders(ContentFolderScopes.of(WebResourcesFolderTypeProvider.getInstance()));
PsiManager psiManager = PsiManager.getInstance(element.getProject());
return Arrays.stream(contentFolders).map(contentFolder -> psiManager.findDirectory(contentFolder.getFile())).filter(Objects::nonNull).collect(Collectors.toList());
});
return set.getAllReferences();
}
return PsiReference.EMPTY_ARRAY;
}
});
}