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 @@ - - - - -