Better caret position for new Kotlin file/class
#KT-15255 Fixed
This commit is contained in:
@@ -18,6 +18,7 @@ package org.jetbrains.kotlin.idea.actions
|
|||||||
|
|
||||||
import com.intellij.ide.actions.CreateFileFromTemplateAction
|
import com.intellij.ide.actions.CreateFileFromTemplateAction
|
||||||
import com.intellij.ide.actions.CreateFileFromTemplateDialog
|
import com.intellij.ide.actions.CreateFileFromTemplateDialog
|
||||||
|
import com.intellij.ide.actions.CreateFromTemplateAction
|
||||||
import com.intellij.ide.fileTemplates.FileTemplate
|
import com.intellij.ide.fileTemplates.FileTemplate
|
||||||
import com.intellij.ide.fileTemplates.FileTemplateManager
|
import com.intellij.ide.fileTemplates.FileTemplateManager
|
||||||
import com.intellij.ide.fileTemplates.actions.AttributesDefaults
|
import com.intellij.ide.fileTemplates.actions.AttributesDefaults
|
||||||
@@ -25,6 +26,8 @@ import com.intellij.ide.fileTemplates.ui.CreateFromTemplateDialog
|
|||||||
import com.intellij.openapi.actionSystem.DataContext
|
import com.intellij.openapi.actionSystem.DataContext
|
||||||
import com.intellij.openapi.actionSystem.LangDataKeys
|
import com.intellij.openapi.actionSystem.LangDataKeys
|
||||||
import com.intellij.openapi.actionSystem.PlatformDataKeys
|
import com.intellij.openapi.actionSystem.PlatformDataKeys
|
||||||
|
import com.intellij.openapi.editor.LogicalPosition
|
||||||
|
import com.intellij.openapi.fileEditor.FileEditorManager
|
||||||
import com.intellij.openapi.module.ModuleUtilCore
|
import com.intellij.openapi.module.ModuleUtilCore
|
||||||
import com.intellij.openapi.project.DumbAware
|
import com.intellij.openapi.project.DumbAware
|
||||||
import com.intellij.openapi.project.DumbService
|
import com.intellij.openapi.project.DumbService
|
||||||
@@ -36,6 +39,8 @@ import com.intellij.util.IncorrectOperationException
|
|||||||
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.configuration.showConfigureKotlinNotificationIfNeeded
|
import org.jetbrains.kotlin.idea.configuration.showConfigureKotlinNotificationIfNeeded
|
||||||
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.psi.KtNamedDeclaration
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
class NewKotlinFileAction
|
class NewKotlinFileAction
|
||||||
@@ -51,6 +56,19 @@ class NewKotlinFileAction
|
|||||||
if (module != null) {
|
if (module != null) {
|
||||||
showConfigureKotlinNotificationIfNeeded(module)
|
showConfigureKotlinNotificationIfNeeded(module)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (createdElement is KtFile) {
|
||||||
|
val ktClass = createdElement.declarations.singleOrNull() as? KtNamedDeclaration
|
||||||
|
if (ktClass != null) {
|
||||||
|
CreateFromTemplateAction.moveCaretAfterNameIdentifier(ktClass)
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
val editor = FileEditorManager.getInstance(createdElement.project).selectedTextEditor ?: return
|
||||||
|
if (editor.document == createdElement.viewProvider.document) {
|
||||||
|
editor.caretModel.moveToLogicalPosition(LogicalPosition(editor.document.lineCount-1, 0))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun buildDialog(project: Project, directory: PsiDirectory, builder: CreateFileFromTemplateDialog.Builder) {
|
override fun buildDialog(project: Project, directory: PsiDirectory, builder: CreateFileFromTemplateDialog.Builder) {
|
||||||
|
|||||||
Reference in New Issue
Block a user