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–137 unchanged (137 lines)
138 "/usr/libexec",
139 ];
140
141 for file in [
142 "WebKitNetworkProcess",
143 "WebKitWebProcess",
144 "libwebkit2gtkinjectedbundle.so",
145 ] {
146 for source in search_dirs.map(PathBuf::from) {
147 // TODO: Check if it's the same dir name on all systems
148 let source = source.join("webkit2gtk-4.1").join(file);
149 if source.exists() {
150 fs_utils::copy_file(
…lines 151–266 unchanged (116 lines)

After

…lines 1–137 unchanged (137 lines)
138 "/usr/libexec",
139 ];
140
141 for file in [
142 "WebKitNetworkProcess",
143 "WebKitWebProcess",
144 "injected-bundle/libwebkit2gtkinjectedbundle.so",
145 ] {
146 for source in search_dirs.map(PathBuf::from) {
147 // TODO: Check if it's the same dir name on all systems
148 let source = source.join("webkit2gtk-4.1").join(file);
149 if source.exists() {
150 fs_utils::copy_file(
…lines 151–266 unchanged (116 lines)

Before

source_file
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
use_declaration
use "use"
scoped_identifier
super "super"
:: "::"
identifier "debian"
; ";"
use_declaration (+34 nodes collapsed)
use_declaration
use "use"
scoped_identifier
identifier "anyhow"
:: "::"
identifier "Context"
; ";"
use_declaration (+26 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Bundles the project.\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Returns a vector of PathBuf that shows where the AppImage w"...
function_item
visibility_modifier
pub "pub"
fn "fn"
identifier "bundle_project"
parameters
( "("
parameter
identifier "settings"
: ":"
reference_type
& "&"
type_identifier "Settings"
) ")"
-> "->"
generic_type
scoped_type_identifier
crate "crate"
:: "::"
type_identifier "Result"
type_arguments
< "<"
generic_type
type_identifier "Vec"
type_arguments
< "<"
type_identifier "PathBuf"
> ">"
> ">"
block
{ "{"
line_comment
// "//"
let_declaration (+109 nodes collapsed)
let_declaration (+35 nodes collapsed)
let_declaration (+24 nodes collapsed)
expression_statement (+29 nodes collapsed)
let_declaration (+96 nodes collapsed)
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "tools_path"
) ")"
? "?"
; ";"
let_declaration
let "let"
identifier "linuxdeploy_path"
= "="
try_expression
call_expression
identifier "prepare_tools"
arguments
( "("
reference_expression
& "&"
identifier "tools_path"
, ","
identifier "tools_arch"
) ")"
? "?"
; ";"
let_declaration (+24 nodes collapsed)
let_declaration
let "let"
identifier "main_binary"
= "="
try_expression
call_expression
field_expression
identifier "settings"
. "."
field_identifier "main_binary"
arguments
( "("
) ")"
? "?"
; ";"
let_declaration
let "let"
identifier "product_name"
= "="
call_expression
field_expression
identifier "settings"
. "."
field_identifier "product_name"
arguments
( "("
) ")"
; ";"
let_declaration
let "let"
mutable_specifier "mut"
identifier "settings"
= "="
call_expression
field_expression
identifier "settings"
. "."
field_identifier "clone"
arguments
( "("
) ")"
; ";"
expression_statement (+134 nodes collapsed)
line_comment
// "//"
let_declaration (+42 nodes collapsed)
expression_statement (+44 nodes collapsed)
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "output_path"
) ")"
? "?"
; ";"
let_declaration (+30 nodes collapsed)
let_declaration (+31 nodes collapsed)
let_declaration
let "let"
identifier "appimage_path"
= "="
call_expression
field_expression
identifier "output_path"
. "."
field_identifier "join"
arguments
( "("
reference_expression
& "&"
identifier "appimage_filename"
) ")"
; ";"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs_utils"
:: "::"
identifier "create_dir"
arguments
( "("
reference_expression
& "&"
identifier "app_dir_path"
, ","
boolean_literal
true "true"
) ")"
? "?"
; ";"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "tools_path"
) ")"
? "?"
; ";"
let_declaration (+62 nodes collapsed)
let_declaration (+49 nodes collapsed)
expression_statement (+31 nodes collapsed)
let_declaration
let "let"
identifier "app_dir_usr"
= "="
call_expression
field_expression
identifier "app_dir_path"
. "."
field_identifier "join"
arguments
( "("
string_literal
" "\""
string_content "usr/"
" "\""
) ")"
; ";"
let_declaration
let "let"
identifier "app_dir_usr_bin"
= "="
call_expression
field_expression
identifier "app_dir_usr"
. "."
field_identifier "join"
arguments
( "("
string_literal
" "\""
string_content "bin/"
" "\""
) ")"
; ";"
let_declaration
let "let"
identifier "app_dir_usr_lib"
= "="
call_expression
field_expression
identifier "app_dir_usr"
. "."
field_identifier "join"
arguments
( "("
string_literal
" "\""
string_content "lib/"
" "\""
) ")"
; ";"
expression_statement (+30 nodes collapsed)
line_comment
// "//"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "app_dir_usr_bin"
) ")"
? "?"
; ";"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
identifier "app_dir_usr_lib"
) ")"
? "?"
; ";"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
expression_statement (+84 nodes collapsed)
line_comment
// "//"
expression_statement (+80 nodes collapsed)
let_declaration (+96 nodes collapsed)
expression_statement
for_expression
for "for"
identifier "file"
in "in"
array_expression
[ "["
string_literal
" "\""
string_content "WebKitNetworkProcess"
" "\""
, ","
string_literal
" "\""
string_content "WebKitWebProcess"
" "\""
, ","
string_literal
" "\""
string_content "libwebkit2gtkinjectedbundle.so"
" "\""
, ","
] "]"
block (+110 nodes collapsed)
expression_statement (+44 nodes collapsed)
expression_statement (+41 nodes collapsed)
expression_statement (+53 nodes collapsed)
expression_statement (+59 nodes collapsed)
let_declaration (+72 nodes collapsed)
let_declaration
let "let"
mutable_specifier "mut"
identifier "cmd"
= "="
call_expression
scoped_identifier
identifier "Command"
:: "::"
identifier "new"
arguments
( "("
identifier "linuxdeploy_path"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "cmd"
. "."
field_identifier "env"
arguments
( "("
string_literal
" "\""
string_content "OUTPUT"
" "\""
, ","
reference_expression
& "&"
identifier "appimage_path"
) ")"
; ";"
expression_statement (+58 nodes collapsed)
expression_statement (+39 nodes collapsed)
expression_statement (+22 nodes collapsed)
line_comment
// "//"
expression_statement (+169 nodes collapsed)
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "remove_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "package_dir"
) ")"
? "?"
; ";"
call_expression
identifier "Ok"
arguments
( "("
macro_invocation
identifier "vec"
! "!"
token_tree
[ "["
identifier "appimage_path"
] "]"
) ")"
} "}"
line_comment
// "//"
function_item (+426 nodes collapsed)
function_item (+105 nodes collapsed)

After

source_file
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
use_declaration
use "use"
scoped_identifier
super "super"
:: "::"
identifier "debian"
; ";"
use_declaration (+34 nodes collapsed)
use_declaration
use "use"
scoped_identifier
identifier "anyhow"
:: "::"
identifier "Context"
; ";"
use_declaration (+26 nodes collapsed)
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Bundles the project.\n"
line_comment
// "//"
outer_doc_comment_marker
/ "/"
doc_comment " Returns a vector of PathBuf that shows where the AppImage w"...
function_item
visibility_modifier
pub "pub"
fn "fn"
identifier "bundle_project"
parameters
( "("
parameter
identifier "settings"
: ":"
reference_type
& "&"
type_identifier "Settings"
) ")"
-> "->"
generic_type
scoped_type_identifier
crate "crate"
:: "::"
type_identifier "Result"
type_arguments
< "<"
generic_type
type_identifier "Vec"
type_arguments
< "<"
type_identifier "PathBuf"
> ">"
> ">"
block
{ "{"
line_comment
// "//"
let_declaration (+109 nodes collapsed)
let_declaration (+35 nodes collapsed)
let_declaration (+24 nodes collapsed)
expression_statement (+29 nodes collapsed)
let_declaration (+96 nodes collapsed)
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "tools_path"
) ")"
? "?"
; ";"
let_declaration
let "let"
identifier "linuxdeploy_path"
= "="
try_expression
call_expression
identifier "prepare_tools"
arguments
( "("
reference_expression
& "&"
identifier "tools_path"
, ","
identifier "tools_arch"
) ")"
? "?"
; ";"
let_declaration (+24 nodes collapsed)
let_declaration
let "let"
identifier "main_binary"
= "="
try_expression
call_expression
field_expression
identifier "settings"
. "."
field_identifier "main_binary"
arguments
( "("
) ")"
? "?"
; ";"
let_declaration
let "let"
identifier "product_name"
= "="
call_expression
field_expression
identifier "settings"
. "."
field_identifier "product_name"
arguments
( "("
) ")"
; ";"
let_declaration
let "let"
mutable_specifier "mut"
identifier "settings"
= "="
call_expression
field_expression
identifier "settings"
. "."
field_identifier "clone"
arguments
( "("
) ")"
; ";"
expression_statement (+134 nodes collapsed)
line_comment
// "//"
let_declaration (+42 nodes collapsed)
expression_statement (+44 nodes collapsed)
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "output_path"
) ")"
? "?"
; ";"
let_declaration (+30 nodes collapsed)
let_declaration (+31 nodes collapsed)
let_declaration
let "let"
identifier "appimage_path"
= "="
call_expression
field_expression
identifier "output_path"
. "."
field_identifier "join"
arguments
( "("
reference_expression
& "&"
identifier "appimage_filename"
) ")"
; ";"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs_utils"
:: "::"
identifier "create_dir"
arguments
( "("
reference_expression
& "&"
identifier "app_dir_path"
, ","
boolean_literal
true "true"
) ")"
? "?"
; ";"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "tools_path"
) ")"
? "?"
; ";"
let_declaration (+62 nodes collapsed)
let_declaration (+49 nodes collapsed)
expression_statement (+31 nodes collapsed)
let_declaration
let "let"
identifier "app_dir_usr"
= "="
call_expression
field_expression
identifier "app_dir_path"
. "."
field_identifier "join"
arguments
( "("
string_literal
" "\""
string_content "usr/"
" "\""
) ")"
; ";"
let_declaration
let "let"
identifier "app_dir_usr_bin"
= "="
call_expression
field_expression
identifier "app_dir_usr"
. "."
field_identifier "join"
arguments
( "("
string_literal
" "\""
string_content "bin/"
" "\""
) ")"
; ";"
let_declaration
let "let"
identifier "app_dir_usr_lib"
= "="
call_expression
field_expression
identifier "app_dir_usr"
. "."
field_identifier "join"
arguments
( "("
string_literal
" "\""
string_content "lib/"
" "\""
) ")"
; ";"
expression_statement (+30 nodes collapsed)
line_comment
// "//"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "app_dir_usr_bin"
) ")"
? "?"
; ";"
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "create_dir_all"
arguments
( "("
identifier "app_dir_usr_lib"
) ")"
? "?"
; ";"
line_comment
// "//"
line_comment
// "//"
line_comment
// "//"
expression_statement (+84 nodes collapsed)
line_comment
// "//"
expression_statement (+80 nodes collapsed)
let_declaration (+96 nodes collapsed)
expression_statement
for_expression
for "for"
identifier "file"
in "in"
array_expression
[ "["
string_literal
" "\""
string_content "WebKitNetworkProcess"
" "\""
, ","
string_literal
" "\""
string_content "WebKitWebProcess"
" "\""
, ","
string_literal
" "\""
string_content "injected-bundle/libwebkit2gtkinjectedbundle.so"
" "\""
, ","
] "]"
block (+110 nodes collapsed)
expression_statement (+44 nodes collapsed)
expression_statement (+41 nodes collapsed)
expression_statement (+53 nodes collapsed)
expression_statement (+59 nodes collapsed)
let_declaration (+72 nodes collapsed)
let_declaration
let "let"
mutable_specifier "mut"
identifier "cmd"
= "="
call_expression
scoped_identifier
identifier "Command"
:: "::"
identifier "new"
arguments
( "("
identifier "linuxdeploy_path"
) ")"
; ";"
expression_statement
call_expression
field_expression
identifier "cmd"
. "."
field_identifier "env"
arguments
( "("
string_literal
" "\""
string_content "OUTPUT"
" "\""
, ","
reference_expression
& "&"
identifier "appimage_path"
) ")"
; ";"
expression_statement (+58 nodes collapsed)
expression_statement (+39 nodes collapsed)
expression_statement (+22 nodes collapsed)
line_comment
// "//"
expression_statement (+169 nodes collapsed)
expression_statement
try_expression
call_expression
scoped_identifier
identifier "fs"
:: "::"
identifier "remove_dir_all"
arguments
( "("
reference_expression
& "&"
identifier "package_dir"
) ")"
? "?"
; ";"
call_expression
identifier "Ok"
arguments
( "("
macro_invocation
identifier "vec"
! "!"
token_tree
[ "["
identifier "appimage_path"
] "]"
) ")"
} "}"
line_comment
// "//"
function_item (+426 nodes collapsed)
function_item (+105 nodes collapsed)