package com.innovatian.idea.powershell.actions; import com.innovatian.idea.powershell.PsFileType; import com.innovatian.idea.powershell.lang.PsIcons; import com.intellij.ide.fileTemplates.FileTemplateGroupDescriptor; import com.intellij.ide.fileTemplates.FileTemplateGroupDescriptorFactory; import com.intellij.psi.PsiDirectory; import com.intellij.psi.PsiFile; import com.intellij.psi.PsiFileFactory; import com.intellij.util.IncorrectOperationException; public class PsTemplatesFactory implements FileTemplateGroupDescriptorFactory { private static int fileNumber = 0; private static final String FILE_NAME = "Untitled1.ps1"; private final FileTemplateGroupDescriptor templateGroup; public PsTemplatesFactory() { templateGroup = new FileTemplateGroupDescriptor("file.template.group.title.bash", PsIcons.FileIcon); templateGroup.addTemplate(getFileName()); } public static String getFileName() { return "Untitled" + (++fileNumber) + PsFileType.DEFAULT_EXTENSION; } public FileTemplateGroupDescriptor getFileTemplatesDescriptor() { return templateGroup; } public static PsiFile createFromTemplate(final PsiDirectory directory, final String name, String fileName) throws IncorrectOperationException { final String text = ""; final PsiFileFactory factory = PsiFileFactory.getInstance(directory.getProject()); final PsiFile file = factory.createFileFromText(fileName, PsFileType.PS_FILE_TYPE, text); return (PsiFile) directory.add(file); } }