@@ -173,41 +173,48 @@ public struct PromptToCodePanel {
173173 range: snippet. attachedRange,
174174 references: context. references,
175175 topics: context. topics
176- ) ) . timedDebounce ( for: 0.4 )
176+ ) ) . map {
177+ switch $0 {
178+ case let . code( code) :
179+ return ( code: code, description: " " )
180+ case let . explanation( explanation) :
181+ return ( code: " " , description: explanation)
182+ }
183+ } . timedDebounce ( for: 0.4 ) { lhs, rhs in
184+ (
185+ code: lhs. code + rhs. code,
186+ description: lhs. description + rhs. description
187+ )
188+ }
177189
178190 do {
179191 for try await response in stream {
180192 try Task . checkCancellation ( )
181-
182- switch response {
183- case let . code( code) :
184- await send ( . snippetPanel( . element(
185- id: snippet. id,
186- action: . modifyCodeChunkReceived(
187- code: code,
188- description: " "
189- )
190- ) ) )
191- case let . explanation( explanation) :
192- await send ( . snippetPanel( . element(
193- id: snippet. id,
194- action: . modifyCodeChunkReceived(
195- code: " " ,
196- description: explanation
197- )
198- ) ) )
199- }
193+ await send ( . snippetPanel( . element(
194+ id: snippet. id,
195+ action: . modifyCodeChunkReceived(
196+ code: response. code,
197+ description: response. description
198+ )
199+ ) ) )
200200 }
201+ await send ( . snippetPanel( . element(
202+ id: snippet. id,
203+ action: . modifyCodeFinished
204+ ) ) )
201205 } catch is CancellationError {
206+ await send ( . snippetPanel( . element(
207+ id: snippet. id,
208+ action: . modifyCodeFinished
209+ ) ) )
202210 throw CancellationError ( )
203211 } catch {
204- try Task . checkCancellation ( )
205212 if ( error as NSError ) . code == NSURLErrorCancelled {
206213 await send ( . snippetPanel( . element(
207214 id: snippet. id,
208- action: . modifyCodeFailed ( error : " Cancelled " )
215+ action: . modifyCodeFinished
209216 ) ) )
210- return
217+ throw CancellationError ( )
211218 }
212219 await send ( . snippetPanel( . element(
213220 id: snippet. id,
0 commit comments