diff --git a/idea/resources-en/messages/KotlinBundle.properties b/idea/resources-en/messages/KotlinBundle.properties index bb898c4a148..816409a6119 100644 --- a/idea/resources-en/messages/KotlinBundle.properties +++ b/idea/resources-en/messages/KotlinBundle.properties @@ -341,6 +341,9 @@ action.new.file.description=Creates new Kotlin class or file action.new.file.dialog.title=New Kotlin Class/File action.new.file.dialog.file.title=File action.new.file.dialog.class.title=Class +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.enum.title=Enum class action.new.file.dialog.object.title=Object diff --git a/idea/resources/fileTemplates/internal/Kotlin Annotation.kt.ft b/idea/resources/fileTemplates/internal/Kotlin Annotation.kt.ft new file mode 100644 index 00000000000..477ab1f4e36 --- /dev/null +++ b/idea/resources/fileTemplates/internal/Kotlin Annotation.kt.ft @@ -0,0 +1,5 @@ +#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME} + +#end +#parse("File Header.java") +annotation class ${NAME}() diff --git a/idea/resources/fileTemplates/internal/Kotlin Data Class.kt.ft b/idea/resources/fileTemplates/internal/Kotlin Data Class.kt.ft new file mode 100644 index 00000000000..850aa5c19ba --- /dev/null +++ b/idea/resources/fileTemplates/internal/Kotlin Data Class.kt.ft @@ -0,0 +1,5 @@ +#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME} + +#end +#parse("File Header.java") +data class ${NAME}() diff --git a/idea/resources/fileTemplates/internal/Kotlin Data Class.kt.html b/idea/resources/fileTemplates/internal/Kotlin Data Class.kt.html new file mode 100644 index 00000000000..c1648021e5e --- /dev/null +++ b/idea/resources/fileTemplates/internal/Kotlin Data Class.kt.html @@ -0,0 +1,14 @@ + + + + + + +
+ + This is a built-in template used by IDEA each time you create a + Kotlin data class + +
+ + diff --git a/idea/resources/fileTemplates/internal/Kotlin Sealed Class.kt.ft b/idea/resources/fileTemplates/internal/Kotlin Sealed Class.kt.ft new file mode 100644 index 00000000000..c179ef83fd2 --- /dev/null +++ b/idea/resources/fileTemplates/internal/Kotlin Sealed Class.kt.ft @@ -0,0 +1,5 @@ +#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME} + +#end +#parse("File Header.java") +sealed class ${NAME} diff --git a/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt b/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt index 4d6b5194625..e366c6c2127 100644 --- a/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt +++ b/idea/src/org/jetbrains/kotlin/idea/actions/NewKotlinFileAction.kt @@ -91,11 +91,26 @@ class NewKotlinFileAction : CreateFileFromTemplateAction( KotlinIcons.INTERFACE, "Kotlin Interface" ) + .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, "Kotlin Enum" ) + .addKind( + KotlinBundle.message("action.new.file.dialog.sealed.class.title"), + KotlinIcons.CLASS, + "Kotlin Sealed Class" + ) + .addKind( + KotlinBundle.message("action.new.file.dialog.annotation.title"), + KotlinIcons.ANNOTATION, + "Kotlin Annotation" + ) .addKind( KotlinBundle.message("action.new.file.dialog.object.title"), KotlinIcons.OBJECT,