MCPcopy Create free account
hub / github.com/ChrisFeldmeier/OpenCodeRust / render_split

Method render_split

crates/opencode-tui/src/components/diff.rs:278–367  ·  view source on GitHub ↗
(&self, frame: &mut Frame, area: Rect, theme: &Theme)

Source from the content-addressed store, hash-verified

276 }
277
278 fn render_split(&self, frame: &mut Frame, area: Rect, theme: &Theme) {
279 let constraints = vec![Constraint::Percentage(50), Constraint::Percentage(50)];
280 let chunks = Layout::default()
281 .direction(Direction::Horizontal)
282 .constraints(constraints)
283 .split(area);
284
285 let mut old_lines = Vec::new();
286 let mut new_lines = Vec::new();
287
288 for diff_line in &self.lines {
289 match diff_line.line_type {
290 DiffLineType::Removed => {
291 old_lines.push(Line::from(vec![
292 Span::styled(
293 format!("{:4}", diff_line.old_line_num.unwrap_or(0)),
294 Style::default().fg(theme.text_muted),
295 ),
296 Span::styled(
297 diff_line.content.clone(),
298 Style::default().fg(theme.diff_removed),
299 ),
300 ]));
301 new_lines.push(Line::from(""));
302 }
303 DiffLineType::Added => {
304 old_lines.push(Line::from(""));
305 new_lines.push(Line::from(vec![
306 Span::styled(
307 format!("{:4}", diff_line.new_line_num.unwrap_or(0)),
308 Style::default().fg(theme.text_muted),
309 ),
310 Span::styled(
311 diff_line.content.clone(),
312 Style::default().fg(theme.diff_added),
313 ),
314 ]));
315 }
316 DiffLineType::Context => {
317 old_lines.push(Line::from(vec![
318 Span::styled(
319 format!("{:4}", diff_line.old_line_num.unwrap_or(0)),
320 Style::default().fg(theme.text_muted),
321 ),
322 Span::styled(diff_line.content.clone(), Style::default().fg(theme.text)),
323 ]));
324 new_lines.push(Line::from(vec![
325 Span::styled(
326 format!("{:4}", diff_line.new_line_num.unwrap_or(0)),
327 Style::default().fg(theme.text_muted),
328 ),
329 Span::styled(diff_line.content.clone(), Style::default().fg(theme.text)),
330 ]));
331 }
332 DiffLineType::HunkHeader => {
333 old_lines.push(Line::from(Span::styled(
334 diff_line.content.clone(),
335 Style::default().fg(theme.primary),

Callers 1

renderMethod · 0.80

Calls 3

newFunction · 0.85
cloneMethod · 0.45
titleMethod · 0.45

Tested by

no test coverage detected