[英]IntelliJ IDEA plugin: associating a source psi file with a icon in the package structure
我正在構建一個創意插件,該插件需要創建擴展名為“ .java”的源文件。 我已經創建了一個文件模板,並在JavaCreateTemplateInPackageAction<PsiElement>
類的實現中使用了它。 在上述類的構造函數中,我用一個圖標調用了超類的構造函數(我之前使用IconLoader.getIcon
加載了IconLoader.getIcon
)
protected JavaCreateTemplateInPackageAction(String text, String description, Icon icon, boolean inSourceOnly) {
super(text, description, icon, inSourceOnly ? JavaModuleSourceRootTypes.SOURCES : null);
}
最后,我將實現作為操作注冊在plugin.xml中。 該代碼起到了用給定模板創建源文件的作用,但是問題出在包結構中,它沒有顯示給定的自定義圖標,而是顯示了Java類的默認圖標(字母'c')。 但是,右鍵單擊源包以創建源文件時,給定的圖標將出現在新菜單中。 有人可以幫我嗎? 謝謝。
PS:我嘗試更改文件擴展名而不是.java,但它仍然沒有顯示預期的圖標,而是顯示了Java的通用圖標(字母'j'圖標)
您在JavaCreateTemplateInPackageAction
提供的圖標僅用於該操作。 可以使用IconProvider
覆蓋項目視圖中的圖標,您可以使用plugin.xml
的<iconProvider>
標記進行注冊:
<iconProvider implementation="org.intellij.plugins.ceylon.ide.presentation.CeylonIconProvider"/>
Java代碼:
public class CeylonIconProvider extends IconProvider {
@Nullable
@Override
public Icon getIcon(@NotNull PsiElement element, int flags) {
if (element instanceof CeylonFile) {
return ...
}
if (element instanceof CeyLightClass) {
...
}
return null;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.