diff --git a/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/suggestion/item/SuggestionGroupItems.kt b/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/suggestion/item/SuggestionGroupItems.kt index 6c895cfc..1eb87dec 100644 --- a/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/suggestion/item/SuggestionGroupItems.kt +++ b/src/main/kotlin/ee/carlrobert/codegpt/ui/textarea/suggestion/item/SuggestionGroupItems.kt @@ -10,6 +10,8 @@ import com.intellij.openapi.vfs.VirtualFile import ee.carlrobert.codegpt.CodeGPTBundle import ee.carlrobert.codegpt.settings.GeneralSettings import ee.carlrobert.codegpt.settings.documentation.DocumentationSettings +import ee.carlrobert.codegpt.settings.persona.PersonaDetails +import ee.carlrobert.codegpt.settings.persona.PersonaSettings import ee.carlrobert.codegpt.settings.service.ServiceType import ee.carlrobert.codegpt.ui.DocumentationDetails import ee.carlrobert.codegpt.util.ResourceUtil.getDefaultPersonas @@ -78,8 +80,13 @@ class PersonaSuggestionGroupItem : SuggestionGroupItem { override val displayName: String = CodeGPTBundle.get("suggestionGroupItem.personas.displayName") override val icon = AllIcons.General.User - override suspend fun getSuggestions(searchText: String?): List = - getDefaultPersonas() + override suspend fun getSuggestions(searchText: String?): List { + val userCreatedPersonas = service().state.userCreatedPersonas + .map { + PersonaDetails(it.id, it.name ?: "Unknown", it.instructions ?: "Unknown") + } + .toMutableList() + return (userCreatedPersonas + getDefaultPersonas()) .filter { if (searchText.isNullOrEmpty()) { true @@ -89,6 +96,7 @@ class PersonaSuggestionGroupItem : SuggestionGroupItem { } .map { PersonaActionItem(it) } .take(10) + listOf(CreatePersonaActionItem()) + } } class DocumentationSuggestionGroupItem : SuggestionGroupItem {