public PsiElement createFromTemplate( final Project project, final PsiDirectory directory, String fileName, final FileTemplate template, final String templateText, final Properties props) throws IncorrectOperationException { fileName = checkAppendExtension(fileName, template); if (FileTypeManager.getInstance().isFileIgnored(fileName)) { throw new IncorrectOperationException( "This filename is ignored (Settings | File Types | Ignore files and folders)"); } directory.checkCreateFile(fileName); PsiFile file = PsiFileFactory.getInstance(project).createFileFromText(fileName, templateText); if (template.isReformatCode()) { CodeStyleManager.getInstance(project).reformat(file); } file = (PsiFile) directory.add(file); return file; }
protected String checkAppendExtension(String fileName, final FileTemplate template) { final String suggestedFileNameEnd = "." + template.getExtension(); if (!fileName.endsWith(suggestedFileNameEnd)) { fileName += suggestedFileNameEnd; } return fileName; }