Performance fixture: real-world Rust file pair from zed-industries/zed (crates/git_ui/src/git_panel_settings.rs, commit 00bee4515e2c69fbcedcb7032420ce9dafce6aa7) that takes diff_code roughly 2.4 seconds despite a combined AST size of only 1232 nodes. Captured via research/diff_pairs_benchmark_rust.csv; useful for regression-testing and profiling diff_code's worst-case behavior on medium-sized real-world inputs.

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–25 unchanged (25 lines)
26 pub fallback_branch_name: String,
27 pub sort_by_path: bool,
28 pub collapse_untracked_diff: bool,
29 pub tree_view: bool,
30 pub diff_stats: bool,
31 pub show_count_badge: bool,
32}
33
34impl ScrollbarVisibility for GitPanelSettings {
35 fn visibility(&self, cx: &ui::App) -> ShowScrollbar {
36 // TODO: This PR should have defined Editor's `scrollbar.axis`
37 // as an Option<ScrollbarAxis>, not a ScrollbarAxes as it would allow you to
38 // `.unwrap_or(EditorSettings::get_global(cx).scrollbar.show)`.
…lines 39–62 unchanged (24 lines)
63 fallback_branch_name: git_panel.fallback_branch_name.unwrap(),
64 sort_by_path: git_panel.sort_by_path.unwrap(),
65 collapse_untracked_diff: git_panel.collapse_untracked_diff.unwrap(),
66 tree_view: git_panel.tree_view.unwrap(),
67 diff_stats: git_panel.diff_stats.unwrap(),
68 show_count_badge: git_panel.show_count_badge.unwrap(),
69 }
70 }
71}
72

After

…lines 1–25 unchanged (25 lines)
26 pub fallback_branch_name: String,
27 pub sort_by_path: bool,
28 pub collapse_untracked_diff: bool,
29 pub tree_view: bool,
30 pub diff_stats: bool,
31 pub show_count_badge: bool,
32 pub starts_open: bool,
33}
34
35impl ScrollbarVisibility for GitPanelSettings {
36 fn visibility(&self, cx: &ui::App) -> ShowScrollbar {
37 // TODO: This PR should have defined Editor's `scrollbar.axis`
38 // as an Option<ScrollbarAxis>, not a ScrollbarAxes as it would allow you to
…lines 39–63 unchanged (25 lines)
64 fallback_branch_name: git_panel.fallback_branch_name.unwrap(),
65 sort_by_path: git_panel.sort_by_path.unwrap(),
66 collapse_untracked_diff: git_panel.collapse_untracked_diff.unwrap(),
67 tree_view: git_panel.tree_view.unwrap(),
68 diff_stats: git_panel.diff_stats.unwrap(),
69 show_count_badge: git_panel.show_count_badge.unwrap(),
70 starts_open: git_panel.starts_open.unwrap(),
71 }
72 }
73}
74

Before

source_file
use_declaration
use "use"
scoped_identifier
identifier "editor"
:: "::"
identifier "EditorSettings"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "gpui"
:: "::"
identifier "Pixels"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "schemars"
:: "::"
identifier "JsonSchema"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "serde"
:: "::"
use_list
{ "{"
identifier "Deserialize"
, ","
identifier "Serialize"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "settings"
:: "::"
use_list
{ "{"
identifier "RegisterSetting"
, ","
identifier "Settings"
, ","
identifier "StatusStyle"
} "}"
; ";"
use_declaration (+21 nodes collapsed)
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "workspace"
:: "::"
identifier "dock"
:: "::"
identifier "DockPosition"
; ";"
attribute_item (+24 nodes collapsed)
struct_item
visibility_modifier
pub "pub"
struct "struct"
type_identifier "ScrollbarSettings"
field_declaration_list
{ "{"
field_declaration
visibility_modifier
pub "pub"
field_identifier "show"
: ":"
generic_type
type_identifier "Option"
type_arguments
< "<"
type_identifier "ShowScrollbar"
> ">"
, ","
} "}"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
, ","
identifier "PartialEq"
, ","
identifier "RegisterSetting"
) ")"
] "]"
struct_item
visibility_modifier
pub "pub"
struct "struct"
type_identifier "GitPanelSettings"
field_declaration_list
{ "{"
field_declaration
visibility_modifier
pub "pub"
field_identifier "button"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "dock"
: ":"
type_identifier "DockPosition"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "default_width"
: ":"
type_identifier "Pixels"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "status_style"
: ":"
type_identifier "StatusStyle"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "file_icons"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "folder_icons"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "scrollbar"
: ":"
type_identifier "ScrollbarSettings"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "fallback_branch_name"
: ":"
type_identifier "String"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "sort_by_path"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "collapse_untracked_diff"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "tree_view"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "diff_stats"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "show_count_badge"
: ":"
primitive_type "bool"
, ","
} "}"
impl_item (+81 nodes collapsed)
impl_item
impl "impl"
type_identifier "Settings"
for "for"
type_identifier "GitPanelSettings"
declaration_list
{ "{"
function_item
fn "fn"
identifier "from_settings"
parameters
( "("
parameter
identifier "content"
: ":"
reference_type
& "&"
scoped_type_identifier
identifier "settings"
:: "::"
type_identifier "SettingsContent"
) ")"
-> "->"
type_identifier "Self"
block
{ "{"
let_declaration (+23 nodes collapsed)
struct_expression
type_identifier "Self"
field_initializer_list
{ "{"
field_initializer
field_identifier "button"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "button"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer (+21 nodes collapsed)
, ","
field_initializer
field_identifier "default_width"
: ":"
call_expression
identifier "px"
arguments
( "("
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "default_width"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
) ")"
, ","
field_initializer
field_identifier "status_style"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "status_style"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "file_icons"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "file_icons"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "folder_icons"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "folder_icons"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer (+37 nodes collapsed)
, ","
field_initializer
field_identifier "fallback_branch_name"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "fallback_branch_name"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "sort_by_path"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "sort_by_path"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "collapse_untracked_diff"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "collapse_untracked_diff"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "tree_view"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "tree_view"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "diff_stats"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "diff_stats"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "show_count_badge"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "show_count_badge"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
} "}"
} "}"
} "}"

