Skip to content

Instantly share code, notes, and snippets.

@rvillars
Last active August 29, 2015 14:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rvillars/921880f15d43721d0d6c to your computer and use it in GitHub Desktop.
Save rvillars/921880f15d43721d0d6c to your computer and use it in GitHub Desktop.
Intellij Plugin Code Snippets
finalAsyncResult<DataContext>dataContext=DataManager.getInstance().getDataContextFromFocus();
finalProjectproject=DataKeys.PROJECT.getData(dataContext.getResult());
PsiClassaggregateClass=JavaPsiFacade.getInstance(project).findClass("my.full.qualified.Class",GlobalSearchScope.allScope(project));
PsiFilepsiFile=PsiManager.getInstance(project).findFile((VirtualFile)o);
if(!(psiFileinstanceofPsiJavaFile)){
returnfalse;
}
PsiJavaFilepsiJavaFile=(PsiJavaFile)psiFile;
PsiClass[]psiClasses=psiJavaFile.getClasses();
PsiClasspsiClass=psiClasses[0];
private List<PsiClass> getSuperClasses(PsiClass psiClass) {
final ArrayList<PsiClass> superClasses = new ArrayList<PsiClass>();
while (!"java.lang.Object".equals(psiClass.getQualifiedName())) {
final PsiClass psiClass1 = psiClass;
final PsiClass[] superTypes = psiClass1.getSupers();
PsiClass superType = null;
for (int i = 0; i < superTypes.length; i++) {
final PsiClass type = superTypes[i];
if (!type.isInterface()) {
superType = type;
break;
}
}
if (superType == null) break;
if (superClasses.contains(superType)) break;
superClasses.add(superType);
psiClass = superType;
}
return superClasses;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment