88import SwiftUI
99import os. log
1010
11- private let logger = Logger ( subsystem: Bundle . main. bundleIdentifier ?? " Code " , category: " TerminalManager " )
11+ private let logger = Logger (
12+ subsystem: Bundle . main. bundleIdentifier ?? " Code " , category: " TerminalManager " )
1213
1314/// Manages multiple terminal instances.
1415/// - Important: Access this class only from the main thread. Debug builds will assert this.
@@ -35,8 +36,9 @@ class TerminalManager: ObservableObject {
3536 /// Useful during initialization when @AppStorage properties aren't yet accessible.
3637 static func readTerminalOptionsFromDefaults( ) -> TerminalOptions {
3738 if let rawValue = UserDefaults . standard. string ( forKey: " terminalOptions " ) ,
38- let data = rawValue. data ( using: . utf8) ,
39- let decoded = try ? JSONDecoder ( ) . decode ( TerminalOptions . self, from: data) {
39+ let data = rawValue. data ( using: . utf8) ,
40+ let decoded = try ? JSONDecoder ( ) . decode ( TerminalOptions . self, from: data)
41+ {
4042 return decoded
4143 }
4244 return TerminalOptions ( )
@@ -128,7 +130,8 @@ class TerminalManager: ObservableObject {
128130 while existingNames. contains ( candidateName) && suffix < maxAttempts {
129131 suffix += 1
130132 candidateName = String (
131- format: NSLocalizedString ( " %@ (%d) " , comment: " Terminal name with duplicate suffix " ) ,
133+ format: NSLocalizedString (
134+ " %@ (%d) " , comment: " Terminal name with duplicate suffix " ) ,
132135 baseName, suffix
133136 )
134137 }
@@ -151,26 +154,33 @@ class TerminalManager: ObservableObject {
151154 func createTerminal( name: String ? = nil ) -> TerminalInstance {
152155 assertMainThread ( )
153156 guard terminals. count < TerminalManager . maxTerminals else {
154- logger. debug ( " create blocked: max reached (count: \( self . terminals. count, privacy: . public) , max: \( TerminalManager . maxTerminals, privacy: . public) ) " )
157+ logger. debug (
158+ " create blocked: max reached (count: \( self . terminals. count, privacy: . public) , max: \( TerminalManager . maxTerminals, privacy: . public) ) "
159+ )
155160 // Return the active terminal if at max capacity
156161 // Invariant: terminals array is never empty after init (enforced by closeTerminal guard)
157- precondition ( !terminals. isEmpty, " TerminalManager must always have at least one terminal " )
162+ precondition (
163+ !terminals. isEmpty, " TerminalManager must always have at least one terminal " )
158164 return activeTerminal ?? terminals. first!
159165 }
160166
161167 let terminalName = name ?? generateUniqueTerminalName ( )
162168 let terminal = createTerminalInstance ( name: terminalName)
163169 terminals. append ( terminal)
164170 setActiveTerminalId ( terminal. id)
165- logger. info ( " created terminal name: \( terminal. name, privacy: . public) id: \( terminal. id, privacy: . public) " )
171+ logger. info (
172+ " created terminal name: \( terminal. name, privacy: . public) id: \( terminal. id, privacy: . public) "
173+ )
166174 return terminal
167175 }
168176
169177 func closeTerminal( id: UUID ) {
170178 assertMainThread ( )
171179 // Don't allow closing the last terminal
172180 guard terminals. count > 1 else {
173- logger. debug ( " close blocked: last terminal (count: \( self . terminals. count, privacy: . public) ) id: \( id, privacy: . public) " )
181+ logger. debug (
182+ " close blocked: last terminal (count: \( self . terminals. count, privacy: . public) ) id: \( id, privacy: . public) "
183+ )
174184 return
175185 }
176186
@@ -193,7 +203,9 @@ class TerminalManager: ObservableObject {
193203
194204 terminals. remove ( at: index)
195205 syncRemoteTerminalId ( )
196- logger. info ( " closed terminal name: \( terminal. name, privacy: . public) id: \( terminal. id, privacy: . public) " )
206+ logger. info (
207+ " closed terminal name: \( terminal. name, privacy: . public) id: \( terminal. id, privacy: . public) "
208+ )
197209 }
198210
199211 /// Check if a terminal has a running process
@@ -209,7 +221,9 @@ class TerminalManager: ObservableObject {
209221 return
210222 }
211223 setActiveTerminalId ( terminal. id)
212- logger. info ( " switched terminal name: \( terminal. name, privacy: . public) id: \( terminal. id, privacy: . public) " )
224+ logger. info (
225+ " switched terminal name: \( terminal. name, privacy: . public) id: \( terminal. id, privacy: . public) "
226+ )
213227 }
214228
215229 func renameTerminal( id: UUID , name: String ) {
@@ -286,7 +300,8 @@ class TerminalManager: ObservableObject {
286300 }
287301
288302 if let currentId = remoteTerminalId,
289- terminals. contains ( where: { $0. id == currentId && $0. terminalServiceProvider != nil } ) {
303+ terminals. contains ( where: { $0. id == currentId && $0. terminalServiceProvider != nil } )
304+ {
290305 return
291306 }
292307
0 commit comments