Code view:

A painting is a person's account of this edit as text, recorded independently of the node mapping - a rendering often has several equally defensible answers where the mapping has one. Deletions and insertions carry no position on the opposite side in a painting, so that panel draws no caret for them.

Before

…lines 1–26 unchanged (26 lines)
27impl RenderOnce for DiffStat {
28 fn render(self, _: &mut Window, _cx: &mut App) -> impl IntoElement {
29 h_flex()
30 .id(self.id)
31 .gap_1()
32 .child(
33 h_flex()
34 .gap_0p5()
35 .child(
36 Icon::new(IconName::Plus)
37 .size(IconSize::XSmall)
38 .color(Color::Success),
39 )
40 .child(
41 Label::new(self.added.to_string())
42 .color(Color::Success)
43 .size(self.label_size),
44 ),
45 )
46 .child(
47 h_flex()
48 .gap_0p5()
49 .child(
50 Icon::new(IconName::Dash)
51 .size(IconSize::XSmall)
52 .color(Color::Error),
53 )
54 .child(
55 Label::new(self.removed.to_string())
56 .color(Color::Error)
57 .size(self.label_size),
58 ),
59 )
60 }
61}
62
63impl Component for DiffStat {
64 fn scope() -> ComponentScope {
…lines 65–93 unchanged (29 lines)

After

…lines 1–26 unchanged (26 lines)
27impl RenderOnce for DiffStat {
28 fn render(self, _: &mut Window, _cx: &mut App) -> impl IntoElement {
29 h_flex()
30 .id(self.id)
31 .gap_1()
32 .child(
33 Label::new(format!("+\u{2009}{}", self.added))
34 .color(Color::Success)
35 .size(self.label_size),
36 )
37 .child(
38 Label::new(format!("\u{2012}\u{2009}{}", self.removed))
39 .color(Color::Error)
40 .size(self.label_size),
41 )
42 }
43}
44
45impl Component for DiffStat {
46 fn scope() -> ComponentScope {
…lines 47–75 unchanged (29 lines)

Before

source_file
use_declaration
use "use"
use_wildcard
scoped_identifier
crate "crate"
:: "::"
identifier "prelude"
:: "::"
* "*"
; ";"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "IntoElement"
, ","
identifier "RegisterComponent"
) ")"
] "]"
struct_item (+28 nodes collapsed)
impl_item (+102 nodes collapsed)
impl_item
impl "impl"
type_identifier "RenderOnce"
for "for"
type_identifier "DiffStat"
declaration_list
{ "{"
function_item
fn "fn"
identifier "render"
parameters (+21 nodes collapsed)
-> "->"
abstract_type
impl "impl"
type_identifier "IntoElement"
block
{ "{"
call_expression
field_expression
call_expression
field_expression (+26 nodes collapsed)
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
field_expression
call_expression
identifier "h_flex"
arguments
( "("
) ")"
. "."
field_identifier "gap_0p5"
arguments
( "("
) ")"
. "."
field_identifier "child"
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
scoped_identifier
identifier "Icon"
:: "::"
identifier "new"
arguments
( "("
scoped_identifier
identifier "IconName"
:: "::"
identifier "Plus"
) ")"
. "."
field_identifier "size"
arguments
( "("
scoped_identifier
identifier "IconSize"
:: "::"
identifier "XSmall"
) ")"
. "."
field_identifier "color"
arguments
( "("
scoped_identifier
identifier "Color"
:: "::"
identifier "Success"
) ")"
, ","
) ")"
. "."
field_identifier "child"
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
scoped_identifier
identifier "Label"
:: "::"
identifier "new"
arguments
( "("
call_expression
field_expression
field_expression
self "self"
. "."
field_identifier "added"
. "."
field_identifier "to_string"
arguments
( "("
) ")"
) ")"
. "."
field_identifier "color"
arguments
( "("
scoped_identifier
identifier "Color"
:: "::"
identifier "Success"
) ")"
. "."
field_identifier "size"
arguments
( "("
field_expression
self "self"
. "."
field_identifier "label_size"
) ")"
, ","
) ")"
, ","
) ")"
. "."
field_identifier "child"
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
field_expression
call_expression
identifier "h_flex"
arguments
( "("
) ")"
. "."
field_identifier "gap_0p5"
arguments
( "("
) ")"
. "."
field_identifier "child"
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
scoped_identifier
identifier "Icon"
:: "::"
identifier "new"
arguments
( "("
scoped_identifier
identifier "IconName"
:: "::"
identifier "Dash"
) ")"
. "."
field_identifier "size"
arguments
( "("
scoped_identifier
identifier "IconSize"
:: "::"
identifier "XSmall"
) ")"
. "."
field_identifier "color"
arguments
( "("
scoped_identifier
identifier "Color"
:: "::"
identifier "Error"
) ")"
, ","
) ")"
. "."
field_identifier "child"
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
scoped_identifier
identifier "Label"
:: "::"
identifier "new"
arguments
( "("
call_expression
field_expression
field_expression
self "self"
. "."
field_identifier "removed"
. "."
field_identifier "to_string"
arguments
( "("
) ")"
) ")"
. "."
field_identifier "color"
arguments
( "("
scoped_identifier
identifier "Color"
:: "::"
identifier "Error"
) ")"
. "."
field_identifier "size"
arguments
( "("
field_expression
self "self"
. "."
field_identifier "label_size"
) ")"
, ","
) ")"
, ","
) ")"
} "}"
} "}"
impl_item (+224 nodes collapsed)

