KT-44075 Sealed interfaces: New Kotlin Class/File menu update
^KT-44075 Fixed
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user