Wizard: format templates code
This commit is contained in:
+25
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||
*/
|
||||
|
||||
package org.jetbrains.kotlin.tools.projectWizard.wizard.service
|
||||
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.codeStyle.CodeStyleManager
|
||||
import org.jetbrains.kotlin.idea.util.application.runReadAction
|
||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.FileFormattingService
|
||||
import java.io.File
|
||||
|
||||
class IdeaFileFormattingService(private val project: Project) : FileFormattingService, IdeaWizardService {
|
||||
override fun formatFile(text: String, filename: String): String = runReadAction {
|
||||
val psiFile = createPsiFile(text, filename) ?: return@runReadAction text
|
||||
CodeStyleManager.getInstance(project).reformat(psiFile).text
|
||||
}
|
||||
|
||||
private fun createPsiFile(text: String, filename: String) = when (File(filename.removeSuffix(".vm")).extension) {
|
||||
"kt" -> KtPsiFactory(project).createFile(text)
|
||||
else -> null
|
||||
}
|
||||
}
|
||||
+3
-1
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.tools.projectWizard.wizard.service
|
||||
|
||||
import com.intellij.openapi.module.ModifiableModuleModel
|
||||
import com.intellij.openapi.project.Project
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.FileFormattingService
|
||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.WizardService
|
||||
|
||||
interface IdeaWizardService : WizardService
|
||||
@@ -20,7 +21,8 @@ object IdeaServices {
|
||||
fun createScopeDependent(project: Project, model: ModifiableModuleModel) = listOf(
|
||||
IdeaGradleWizardService(project),
|
||||
IdeaMavenWizardService(project),
|
||||
IdeaJpsWizardService(project, model)
|
||||
IdeaJpsWizardService(project, model),
|
||||
IdeaFileFormattingService(project)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user