After

source_file
use_declaration
use "use"
scoped_identifier
identifier "editor"
:: "::"
identifier "EditorSettings"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "gpui"
:: "::"
identifier "Pixels"
; ";"
use_declaration
use "use"
scoped_identifier
identifier "schemars"
:: "::"
identifier "JsonSchema"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "serde"
:: "::"
use_list
{ "{"
identifier "Deserialize"
, ","
identifier "Serialize"
} "}"
; ";"
use_declaration
use "use"
scoped_use_list
identifier "settings"
:: "::"
use_list
{ "{"
identifier "RegisterSetting"
, ","
identifier "Settings"
, ","
identifier "StatusStyle"
} "}"
; ";"
use_declaration (+21 nodes collapsed)
use_declaration
use "use"
scoped_identifier
scoped_identifier
identifier "workspace"
:: "::"
identifier "dock"
:: "::"
identifier "DockPosition"
; ";"
attribute_item (+24 nodes collapsed)
struct_item
visibility_modifier
pub "pub"
struct "struct"
type_identifier "ScrollbarSettings"
field_declaration_list
{ "{"
field_declaration
visibility_modifier
pub "pub"
field_identifier "show"
: ":"
generic_type
type_identifier "Option"
type_arguments
< "<"
type_identifier "ShowScrollbar"
> ">"
, ","
} "}"
attribute_item
# "#"
[ "["
attribute
identifier "derive"
token_tree
( "("
identifier "Debug"
, ","
identifier "Clone"
, ","
identifier "PartialEq"
, ","
identifier "RegisterSetting"
) ")"
] "]"
struct_item
visibility_modifier
pub "pub"
struct "struct"
type_identifier "GitPanelSettings"
field_declaration_list
{ "{"
field_declaration
visibility_modifier
pub "pub"
field_identifier "button"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "dock"
: ":"
type_identifier "DockPosition"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "default_width"
: ":"
type_identifier "Pixels"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "status_style"
: ":"
type_identifier "StatusStyle"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "file_icons"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "folder_icons"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "scrollbar"
: ":"
type_identifier "ScrollbarSettings"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "fallback_branch_name"
: ":"
type_identifier "String"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "sort_by_path"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "collapse_untracked_diff"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "tree_view"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "diff_stats"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "show_count_badge"
: ":"
primitive_type "bool"
, ","
field_declaration
visibility_modifier
pub "pub"
field_identifier "starts_open"
: ":"
primitive_type "bool"
, ","
} "}"
impl_item (+81 nodes collapsed)
impl_item
impl "impl"
type_identifier "Settings"
for "for"
type_identifier "GitPanelSettings"
declaration_list
{ "{"
function_item
fn "fn"
identifier "from_settings"
parameters
( "("
parameter
identifier "content"
: ":"
reference_type
& "&"
scoped_type_identifier
identifier "settings"
:: "::"
type_identifier "SettingsContent"
) ")"
-> "->"
type_identifier "Self"
block
{ "{"
let_declaration (+23 nodes collapsed)
struct_expression
type_identifier "Self"
field_initializer_list
{ "{"
field_initializer
field_identifier "button"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "button"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer (+21 nodes collapsed)
, ","
field_initializer
field_identifier "default_width"
: ":"
call_expression
identifier "px"
arguments
( "("
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "default_width"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
) ")"
, ","
field_initializer
field_identifier "status_style"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "status_style"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "file_icons"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "file_icons"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "folder_icons"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "folder_icons"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer (+37 nodes collapsed)
, ","
field_initializer
field_identifier "fallback_branch_name"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "fallback_branch_name"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "sort_by_path"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "sort_by_path"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "collapse_untracked_diff"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "collapse_untracked_diff"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "tree_view"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "tree_view"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "diff_stats"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "diff_stats"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "show_count_badge"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "show_count_badge"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
field_initializer
field_identifier "starts_open"
: ":"
call_expression
field_expression
field_expression
identifier "git_panel"
. "."
field_identifier "starts_open"
. "."
field_identifier "unwrap"
arguments
( "("
) ")"
, ","
} "}"
} "}"
} "}"