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

1fn main() {
2 let number = 11;
3 if number % 2 == 0 {
4 println!("Even");
5 } else {
6 println!("Odd");
7 }
8}
9

After

1fn main() {
2 let number = 11;
3 if number == 0 {
4 println!("Zero");
5 } else if number % 2 == 0 {
6 println!("Even");
7 } else {
8 println!("Odd");
9 }
10}
11

Before

source_file
function_item
fn "fn"
identifier "main"
parameters
( "("
) ")"
block
{ "{"
let_declaration
let "let"
identifier "number"
= "="
integer_literal "11"
; ";"
expression_statement
if_expression (+41 nodes collapsed)
} "}"

After

source_file
function_item
fn "fn"
identifier "main"
parameters
( "("
) ")"
block
{ "{"
let_declaration
let "let"
identifier "number"
= "="
integer_literal "11"
; ";"
expression_statement
if_expression
if "if"
binary_expression
identifier "number"
== "=="
integer_literal "0"
block
{ "{"
expression_statement
macro_invocation
identifier "println"
! "!"
token_tree
( "("
string_literal
" "\""
string_content "Zero"
" "\""
) ")"
; ";"
} "}"
else_clause
else "else"
if_expression (+41 nodes collapsed)
} "}"