KT-44075 Sealed interfaces: New Kotlin Class/File menu update

^KT-44075 Fixed
This commit is contained in:
Andrei Klunnyi
2020-12-24 13:15:44 +01:00
parent 740b8a9aec
commit f8cca288ab
5 changed files with 47 additions and 12 deletions
@@ -332,6 +332,7 @@ action.new.file.dialog.data.class.title=Data Class
action.new.file.dialog.sealed.class.title=Sealed Class
action.new.file.dialog.annotation.title=Annotation
action.new.file.dialog.interface.title=Interface
action.new.file.dialog.sealed.interface.title=Sealed Interface
action.new.file.dialog.enum.title=Enum class
action.new.file.dialog.object.title=Object
action.new.file.error.empty.name=Name can't be empty
@@ -0,0 +1,5 @@
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME}
#end
#parse("File Header.java")
sealed interface ${NAME}
@@ -29,9 +29,11 @@ import com.intellij.psi.PsiDirectory
import com.intellij.psi.PsiFile
import com.intellij.util.IncorrectOperationException
import org.jetbrains.annotations.TestOnly
import org.jetbrains.kotlin.config.LanguageFeature
import org.jetbrains.kotlin.idea.KotlinBundle
import org.jetbrains.kotlin.idea.KotlinFileType
import org.jetbrains.kotlin.idea.KotlinIcons
import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings
import org.jetbrains.kotlin.idea.statistics.FUSEventGroups
import org.jetbrains.kotlin.idea.statistics.KotlinFUSLogger
import org.jetbrains.kotlin.idea.util.application.runWriteAction
@@ -91,11 +93,20 @@ class NewKotlinFileAction : CreateFileFromTemplateAction(
KotlinIcons.INTERFACE,
"Kotlin Interface"
)
.addKind(
KotlinBundle.message("action.new.file.dialog.data.class.title"),
KotlinIcons.CLASS,
"Kotlin Data Class"
if (project.getLanguageVersionSettings().supportsFeature(LanguageFeature.SealedInterfaces)) {
builder.addKind(
KotlinBundle.message("action.new.file.dialog.sealed.interface.title"),
KotlinIcons.INTERFACE,
"Kotlin Sealed Interface"
)
}
builder.addKind(
KotlinBundle.message("action.new.file.dialog.data.class.title"),
KotlinIcons.CLASS,
"Kotlin Data Class"
)
.addKind(
KotlinBundle.message("action.new.file.dialog.enum.title"),
KotlinIcons.ENUM,
@@ -91,11 +91,20 @@ class NewKotlinFileAction : CreateFileFromTemplateAction(
KotlinIcons.INTERFACE,
"Kotlin Interface"
)
.addKind(
KotlinBundle.message("action.new.file.dialog.data.class.title"),
KotlinIcons.CLASS,
"Kotlin Data Class"
if (project.getLanguageVersionSettings().supportsFeature(LanguageFeature.SealedInterfaces)) {
builder.addKind(
KotlinBundle.message("action.new.file.dialog.sealed.interface.title"),
KotlinIcons.INTERFACE,
"Kotlin Sealed Interface"
)
}
builder.addKind(
KotlinBundle.message("action.new.file.dialog.data.class.title"),
KotlinIcons.CLASS,
"Kotlin Data Class"
)
.addKind(
KotlinBundle.message("action.new.file.dialog.enum.title"),
KotlinIcons.ENUM,
@@ -91,11 +91,20 @@ class NewKotlinFileAction : CreateFileFromTemplateAction(
KotlinIcons.INTERFACE,
"Kotlin Interface"
)
.addKind(
KotlinBundle.message("action.new.file.dialog.data.class.title"),
KotlinIcons.CLASS,
"Kotlin Data Class"
if (project.getLanguageVersionSettings().supportsFeature(LanguageFeature.SealedInterfaces)) {
builder.addKind(
KotlinBundle.message("action.new.file.dialog.sealed.interface.title"),
KotlinIcons.INTERFACE,
"Kotlin Sealed Interface"
)
}
builder.addKind(
KotlinBundle.message("action.new.file.dialog.data.class.title"),
KotlinIcons.CLASS,
"Kotlin Data Class"
)
.addKind(
KotlinBundle.message("action.new.file.dialog.enum.title"),
KotlinIcons.ENUM,