| 464 | } |
| 465 | |
| 466 | let blocking_generation_clock = worker_generation_clock.clone(); |
| 467 | let prepared = tokio::task::spawn_blocking(move || { |
| 468 | if blocking_generation_clock.load(Ordering::Acquire) != generation { |
| 469 | return None; |
| 470 | } |
| 471 | let content = if formatted { |
| 472 | snapshot.formatted_body() |
| 473 | } else { |
| 474 | snapshot.raw_body() |
| 475 | }; |
| 476 | let model = if should_virtualize_response_text(&content) { |
| 477 | let rows = Arc::new(virtual_text_rows(&content)); |
| 478 | PreparedTextModel::Virtual { |
| 479 | content: content.clone(), |
| 480 | rows, |
| 481 | } |
| 482 | } else { |
| 483 | PreparedTextModel::Editor(CodeEditorState::prepare_with_language( |
| 484 | content.to_string(), |
| 485 | key.language, |
| 486 | )) |
| 487 | }; |
| 488 | Some((content, model)) |
| 489 | }) |