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.sealed.class.title=Sealed Class
|
||||||
action.new.file.dialog.annotation.title=Annotation
|
action.new.file.dialog.annotation.title=Annotation
|
||||||
action.new.file.dialog.interface.title=Interface
|
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.enum.title=Enum class
|
||||||
action.new.file.dialog.object.title=Object
|
action.new.file.dialog.object.title=Object
|
||||||
action.new.file.error.empty.name=Name can't be empty
|
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.psi.PsiFile
|
||||||
import com.intellij.util.IncorrectOperationException
|
import com.intellij.util.IncorrectOperationException
|
||||||
import org.jetbrains.annotations.TestOnly
|
import org.jetbrains.annotations.TestOnly
|
||||||
|
import org.jetbrains.kotlin.config.LanguageFeature
|
||||||
import org.jetbrains.kotlin.idea.KotlinBundle
|
import org.jetbrains.kotlin.idea.KotlinBundle
|
||||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||||
import org.jetbrains.kotlin.idea.KotlinIcons
|
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.FUSEventGroups
|
||||||
import org.jetbrains.kotlin.idea.statistics.KotlinFUSLogger
|
import org.jetbrains.kotlin.idea.statistics.KotlinFUSLogger
|
||||||
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
import org.jetbrains.kotlin.idea.util.application.runWriteAction
|
||||||
@@ -91,11 +93,20 @@ class NewKotlinFileAction : CreateFileFromTemplateAction(
|
|||||||
KotlinIcons.INTERFACE,
|
KotlinIcons.INTERFACE,
|
||||||
"Kotlin Interface"
|
"Kotlin Interface"
|
||||||
)
|
)
|
||||||
.addKind(
|
|
||||||
KotlinBundle.message("action.new.file.dialog.data.class.title"),
|
if (project.getLanguageVersionSettings().supportsFeature(LanguageFeature.SealedInterfaces)) {
|
||||||
KotlinIcons.CLASS,
|
builder.addKind(
|
||||||
"Kotlin Data Class"
|
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(
|
.addKind(
|
||||||
KotlinBundle.message("action.new.file.dialog.enum.title"),
|
KotlinBundle.message("action.new.file.dialog.enum.title"),
|
||||||
KotlinIcons.ENUM,
|
KotlinIcons.ENUM,
|
||||||
|
|||||||
@@ -91,11 +91,20 @@ class NewKotlinFileAction : CreateFileFromTemplateAction(
|
|||||||
KotlinIcons.INTERFACE,
|
KotlinIcons.INTERFACE,
|
||||||
"Kotlin Interface"
|
"Kotlin Interface"
|
||||||
)
|
)
|
||||||
.addKind(
|
|
||||||
KotlinBundle.message("action.new.file.dialog.data.class.title"),
|
if (project.getLanguageVersionSettings().supportsFeature(LanguageFeature.SealedInterfaces)) {
|
||||||
KotlinIcons.CLASS,
|
builder.addKind(
|
||||||
"Kotlin Data Class"
|
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(
|
.addKind(
|
||||||
KotlinBundle.message("action.new.file.dialog.enum.title"),
|
KotlinBundle.message("action.new.file.dialog.enum.title"),
|
||||||
KotlinIcons.ENUM,
|
KotlinIcons.ENUM,
|
||||||
|
|||||||
@@ -91,11 +91,20 @@ class NewKotlinFileAction : CreateFileFromTemplateAction(
|
|||||||
KotlinIcons.INTERFACE,
|
KotlinIcons.INTERFACE,
|
||||||
"Kotlin Interface"
|
"Kotlin Interface"
|
||||||
)
|
)
|
||||||
.addKind(
|
|
||||||
KotlinBundle.message("action.new.file.dialog.data.class.title"),
|
if (project.getLanguageVersionSettings().supportsFeature(LanguageFeature.SealedInterfaces)) {
|
||||||
KotlinIcons.CLASS,
|
builder.addKind(
|
||||||
"Kotlin Data Class"
|
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(
|
.addKind(
|
||||||
KotlinBundle.message("action.new.file.dialog.enum.title"),
|
KotlinBundle.message("action.new.file.dialog.enum.title"),
|
||||||
KotlinIcons.ENUM,
|
KotlinIcons.ENUM,
|
||||||
|
|||||||
Reference in New Issue
Block a user