31
31
import org .jetbrains .annotations .Nullable ;
32
32
33
33
public class FileFromTemplateGenerator {
34
- private final Project project ;
35
34
36
- public FileFromTemplateGenerator (final Project project ) {
35
+ private final @ NotNull Project project ;
36
+
37
+ public FileFromTemplateGenerator (final @ NotNull Project project ) {
37
38
this .project = project ;
38
39
}
39
40
@@ -56,10 +57,12 @@ public PsiFile generate(
56
57
final Ref <PsiFile > fileRef = new Ref <>(null );
57
58
final Ref <String > exceptionRef = new Ref <>(null );
58
59
final String filePath = baseDir .getText ().concat ("/" ).concat (moduleFile .getFileName ());
60
+
59
61
CommandProcessor .getInstance ().executeCommand (project , () -> {
60
62
final Runnable run = () -> {
61
63
try {
62
- PsiFile file = createFile (moduleFile , filePath , baseDir , attributes );
64
+ final PsiFile file = createFile (moduleFile , filePath , baseDir , attributes );
65
+
63
66
if (file != null ) {
64
67
fileRef .set (file );
65
68
}
@@ -89,13 +92,19 @@ private PsiFile createFile(
89
92
final String fileName = path .get (path .size () - 1 );
90
93
final PsiFile fileTemplate = createFileFromTemplate (
91
94
getTemplateManager (),
92
- baseDir , moduleFile .getTemplate (), attributes , fileName , moduleFile .getLanguage ());
95
+ baseDir ,
96
+ moduleFile .getTemplate (),
97
+ attributes ,
98
+ fileName ,
99
+ moduleFile .getLanguage ()
100
+ );
101
+
93
102
if (fileTemplate == null ) {
94
103
throw new IncorrectOperationException ("Template not found!" );
95
104
} else {
96
105
PsiElement file ;
97
-
98
106
file = baseDir .add (fileTemplate );
107
+
99
108
if (file instanceof PsiFile ) {
100
109
return (PsiFile )file ;
101
110
} else {
@@ -125,6 +134,7 @@ public PsiFile createFileFromTemplate(
125
134
final @ NotNull Language language
126
135
) throws IOException {
127
136
FileTemplate fileTemplate ;
137
+
128
138
try {
129
139
fileTemplate = templateManager .getInternalTemplate (templateName );
130
140
} catch (IllegalStateException e ) {
@@ -140,6 +150,7 @@ public PsiFile createFileFromTemplate(
140
150
true ,
141
151
false
142
152
);
153
+
143
154
if (fileTemplate .isReformatCode ()) {
144
155
CodeStyleManager .getInstance (project ).reformat (file );
145
156
}
0 commit comments