From f28a1a0f0da5790d99930c7f87dd93c595f4ba56 Mon Sep 17 00:00:00 2001 From: Samarium <28302241+Samarium150@users.noreply.github.com> Date: Sat, 15 Apr 2023 08:01:10 -0600 Subject: [PATCH] [idea] feat: generate gradle-wrapper.properties and src/test directory (#2622) feat: generate gradle-wrapper.properties and src/test directory --- .../code/Gradle gradle-wrapper.properties.ft | 5 +++++ .../code/Gradle gradle-wrapper.properties.html | 14 ++++++++++++++ .../tools/intellij-plugin/src/assets/Assets.kt | 3 ++- .../src/assets/FileTemplateRegistrar.kt | 3 ++- .../src/wizard/MiraiModuleBuilder.kt | 6 +++++- .../src/wizard/ProjectAssetsProvider.kt | 5 ++++- 6 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.ft create mode 100644 mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.html diff --git a/mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.ft b/mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.ft new file mode 100644 index 000000000..9904b1f64 --- /dev/null +++ b/mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.ft @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-all.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists \ No newline at end of file diff --git a/mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.html b/mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.html new file mode 100644 index 000000000..1b3e162b2 --- /dev/null +++ b/mirai-console/tools/intellij-plugin/resources/fileTemplates/code/Gradle gradle-wrapper.properties.html @@ -0,0 +1,14 @@ + + + + +

This is a built-in file template used to create a new gradle-wrapper.properties for Mirai Console Plugin projects.

+ + diff --git a/mirai-console/tools/intellij-plugin/src/assets/Assets.kt b/mirai-console/tools/intellij-plugin/src/assets/Assets.kt index c82c875f8..dd7734cde 100644 --- a/mirai-console/tools/intellij-plugin/src/assets/Assets.kt +++ b/mirai-console/tools/intellij-plugin/src/assets/Assets.kt @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Mamoe Technologies and contributors. + * Copyright 2019-2023 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. @@ -26,6 +26,7 @@ object FT { // file template const val SettingsGradleKts = "Plugin settings.gradle.kts" const val SettingsGradle = "Plugin settings.gradle" + const val GradleWrapperProperties = "Gradle gradle-wrapper.properties" const val GradleProperties = "Gradle gradle.properties" const val PluginMainKt = "Plugin main class Kotlin.kt" diff --git a/mirai-console/tools/intellij-plugin/src/assets/FileTemplateRegistrar.kt b/mirai-console/tools/intellij-plugin/src/assets/FileTemplateRegistrar.kt index 56713aebd..d98f1839e 100644 --- a/mirai-console/tools/intellij-plugin/src/assets/FileTemplateRegistrar.kt +++ b/mirai-console/tools/intellij-plugin/src/assets/FileTemplateRegistrar.kt @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Mamoe Technologies and contributors. + * Copyright 2019-2023 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. @@ -23,6 +23,7 @@ class FileTemplateRegistrar : com.intellij.ide.fileTemplates.FileTemplateGroupDe addTemplate(FileTemplateDescriptor(FT.PluginMainJava)) addTemplate(FileTemplateDescriptor(FT.PluginMainService)) + addTemplate(FileTemplateDescriptor(FT.GradleWrapperProperties)) addTemplate(FileTemplateDescriptor(FT.GradleProperties)) addTemplate(FileTemplateDescriptor(FT.SettingsGradleKts)) diff --git a/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt b/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt index 562e4a62a..b16a20a50 100644 --- a/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt +++ b/mirai-console/tools/intellij-plugin/src/wizard/MiraiModuleBuilder.kt @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Mamoe Technologies and contributors. + * Copyright 2019-2023 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. @@ -108,6 +108,10 @@ class MiraiModuleBuilder : StarterModuleBuilder() { val model = starterContext.getUserData(MIRAI_PROJECT_MODEL_KEY)!! val standardAssetsProvider = StandardAssetsProvider() + assets.add(GeneratorTemplateFile( + standardAssetsProvider.gradleWrapperPropertiesLocation, + ftManager.getCodeTemplate(FT.GradleWrapperProperties) + )) assets.addAll(standardAssetsProvider.getGradlewAssets()) model.buildSystemType.createBuildSystem(model) diff --git a/mirai-console/tools/intellij-plugin/src/wizard/ProjectAssetsProvider.kt b/mirai-console/tools/intellij-plugin/src/wizard/ProjectAssetsProvider.kt index 238efd365..faf0cabcf 100644 --- a/mirai-console/tools/intellij-plugin/src/wizard/ProjectAssetsProvider.kt +++ b/mirai-console/tools/intellij-plugin/src/wizard/ProjectAssetsProvider.kt @@ -1,5 +1,5 @@ /* - * Copyright 2019-2022 Mamoe Technologies and contributors. + * Copyright 2019-2023 Mamoe Technologies and contributors. * * 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证. * Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link. @@ -39,6 +39,9 @@ sealed class GradleProjectCreator( collect(GeneratorEmptyDirectory("src/main/${model.languageType.sourceSetDirName}")) collect(GeneratorEmptyDirectory("src/main/resources")) + collect(GeneratorEmptyDirectory("src/test/${model.languageType.sourceSetDirName}")) + collect(GeneratorEmptyDirectory("src/test/resources")) + collect(GeneratorTemplateFile(model.languageType.pluginMainClassFile(this))) collect(GeneratorTemplateFile(".gitignore", getTemplate(FT.Gitignore)))