@@ -209,6 +209,7 @@ extension PromptToCodePanel {
209209 @AppStorage ( \. codeForegroundColorDark) var codeForegroundColorDark
210210 @AppStorage ( \. codeBackgroundColorLight) var codeBackgroundColorLight
211211 @AppStorage ( \. codeBackgroundColorDark) var codeBackgroundColorDark
212+ @AppStorage ( \. wrapCodeInPromptToCode) var wrapCode
212213
213214 struct CodeContent : Equatable {
214215 var code : String
@@ -241,11 +242,11 @@ extension PromptToCodePanel {
241242 return color
242243 }
243244 }
244- return Color . clear
245+ return Color . contentBackground
245246 }
246247
247248 var body : some View {
248- CustomScrollView {
249+ ScrollView {
249250 VStack ( spacing: 0 ) {
250251 Spacer ( minLength: 60 )
251252
@@ -304,25 +305,41 @@ extension PromptToCodePanel {
304305 . frame ( maxWidth: . infinity)
305306 . scaleEffect ( x: 1 , y: - 1 , anchor: . center)
306307 } else {
307- CodeBlock (
308- code : viewStore. state. code ,
309- language : viewStore . state . language ,
310- startLineIndex : viewStore . state . startLineIndex ,
311- scenario : " promptToCode " ,
312- colorScheme : colorScheme ,
313- firstLinePrecedingSpaceCount : viewStore . state
314- . firstLinePrecedingSpaceCount ,
315- font : codeFont . value . nsFont ,
316- droppingLeadingSpaces : hideCommonPrecedingSpaces ,
317- proposedForegroundColor : codeForegroundColor
318- )
319- . frame ( maxWidth : . infinity )
320- . scaleEffect ( x : 1 , y : - 1 , anchor : . center )
308+ if wrapCode {
309+ codeBlock ( viewStore. state)
310+ } else {
311+ ScrollView ( . horizontal ) {
312+ codeBlock ( viewStore . state )
313+ }
314+ . modify {
315+ if #available ( macOS 13 . 0 , * ) {
316+ $0 . scrollIndicators ( . hidden )
317+ } else {
318+ $0
319+ }
320+ }
321+ }
321322 }
322323 }
323324 }
324- . background ( codeBackgroundColor)
325325 }
326+ . background ( codeBackgroundColor)
327+ . scaleEffect ( x: 1 , y: - 1 , anchor: . center)
328+ }
329+
330+ func codeBlock( _ state: CodeContent ) -> some View {
331+ CodeBlock (
332+ code: state. code,
333+ language: state. language,
334+ startLineIndex: state. startLineIndex,
335+ scenario: " promptToCode " ,
336+ colorScheme: colorScheme,
337+ firstLinePrecedingSpaceCount: state. firstLinePrecedingSpaceCount,
338+ font: codeFont. value. nsFont,
339+ droppingLeadingSpaces: hideCommonPrecedingSpaces,
340+ proposedForegroundColor: codeForegroundColor
341+ )
342+ . frame ( maxWidth: . infinity)
326343 . scaleEffect ( x: 1 , y: - 1 , anchor: . center)
327344 }
328345 }
0 commit comments