diff --git a/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/SkatePluginSettings.kt b/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/SkatePluginSettings.kt index 188acdc49..a94021448 100644 --- a/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/SkatePluginSettings.kt +++ b/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/SkatePluginSettings.kt @@ -122,6 +122,12 @@ class SkatePluginSettings : SimplePersistentStateComponent() + if (!settings.isAiBotEnabled) { + toolWindow.hide() + return + } + val contentFactory = ContentFactory.getInstance() val content = contentFactory.createContent(createComposePanel(), "", false) toolWindow.contentManager.addContent(content) diff --git a/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/ui/SkateConfigUI.kt b/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/ui/SkateConfigUI.kt index c30471b67..4566742e2 100644 --- a/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/ui/SkateConfigUI.kt +++ b/skate-plugin/src/main/kotlin/com/slack/sgp/intellij/ui/SkateConfigUI.kt @@ -41,6 +41,7 @@ internal class SkateConfigUI( featureFlagSettings() tracingSettings() codeOwnerSettings() + aiBotSettings() } private fun Panel.whatsNewPanelSettings() { @@ -192,4 +193,16 @@ internal class SkateConfigUI( .apply { enabledCondition?.let { enabledIf(it) } } } } + + private fun Panel.aiBotSettings() { + group(SkateBundle.message("skate.configuration.aiBot.title")) { + row { + checkBox(SkateBundle.message("skate.configuration.enableAiBot.description")) + .bindSelected( + getter = { settings.isAiBotEnabled }, + setter = { settings.isAiBotEnabled = it }, + ) + } + } + } } diff --git a/skate-plugin/src/main/resources/messages/skateBundle.properties b/skate-plugin/src/main/resources/messages/skateBundle.properties index 94fea1484..9a7448846 100644 --- a/skate-plugin/src/main/resources/messages/skateBundle.properties +++ b/skate-plugin/src/main/resources/messages/skateBundle.properties @@ -19,4 +19,7 @@ skate.configuration.tracingEndpoint.error=API endpoint can't be empty skate.configuration.codeOwner.title=Code Owner skate.configuration.codeOwner.enabledDescription=Enable plugin to see team code ownership in status widget skate.configuration.codeOwnerFile.title=File path -skate.configuration.codeOwnerFile.error=File path can't be empty \ No newline at end of file +skate.configuration.codeOwnerFile.error=File path can't be empty +skate.configuration.aiBot.title=AI Chat Bot +skate.configuration.enableAiBot.description=Enable AI chatbot within the IDE +