diff --git a/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml b/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml index 0ba267dc6ab4..bf3e30f4f2fe 100644 --- a/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml +++ b/plugins/devkit/devkit-core/resources/intellij.devkit.core.xml @@ -718,6 +718,8 @@ + + diff --git a/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties b/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties index 92ea6dee8742..2ba03429ba9b 100644 --- a/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties +++ b/plugins/devkit/devkit-core/resources/messages/DevKitBundle.properties @@ -831,4 +831,5 @@ plugins.python.description=Python language plugins.go.description=Go language plugins.php.description=PHP language plugins.ruby.description=Ruby language -plugins.rust.description=Rust language \ No newline at end of file +plugins.rust.description=Rust language +command.name.update.file.templates.scheme=Set File Templates Scheme to Project diff --git a/plugins/devkit/devkit-core/src/templates/UpdateFileTemplatesSchemeToProjectActivity.kt b/plugins/devkit/devkit-core/src/templates/UpdateFileTemplatesSchemeToProjectActivity.kt new file mode 100644 index 000000000000..6ae6b81e1043 --- /dev/null +++ b/plugins/devkit/devkit-core/src/templates/UpdateFileTemplatesSchemeToProjectActivity.kt @@ -0,0 +1,34 @@ +// Copyright 2000-2025 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license. +package org.jetbrains.idea.devkit.templates + +import com.intellij.ide.fileTemplates.FileTemplateManager +import com.intellij.ide.util.runOnceForProject +import com.intellij.openapi.application.ApplicationManager +import com.intellij.openapi.command.writeCommandAction +import com.intellij.openapi.extensions.ExtensionNotApplicableException +import com.intellij.openapi.project.IntelliJProjectUtil +import com.intellij.openapi.project.Project +import com.intellij.openapi.startup.ProjectActivity +import org.jetbrains.idea.devkit.DevKitBundle + +internal class UpdateFileTemplatesSchemeToProjectActivity : ProjectActivity { + init { + val application = ApplicationManager.getApplication() + if (application.isHeadlessEnvironment + || application.isUnitTestMode + || application.isCommandLine) { + throw ExtensionNotApplicableException.create() + } + } + + override suspend fun execute(project: Project) { + if (!IntelliJProjectUtil.isIntelliJPlatformProject(project)) return + + runOnceForProject(project, "update.intellij.repository.file.templates.scheme") { + writeCommandAction(project, DevKitBundle.message("command.name.update.file.templates.scheme")) { + val manager = FileTemplateManager.getInstance(project) + manager.setCurrentScheme(manager.getProjectScheme()) + } + } + } +} \ No newline at end of file