override fun actionPerformed()

in src/main/kotlin/mobi/hsz/idea/gitignore/actions/NewFileAction.kt [23:55]


    override fun actionPerformed(e: AnActionEvent) {
        val project = e.getData(CommonDataKeys.PROJECT) ?: return
        val view = e.getData(LangDataKeys.IDE_VIEW) ?: return
        val directory = view.orChooseDirectory ?: return

        val filename = fileType.ignoreLanguage.filename
        var file = directory.findFile(filename)
        val virtualFile = file?.virtualFile ?: directory.virtualFile.findChild(filename)
        val dialog =
            if (file == null || virtualFile == null) {
                GeneratorDialog(project, action = CreateFileCommandAction(project, directory, fileType))
            } else {
                Notifications.Bus.notify(
                    Notification(
                        fileType.languageName,
                        IgnoreBundle.message("action.newFile.exists", fileType.languageName),
                        @Suppress("DialogTitleCapitalization")
                        IgnoreBundle.message("action.newFile.exists.in", virtualFile.path),
                        NotificationType.INFORMATION
                    ),
                    project
                )
                file = Utils.getPsiFile(project, virtualFile)
                GeneratorDialog(project, file)
            }.apply {
                show()
            }

        file = dialog.file
        if (file != null) {
            Utils.openFile(project, file)
        }
    }