Skip to content

Commit 721fd03

Browse files
author
Jinzhou Zhang
committed
work with 2020.1
1 parent 33c4b1f commit 721fd03

File tree

10 files changed

+39
-55
lines changed

10 files changed

+39
-55
lines changed

CodeGenerator.iml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<module type="PLUGIN_MODULE" version="4">
33
<component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/resources/META-INF/plugin.xml" />
4-
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="true">
4+
<component name="NewModuleRootManager" inherit-compiler-output="true">
55
<exclude-output />
66
<content url="file://$MODULE_DIR$">
77
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />

resources/META-INF/plugin.xml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
<idea-plugin>
22
<id>me.lotabout.codegenerator</id>
33
<name>Code Generator</name>
4-
<version>1.3.3</version>
4+
<version>1.4.0</version>
55
<vendor email="lotabout@gmail.com" url="https://lotabout.me">Jinzhou Zhang</vendor>
66

77
<description><![CDATA[
8+
<p>Please backup your configurations before update!!!</p>
9+
810
<p>This plugin allows user to create customized velocity templates like <code>toString</code> or <code>builder</code></p>
911
<p>As we know, Intellij had provided useful code generators such as constructors, getter/setters, equals, hashCode,
1012
overrides and delegates, etc. And Intellij allows us to apply customized velocity templates for each generator.
@@ -20,6 +22,7 @@
2022

2123
<change-notes><![CDATA[
2224
<ul>
25+
<li>version 1.4.0 <p>compatible with 2020.1</p></li>
2326
<li>version 1.3.3 <p>fix: pipeline settings could not be saved.</p></li>
2427
<li>version 1.3.2 <p>support idea 2016.3 and after</p></li>
2528
<li>version 1.3.1 <p>move Code Generator Menu to Generate menu</p></li>
@@ -32,7 +35,7 @@
3235
</change-notes>
3336

3437
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/build_number_ranges.html for description -->
35-
<idea-version since-build="163.0"/>
38+
<idea-version since-build="201.0"/>
3639

3740
<!-- please see http://www.jetbrains.org/intellij/sdk/docs/basics/getting_started/plugin_compatibility.html
3841
on how to target different products -->
@@ -63,4 +66,4 @@
6366
</component>
6467
</application-components>
6568

66-
</idea-plugin>
69+
</idea-plugin>

resources/template/getters-and-setters.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<codeTemplateList>
33
<templates>
44
<templates version="1.3">
5-
<id>1f752c8b-3601-42d1-a9e2-43c2e714f822</id>
5+
<id>58a3b5d1-3621-43b8-9c17-e725ceaedbdd</id>
66
<name>Getter and Setter</name>
77
<fileNamePattern>.*\.java$</fileNamePattern>
88
<type>body</type>
@@ -26,6 +26,7 @@ return $field.name;
2626
#if($field.modifierStatic)
2727
static ##
2828
#end
29+
#set($paramName = $helper.getParamName($field.element, $project))
2930
void ${setter}($field.type $paramName) {
3031
#if ($field.name == $paramName)
3132
#if (!$field.modifierStatic)
@@ -79,6 +80,7 @@ $availableMembers.add($field)
7980
<whenDuplicatesOption>ASK</whenDuplicatesOption>
8081
<jumpToMethod>true</jumpToMethod>
8182
<classNameVm>$class0.name</classNameVm>
83+
<alwaysPromptForPackage>false</alwaysPromptForPackage>
8284
</templates>
8385
</templates>
8486
</codeTemplateList>

src/me/lotabout/codegenerator/CodeGeneratorSettings.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import java.util.List;
1616
import java.util.Optional;
1717

18-
@State(name = "CodeGeneratorSettings", storages = {@Storage(id = "app-default", file = "$APP_CONFIG$/CodeGenerator-settings.xml")})
18+
@State(name = "CodeGeneratorSettings", storages = {@Storage("$APP_CONFIG$/CodeGenerator-settings.xml")})
1919
public class CodeGeneratorSettings implements PersistentStateComponent<CodeGeneratorSettings> {
2020

2121
private static final Logger LOGGER = Logger.getInstance(CodeGeneratorSettings.class);

src/me/lotabout/codegenerator/config/CodeTemplate.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package me.lotabout.codegenerator.config;
22

33
import com.intellij.openapi.util.io.FileUtil;
4-
import com.intellij.util.xmlb.annotations.AbstractCollection;
54

5+
import com.intellij.util.xmlb.annotations.AbstractCollection;
66
import org.apache.commons.lang.builder.EqualsBuilder;
77
import org.apache.commons.lang.builder.HashCodeBuilder;
88
import org.jetbrains.java.generate.config.DuplicationPolicy;
@@ -122,4 +122,6 @@ public boolean isValid() {
122122
.append(alwaysPromptForPackage)
123123
.toHashCode();
124124
}
125+
126+
125127
}

src/me/lotabout/codegenerator/ui/CodeGeneratorConfig.form

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,9 +64,8 @@
6464
<properties>
6565
<borderPainted value="false"/>
6666
<contentAreaFilled value="true"/>
67-
<icon value="toolbarDecorator/add.png"/>
68-
<opaque value="true"/>
69-
<text value=""/>
67+
<opaque value="false"/>
68+
<text value="Add"/>
7069
<toolTipText value="Add a new template"/>
7170
<visible value="true"/>
7271
</properties>
@@ -77,9 +76,9 @@
7776
<borderPainted value="false"/>
7877
<enabled value="false"/>
7978
<hideActionText value="false"/>
80-
<icon value="toolbarDecorator/remove.png"/>
8179
<opaque value="false"/>
82-
<text value=""/>
80+
<text value="Remove"/>
81+
<toolTipText value="Remove template"/>
8382
</properties>
8483
</component>
8584
<hspacer id="9474e">

src/me/lotabout/codegenerator/ui/CodeGeneratorConfig.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@
55
import com.intellij.openapi.fileChooser.FileChooserDescriptorFactory;
66
import com.intellij.openapi.fileEditor.FileDocumentManager;
77
import com.intellij.openapi.ui.Messages;
8+
import java.util.concurrent.CompletableFuture;
89
import me.lotabout.codegenerator.CodeGeneratorSettings;
910
import me.lotabout.codegenerator.config.CodeTemplate;
1011
import me.lotabout.codegenerator.config.CodeTemplateList;
11-
import org.jetbrains.concurrency.AsyncPromise;
12-
import org.jetbrains.concurrency.Promise;
1312

1413
import javax.swing.*;
1514
import java.awt.event.ActionEvent;
@@ -108,7 +107,7 @@ public CodeGeneratorConfig(CodeGeneratorSettings settings) {
108107
});
109108

110109
importButton.addActionListener(e -> {
111-
readFromFile().done(xml -> {
110+
readFromFile().thenAccept(xml -> {
112111
try {
113112
List<CodeTemplate> templates = CodeTemplateList.fromXML(xml);
114113
List<CodeTemplate> currentTemplates = getTabTemplates();
@@ -160,13 +159,11 @@ private void saveToFile(String content) {
160159
});
161160
}
162161

163-
private Promise<String> readFromFile() {
162+
private CompletableFuture<String> readFromFile() {
164163
final FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFileDescriptor("xml");
165164
descriptor.setTitle("Choose File to Import");
166-
final AsyncPromise<String> result = new AsyncPromise<>();
167-
FileChooser.chooseFile(descriptor, null, mainPane, null, virtualFile -> {
168-
result.setResult(FileDocumentManager.getInstance().getDocument(virtualFile).getText());
169-
});
165+
final CompletableFuture<String> result = new CompletableFuture<>();
166+
FileChooser.chooseFile(descriptor, null, mainPane, null, virtualFile -> result.complete(FileDocumentManager.getInstance().getDocument(virtualFile).getText()));
170167
return result;
171168
}
172169

src/me/lotabout/codegenerator/ui/CodeGeneratorConfigurable.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,10 @@ public String getHelpTopic() {
4343
}
4444

4545
@Override public boolean isModified() {
46+
if (config == null) {
47+
return false;
48+
}
49+
4650
List<CodeTemplate> templates = config.getTabTemplates();
4751
if (settings.getCodeTemplates().size() != templates.size()) {
4852
return true;

src/me/lotabout/codegenerator/util/ClassEntry.java

Lines changed: 12 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package me.lotabout.codegenerator.util;
22

3-
import com.intellij.psi.PsiClass;
4-
import com.intellij.psi.PsiClassOwner;
5-
import com.intellij.psi.PsiFile;
6-
import com.intellij.psi.PsiJavaFile;
3+
import com.intellij.psi.*;
4+
import java.util.Arrays;
5+
import java.util.stream.Collectors;
76
import org.jetbrains.java.generate.element.ClassElement;
87

98
import java.util.ArrayList;
@@ -19,8 +18,6 @@ public class ClassEntry {
1918
private List<FieldEntry> allFields = new ArrayList<>();
2019
private List<MethodEntry> methods = new ArrayList<>();
2120
private List<MethodEntry> allMethods = new ArrayList<>();
22-
private List<ClassEntry> innerClasses = new ArrayList<>();
23-
private List<ClassEntry> allInnerClasses = new ArrayList<>();
2421
private List<MemberEntry> members = new ArrayList<>();
2522
private List<MemberEntry> allMembers = new ArrayList<>();
2623
private List<String> typeParamList;
@@ -36,8 +33,6 @@ public static ClassEntry of(PsiClass clazz, ClassElement element) {
3633
entry.addAllFields(GenerationUtil.getAllFields(clazz));
3734
entry.addMethod(GenerationUtil.getMethods(clazz));
3835
entry.addAllMethods(GenerationUtil.getAllMethods(clazz));
39-
entry.setInnerClasses(GenerationUtil.getInnerClasses(clazz));
40-
entry.setAllInnerClasses(GenerationUtil.getAllInnerClasses(clazz));
4136
entry.setTypeParamList(GenerationUtil.getClassTypeParameters(clazz));
4237
return entry;
4338
}
@@ -74,10 +69,6 @@ public void setImportList(List<String> importList) {
7469
this.importList = importList;
7570
}
7671

77-
public List<FieldEntry> getFields() {
78-
return fields;
79-
}
80-
8172
public void addFields(List<FieldEntry> fields) {
8273
this.fields.addAll(fields);
8374
this.members.addAll(fields);
@@ -111,7 +102,9 @@ public void addAllMethods(List<MethodEntry> allMethods) {
111102
}
112103

113104
public List<ClassEntry> getInnerClasses() {
114-
return innerClasses;
105+
return Arrays.stream(raw.getInnerClasses())
106+
.map(EntryFactory::of)
107+
.collect(Collectors.toList());
115108
}
116109

117110
public List<MemberEntry> getMembers() {
@@ -122,16 +115,11 @@ public List<MemberEntry> getAllMembers() {
122115
return allMembers;
123116
}
124117

125-
public void setInnerClasses(List<ClassEntry> innerClasses) {
126-
this.innerClasses = innerClasses;
127-
}
128-
129118
public List<ClassEntry> getAllInnerClasses() {
130-
return allInnerClasses;
131-
}
132-
133-
public void setAllInnerClasses(List<ClassEntry> allInnerClasses) {
134-
this.allInnerClasses = allInnerClasses;
119+
// lazily turn all inner classes into class entry
120+
return Arrays.stream(raw.getAllInnerClasses())
121+
.map(EntryFactory::of)
122+
.collect(Collectors.toList());
135123
}
136124

137125
public List<String> getTypeParamList() {
@@ -249,11 +237,11 @@ public String toString() {
249237
", allFields=" + allFields +
250238
", methods=" + methods +
251239
", allMethods=" + allMethods +
252-
", innerClasses=" + innerClasses +
253-
", allInnerClasses=" + allInnerClasses +
254240
", members=" + members +
255241
", allMembers=" + allMembers +
256242
", typeParamList=" + typeParamList +
257243
'}';
258244
}
245+
246+
259247
}

src/me/lotabout/codegenerator/util/GenerationUtil.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -199,17 +199,6 @@ static List<MethodEntry> getAllMethods(PsiClass clazz) {
199199
.collect(Collectors.toList());
200200
}
201201

202-
static List<ClassEntry> getInnerClasses(PsiClass clazz) {
203-
return Arrays.stream(clazz.getInnerClasses())
204-
.map(EntryFactory::of)
205-
.collect(Collectors.toList());
206-
}
207-
static List<ClassEntry> getAllInnerClasses(PsiClass clazz) {
208-
return Arrays.stream(clazz.getAllInnerClasses())
209-
.map(EntryFactory::of)
210-
.collect(Collectors.toList());
211-
}
212-
213202
static List<String> getImportList(PsiJavaFile javaFile) {
214203
PsiImportList importList = javaFile.getImportList();
215204
if (importList == null) {

0 commit comments

Comments
 (0)