diff --git a/build.gradle b/build.gradle
index 8eb27ae..c30f8e0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,75 +6,41 @@ buildscript {
maven { url 'https://dl.bintray.com/jetbrains/intellij-plugin-service' }
maven { url 'https://dl.bintray.com/jetbrains/intellij-third-party-dependencies/' }
}
- // https://github.com/JetBrains/gradle-intellij-plugin/ 关注开发插件版本
- dependencies {
- classpath "org.jetbrains.intellij.plugins:gradle-intellij-plugin:0.6.5"
- }
}
-//2.1 插件配置
-// 这两个插件是必备
plugins {
id 'java'
- id 'org.jetbrains.intellij' version '0.6.5'
+ id 'org.jetbrains.intellij' version '0.7.3'
}
-
group 'com.sjhy'
-version '1.2.5-java.RELEASE'
+version '1.2.6.RELEASE'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
+compileJava.options.encoding = "UTF-8"
+compileTestJava.options.encoding = "UTF-8"
repositories {
- jcenter()
mavenCentral()
}
-// http://www.jetbrains.org/intellij/sdk/docs/tutorials/build_system/prerequisites.html
-// https://plugins.jetbrains.com/docs/intellij/gradle-guide.html 官网gradle构建教程
-
-intellij {
-// 插件名称
- pluginName 'EasyCode'
- // 沙箱目录位置,用于保存IDEA的设置,默认在build文件下面,防止clean,放在根目录下。
- sandboxDirectory = "${rootProject.rootDir}/idea-sandbox"
- // 开发环境运行时使用的版本
- version '2020.1.2'
- // 社区版
-// type 'IC'
- // 企业版
- type 'IU'
- // 各种IDEA版本去这里找
- // https://www.jetbrains.com/intellij-repository/releases
- // 依赖的插件
- plugins = ['java', 'DatabaseTools']
- //Disables updating since-build attribute in plugin.xml
- updateSinceUntilBuild false
- downloadSources = true
-}
-
dependencies {
- // jackson工具
compile 'com.fasterxml.jackson.core:jackson-databind:2.9.6'
- // guava工具
-// compile 'com.google.guava:guava:29.0-jre'
- // velocity支持
-// compile 'org.apache.velocity:velocity:1.7'
- // groovy支持
-// compile 'org.codehaus.groovy:groovy:3.0.2'
- // beetl支持
-// compile 'com.ibeetl:beetl:3.3.0.RELEASE'
- // freemarker支持
-// compile 'org.freemarker:freemarker:2.3.30'
- // lombok 支持
- compileOnly 'org.projectlombok:lombok:1.18.2'
- annotationProcessor 'org.projectlombok:lombok:1.18.2'
- testAnnotationProcessor 'org.projectlombok:lombok:1.18.2'
- // 测试用例
testCompile 'junit:junit:4.12'
+ // lombok
+ compileOnly 'org.projectlombok:lombok:1.18.12'
+ annotationProcessor 'org.projectlombok:lombok:1.18.12'
+ testCompileOnly 'org.projectlombok:lombok:1.18.12'
+ testAnnotationProcessor 'org.projectlombok:lombok:1.18.12'
}
-tasks.withType(JavaCompile) {
- options.encoding = "UTF-8"
+// See https://github.com/JetBrains/gradle-intellij-plugin/
+intellij {
+ version = 'IU-2020.1.2'
+ plugins = ['java', 'DatabaseTools']
+ updateSinceUntilBuild = false
+ downloadSources = true
+ sandboxDirectory = "${rootProject.rootDir}/idea-sandbox"
}
+
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 01b8bf6..7454180 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 3928e23..0a94912 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,5 @@
-#Tue Jul 17 15:13:01 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
+distributionUrl=https\://downloads.gradle-dn.com/distributions/gradle-6.9-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
diff --git a/src/main/java/com/sjhy/plugin/actions/EasyCodeEntityAction.java b/src/main/java/com/sjhy/plugin/actions/EasyCodeEntityAction.java
index e8068c5..4ed3049 100644
--- a/src/main/java/com/sjhy/plugin/actions/EasyCodeEntityAction.java
+++ b/src/main/java/com/sjhy/plugin/actions/EasyCodeEntityAction.java
@@ -4,6 +4,8 @@ import com.google.common.collect.Lists;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.CommonDataKeys;
+import com.intellij.openapi.actionSystem.LangDataKeys;
+import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiClass;
@@ -74,5 +76,23 @@ public class EasyCodeEntityAction extends AnAction {
return psiClassList;
}
+ @Override
+ public void update(@NotNull AnActionEvent event) {
+ // 不存在模块不展示:选择多个模块
+ Project project = event.getData(CommonDataKeys.PROJECT);
+ Module module = event.getData(LangDataKeys.MODULE);
+ if (project == null || module == null) {
+ event.getPresentation().setVisible(false);
+ return;
+ }
+
+ // 非java的文件不显示
+ VirtualFile file = event.getDataContext().getData(CommonDataKeys.VIRTUAL_FILE);
+ if (file != null && !file.isDirectory() && !"java".equals(file.getExtension())) {
+ event.getPresentation().setVisible(false);
+ return;
+ }
+ }
+
}
diff --git a/src/main/java/com/sjhy/plugin/dict/GlobalDict.java b/src/main/java/com/sjhy/plugin/dict/GlobalDict.java
index b0d03a0..bda043b 100644
--- a/src/main/java/com/sjhy/plugin/dict/GlobalDict.java
+++ b/src/main/java/com/sjhy/plugin/dict/GlobalDict.java
@@ -15,7 +15,7 @@ public interface GlobalDict {
/**
* 版本号
*/
- String VERSION = "1.2.4";
+ String VERSION = "1.2.6";
/**
* 作者名称
*/
diff --git a/src/main/java/com/sjhy/plugin/dto/TableInfoSettingsDTO.java b/src/main/java/com/sjhy/plugin/dto/TableInfoSettingsDTO.java
index d5b43f5..60a56ee 100644
--- a/src/main/java/com/sjhy/plugin/dto/TableInfoSettingsDTO.java
+++ b/src/main/java/com/sjhy/plugin/dto/TableInfoSettingsDTO.java
@@ -95,12 +95,11 @@ public class TableInfoSettingsDTO {
return;
}
DbTable dbTable = tableInfo.getObj();
- PsiClass psiClass = tableInfo.getPsiClassObj();
String key;
if (dbTable != null) {
key = generateKey(dbTable);
- } else if (psiClass != null) {
- key = generateKey(psiClass);
+ } else if (tableInfo.getPsiClassObj() != null) {
+ key = generateKey((PsiClass) tableInfo.getPsiClassObj());
} else {
return;
}
diff --git a/src/main/java/com/sjhy/plugin/entity/TableInfo.java b/src/main/java/com/sjhy/plugin/entity/TableInfo.java
index 7286b6a..169ad13 100644
--- a/src/main/java/com/sjhy/plugin/entity/TableInfo.java
+++ b/src/main/java/com/sjhy/plugin/entity/TableInfo.java
@@ -2,7 +2,6 @@ package com.sjhy.plugin.entity;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.intellij.database.psi.DbTable;
-import com.intellij.psi.PsiClass;
import lombok.Data;
import java.util.List;
@@ -24,9 +23,11 @@ public class TableInfo {
/**
* 原始对象(从实体生成)
+ *
+ * Note: 实际类型是com.intellij.psi.PsiClass,为了避免velocity反射出现ClassNotFound,写为Object类型
*/
@JsonIgnore
- private PsiClass psiClassObj;
+ private Object psiClassObj;
/**
* 表名(首字母大写)
diff --git a/src/main/java/com/sjhy/plugin/service/impl/ClipboardExportImportSettingsServiceImpl.java b/src/main/java/com/sjhy/plugin/service/impl/ClipboardExportImportSettingsServiceImpl.java
index d45ad45..5606b81 100644
--- a/src/main/java/com/sjhy/plugin/service/impl/ClipboardExportImportSettingsServiceImpl.java
+++ b/src/main/java/com/sjhy/plugin/service/impl/ClipboardExportImportSettingsServiceImpl.java
@@ -25,7 +25,7 @@ public class ClipboardExportImportSettingsServiceImpl implements ExportImportSet
*/
@Override
public void exportConfig(SettingsStorageDTO settingsStorage) {
- String json = JSON.toJson(settingsStorage);
+ String json = JSON.toJsonByFormat(settingsStorage);
CopyPasteManager.getInstance().setContents(new TextTransferable(json));
Messages.showInfoMessage("Config info success write to clipboard!", GlobalDict.TITLE_INFO);
}
diff --git a/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java b/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java
index b8eeabe..de41c39 100644
--- a/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java
+++ b/src/main/java/com/sjhy/plugin/service/impl/CodeGenerateServiceImpl.java
@@ -7,6 +7,7 @@ import com.intellij.openapi.module.Module;
import com.intellij.openapi.module.ModuleManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.ui.Messages;
+import com.intellij.psi.PsiClass;
import com.intellij.util.ReflectionUtil;
import com.sjhy.plugin.dict.GlobalDict;
import com.sjhy.plugin.dto.GenerateOptions;
@@ -80,7 +81,8 @@ public class CodeGenerateServiceImpl implements CodeGenerateService {
if (selectedTableInfo.getObj() != null) {
Messages.showInfoMessage(selectedTableInfo.getObj().getName() + "表配置信息不正确,请尝试重新配置", GlobalDict.TITLE_INFO);
} else if (selectedTableInfo.getPsiClassObj() != null) {
- Messages.showInfoMessage(selectedTableInfo.getPsiClassObj().getName() + "类配置信息不正确,请尝试重新配置", GlobalDict.TITLE_INFO);
+ PsiClass psiClassObj = (PsiClass) selectedTableInfo.getPsiClassObj();
+ Messages.showInfoMessage(psiClassObj.getName() + "类配置信息不正确,请尝试重新配置", GlobalDict.TITLE_INFO);
} else {
Messages.showInfoMessage("配置信息不正确,请尝试重新配置", GlobalDict.TITLE_INFO);
}
diff --git a/src/main/java/com/sjhy/plugin/service/impl/LocalFileExportImportSettingsServiceImpl.java b/src/main/java/com/sjhy/plugin/service/impl/LocalFileExportImportSettingsServiceImpl.java
index 076dcd9..cd72306 100644
--- a/src/main/java/com/sjhy/plugin/service/impl/LocalFileExportImportSettingsServiceImpl.java
+++ b/src/main/java/com/sjhy/plugin/service/impl/LocalFileExportImportSettingsServiceImpl.java
@@ -25,6 +25,7 @@ import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
+import java.nio.charset.StandardCharsets;
/**
* 本地文件导入导出设置服务实现
@@ -52,7 +53,7 @@ public class LocalFileExportImportSettingsServiceImpl implements ExportImportSet
FileUtil.createIfDoesntExist(file);
WriteCommandAction.runWriteCommandAction(ProjectUtils.getCurrProject(), () -> {
try {
- byte[] bytes = JSON.toJson(settingsStorage).getBytes();
+ byte[] bytes = JSON.toJsonByFormat(settingsStorage).getBytes(StandardCharsets.UTF_8);
VirtualFile virtualFile = VfsUtil.findFileByIoFile(file, true);
if (virtualFile != null) {
virtualFile.setBinaryContent(bytes);
diff --git a/src/main/resources/META-INF/easycode-java.xml b/src/main/resources/META-INF/easycode-java.xml
new file mode 100644
index 0000000..9e59791
--- /dev/null
+++ b/src/main/resources/META-INF/easycode-java.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index e7549e0..3ccf5ac 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -234,8 +234,7 @@
com.intellij.modules.lang
com.intellij.database
-
- com.intellij.modules.java
+ com.intellij.modules.java
@@ -262,12 +261,6 @@
-
-
-
-
-