From 25609f11597ac4ee72db690cb9ec821bae940e09 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 11 May 2018 17:44:36 +0300 Subject: [PATCH] Create kotlin file: create abstract class if its name contains Abstract So #KT-21844 Fixed --- .../kotlin/idea/actions/NewKotlinFileAction.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt index 183606f407c..7f035ca3246 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt @@ -41,6 +41,8 @@ import com.intellij.util.IncorrectOperationException import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.KotlinIcons import org.jetbrains.kotlin.idea.util.application.runWriteAction +import org.jetbrains.kotlin.lexer.KtTokens +import org.jetbrains.kotlin.psi.KtClass import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.psi.KtNamedDeclaration import java.util.* @@ -162,7 +164,16 @@ class NewKotlinFileAction : CreateFileFromTemplateAction( val service = DumbService.getInstance(dir.project) service.isAlternativeResolveEnabled = true try { - return createFromTemplate(targetDir, className, template) + val psiFile = createFromTemplate(targetDir, className, template) + if (psiFile is KtFile) { + val singleClass = psiFile.declarations.singleOrNull() as? KtClass + if (singleClass != null && !singleClass.isEnum() && !singleClass.isInterface() && name.contains("Abstract")) { + runWriteAction { + singleClass.addModifier(KtTokens.ABSTRACT_KEYWORD) + } + } + } + return psiFile } finally { service.isAlternativeResolveEnabled = false }