Skip to content

Commit a3b91f7

Browse files
committed
create project with src root
1 parent dd676b2 commit a3b91f7

File tree

1 file changed

+50
-6
lines changed

1 file changed

+50
-6
lines changed

src/main/java/com/tang/intellij/lua/project/LuaModuleBuilder.java

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,22 +16,30 @@
1616

1717
package com.tang.intellij.lua.project;
1818

19-
import com.intellij.ide.util.projectWizard.ModuleBuilder;
20-
import com.intellij.ide.util.projectWizard.ModuleWizardStep;
21-
import com.intellij.ide.util.projectWizard.SdkSettingsStep;
22-
import com.intellij.ide.util.projectWizard.SettingsStep;
19+
import com.intellij.ide.util.projectWizard.*;
2320
import com.intellij.openapi.module.ModuleType;
2421
import com.intellij.openapi.options.ConfigurationException;
2522
import com.intellij.openapi.projectRoots.Sdk;
23+
import com.intellij.openapi.roots.ContentEntry;
2624
import com.intellij.openapi.roots.ModifiableRootModel;
25+
import com.intellij.openapi.util.Pair;
26+
import com.intellij.openapi.util.io.FileUtil;
27+
import com.intellij.openapi.vfs.LocalFileSystem;
28+
import com.intellij.openapi.vfs.VirtualFile;
29+
import org.jetbrains.annotations.NonNls;
2730
import org.jetbrains.annotations.NotNull;
2831

32+
import java.io.File;
33+
import java.util.ArrayList;
34+
import java.util.List;
35+
2936
/**
3037
* lua ModuleBuilder
3138
* Created by tangzx on 2016/12/24.
3239
*/
33-
public class LuaModuleBuilder extends ModuleBuilder {
40+
public class LuaModuleBuilder extends ModuleBuilder implements SourcePathsBuilder {
3441
private Sdk selectedSDK;
42+
private List<Pair<String, String>> sourcePaths;
3543

3644
@Override
3745
public void setupRootModel(ModifiableRootModel rootModel) throws ConfigurationException {
@@ -40,7 +48,22 @@ public void setupRootModel(ModifiableRootModel rootModel) throws ConfigurationEx
4048
else
4149
rootModel.inheritSdk();
4250

43-
doAddContentEntry(rootModel);
51+
ContentEntry contentEntry = doAddContentEntry(rootModel);
52+
if (contentEntry != null) {
53+
final List<Pair<String,String>> sourcePaths = getSourcePaths();
54+
55+
if (sourcePaths != null) {
56+
for (final Pair<String, String> sourcePath : sourcePaths) {
57+
String first = sourcePath.first;
58+
new File(first).mkdirs();
59+
final VirtualFile sourceRoot = LocalFileSystem.getInstance()
60+
.refreshAndFindFileByPath(FileUtil.toSystemIndependentName(first));
61+
if (sourceRoot != null) {
62+
contentEntry.addSourceFolder(sourceRoot, false, sourcePath.second);
63+
}
64+
}
65+
}
66+
}
4467
}
4568

4669
@Override
@@ -59,4 +82,25 @@ public void updateDataModel() {
5982
}
6083
};
6184
}
85+
86+
@Override
87+
public List<Pair<String, String>> getSourcePaths() throws ConfigurationException {
88+
if (sourcePaths == null) {
89+
sourcePaths = new ArrayList<>();
90+
@NonNls final String path = getContentEntryPath() + File.separator + "src";
91+
new File(path).mkdirs();
92+
sourcePaths.add(Pair.create(path, ""));
93+
}
94+
return sourcePaths;
95+
}
96+
97+
@Override
98+
public void setSourcePaths(List<Pair<String, String>> list) {
99+
this.sourcePaths = list;
100+
}
101+
102+
@Override
103+
public void addSourcePath(Pair<String, String> pair) {
104+
sourcePaths.add(pair);
105+
}
62106
}

0 commit comments

Comments
 (0)