override fun actionPerformed()

in jetbrains-core/src/software/aws/toolkits/jetbrains/core/credentials/CredentialWriter.kt [39:81]


    override fun actionPerformed(e: AnActionEvent) {
        val project = e.getRequiredData(PlatformDataKeys.PROJECT)

        // if both config and credential files do not exist, create a new config file
        if (!configFile.exists() && !credentialsFile.exists()) {
            if (confirm(project, configFile)) {
                try {
                    writer.createFile(configFile)
                } finally {
                    AwsTelemetry.createCredentials(project)
                }
            } else {
                return
            }
        }

        // open both config and credential files, if they exist
        // credential file is opened last since it takes precedence over the config file
        val virtualFiles = listOf(configFile, credentialsFile).filter { it.exists() }.map {
            localFileSystem.refreshAndFindFileByIoFile(it) ?: throw RuntimeException(message("credentials.could_not_open", it))
        }

        val fileEditorManager = FileEditorManager.getInstance(project)

        localFileSystem.refreshFiles(virtualFiles, false, false) {
            virtualFiles.forEach {
                if (it.fileType == FileTypes.UNKNOWN) {
                    ApplicationManager.getApplication().runWriteAction {
                        FileTypeManagerEx.getInstanceEx().associatePattern(
                            FileTypes.PLAIN_TEXT,
                            it.name
                        )
                    }
                }

                if (fileEditorManager.openTextEditor(OpenFileDescriptor(project, it), true) == null) {
                    AwsTelemetry.openCredentials(project, success = false)
                    throw RuntimeException(message("credentials.could_not_open", it))
                }
                AwsTelemetry.openCredentials(project, success = true)
            }
        }
    }