3131import org .jetbrains .annotations .Nullable ;
3232
3333public class FileFromTemplateGenerator {
34- private final Project project ;
3534
36- public FileFromTemplateGenerator (final Project project ) {
35+ private final @ NotNull Project project ;
36+
37+ public FileFromTemplateGenerator (final @ NotNull Project project ) {
3738 this .project = project ;
3839 }
3940
@@ -56,10 +57,12 @@ public PsiFile generate(
5657 final Ref <PsiFile > fileRef = new Ref <>(null );
5758 final Ref <String > exceptionRef = new Ref <>(null );
5859 final String filePath = baseDir .getText ().concat ("/" ).concat (moduleFile .getFileName ());
60+
5961 CommandProcessor .getInstance ().executeCommand (project , () -> {
6062 final Runnable run = () -> {
6163 try {
62- PsiFile file = createFile (moduleFile , filePath , baseDir , attributes );
64+ final PsiFile file = createFile (moduleFile , filePath , baseDir , attributes );
65+
6366 if (file != null ) {
6467 fileRef .set (file );
6568 }
@@ -89,13 +92,19 @@ private PsiFile createFile(
8992 final String fileName = path .get (path .size () - 1 );
9093 final PsiFile fileTemplate = createFileFromTemplate (
9194 getTemplateManager (),
92- baseDir , moduleFile .getTemplate (), attributes , fileName , moduleFile .getLanguage ());
95+ baseDir ,
96+ moduleFile .getTemplate (),
97+ attributes ,
98+ fileName ,
99+ moduleFile .getLanguage ()
100+ );
101+
93102 if (fileTemplate == null ) {
94103 throw new IncorrectOperationException ("Template not found!" );
95104 } else {
96105 PsiElement file ;
97-
98106 file = baseDir .add (fileTemplate );
107+
99108 if (file instanceof PsiFile ) {
100109 return (PsiFile )file ;
101110 } else {
@@ -125,6 +134,7 @@ public PsiFile createFileFromTemplate(
125134 final @ NotNull Language language
126135 ) throws IOException {
127136 FileTemplate fileTemplate ;
137+
128138 try {
129139 fileTemplate = templateManager .getInternalTemplate (templateName );
130140 } catch (IllegalStateException e ) {
@@ -140,6 +150,7 @@ public PsiFile createFileFromTemplate(
140150 true ,
141151 false
142152 );
153+
143154 if (fileTemplate .isReformatCode ()) {
144155 CodeStyleManager .getInstance (project ).reformat (file );
145156 }
0 commit comments