@@ -2,6 +2,7 @@ import AppKitExtension
22import Client
33import ComposableArchitecture
44import ConversationServiceProvider
5+ import Preferences
56import SwiftUI
67import Toast
78import XcodeInspector
@@ -10,7 +11,6 @@ import Logger
1011import SystemUtils
1112
1213struct ChatSection : View {
13- @AppStorage ( \. autoAttachChatToXcode) var autoAttachChatToXcode
1414 @AppStorage ( \. enableFixError) var enableFixError
1515 @AppStorage ( \. enableSubagent) var enableSubagent
1616 @ObservedObject private var featureFlags = FeatureFlagManager . shared
@@ -62,15 +62,12 @@ struct ChatSection: View {
6262
6363 Divider ( )
6464 }
65-
66- // Auto Attach toggle
67- SettingsToggle (
68- title: " Auto-attach Chat Window to Xcode " ,
69- isOn: $autoAttachChatToXcode
70- )
65+
66+ AutoAttachChatToXcodeSetting ( )
67+ . padding ( SettingsToggle . defaultPadding)
7168
7269 Divider ( )
73-
70+
7471 // Fix error toggle
7572 SettingsToggle (
7673 title: " Quick fix for error " ,
@@ -105,6 +102,32 @@ struct ChatSection: View {
105102 }
106103}
107104
105+ struct AutoAttachChatToXcodeSetting : View {
106+ @AppStorage ( \. autoAttachChatToXcodeMode) private var autoAttachChatToXcodeMode
107+
108+ var body : some View {
109+ WithPerceptionTracking {
110+ HStack {
111+ VStack ( alignment: . leading) {
112+ Text ( " Auto-attach Chat Window to Xcode " )
113+ . font ( . body)
114+ Text ( " Choose Projects to attach only to Xcode project and workspace windows. " )
115+ . font ( . footnote)
116+ }
117+
118+ Spacer ( )
119+
120+ Picker ( " " , selection: $autoAttachChatToXcodeMode) {
121+ Text ( " Never " ) . tag ( AutoAttachChatToXcodeMode . never)
122+ Text ( " Always " ) . tag ( AutoAttachChatToXcodeMode . always)
123+ Text ( " Projects " ) . tag ( AutoAttachChatToXcodeMode . projects)
124+ }
125+ . frame ( maxWidth: 200 , alignment: . trailing)
126+ }
127+ }
128+ }
129+ }
130+
108131struct ResponseLanguageSetting : View {
109132 @AppStorage ( \. chatResponseLocale) var chatResponseLocale
110133
0 commit comments