After

source_file
use_declaration
use "use"
use_wildcard
scoped_identifier
crate "crate"
:: "::"
identifier "prelude"
:: "::"
* "*"
; ";"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "IntoElement"
, ","
identifier "RegisterComponent"
) ")"
] "]"
struct_item (+28 nodes collapsed)
impl_item (+102 nodes collapsed)
impl_item
impl "impl"
type_identifier "RenderOnce"
for "for"
type_identifier "DiffStat"
declaration_list
{ "{"
function_item
fn "fn"
identifier "render"
parameters (+21 nodes collapsed)
-> "->"
abstract_type
impl "impl"
type_identifier "IntoElement"
block
{ "{"
call_expression
field_expression
call_expression
field_expression (+26 nodes collapsed)
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
scoped_identifier
identifier "Label"
:: "::"
identifier "new"
arguments
( "("
macro_invocation
identifier "format"
! "!"
token_tree
( "("
string_literal
" "\""
string_content "+"
escape_sequence "\\u{2009}"
string_content "{}"
" "\""
, ","
self "self"
. "."
identifier "added"
) ")"
) ")"
. "."
field_identifier "color"
arguments
( "("
scoped_identifier
identifier "Color"
:: "::"
identifier "Success"
) ")"
. "."
field_identifier "size"
arguments
( "("
field_expression
self "self"
. "."
field_identifier "label_size"
) ")"
, ","
) ")"
. "."
field_identifier "child"
arguments
( "("
call_expression
field_expression
call_expression
field_expression
call_expression
scoped_identifier
identifier "Label"
:: "::"
identifier "new"
arguments
( "("
macro_invocation
identifier "format"
! "!"
token_tree
( "("
string_literal
" "\""
escape_sequence "\\u{2012}"
escape_sequence "\\u{2009}"
string_content "{}"
" "\""
, ","
self "self"
. "."
identifier "removed"
) ")"
) ")"
. "."
field_identifier "color"
arguments
( "("
scoped_identifier
identifier "Color"
:: "::"
identifier "Error"
) ")"
. "."
field_identifier "size"
arguments
( "("
field_expression
self "self"
. "."
field_identifier "label_size"
) ")"
, ","
) ")"
} "}"
} "}"
impl_item (+224 nodes collapsed)