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–2688 unchanged (2688 lines)
2689 tmux.send_keys 'f'
2690 tmux.until do |lines|
2691 assert_equal '::', lines[0]
2692 assert_equal ' 3', lines[1]
2693 end
2694 end
2695
2696 def test_change_preview_window_rotate
2697 tmux.send_keys "seq 100 | #{FZF} --preview-window left,border-none --preview 'echo hello' --bind '" \
2698 "a:change-preview-window(right|down|up|hidden|)'", :Enter
2699 tmux.until { |lines| assert(lines.any? { _1.include?('100/100') }) }
2700 3.times do
2701 tmux.until { |lines| lines[0].start_with?('hello') }
…lines 2702–3791 unchanged (1090 lines)

After

…lines 1–2689 unchanged (2689 lines)
2690 tmux.until do |lines|
2691 assert_equal '::', lines[0]
2692 assert_equal ' 3', lines[1]
2693 end
2694 end
2695
2696 def test_change_preview_window_should_not_reset_change_preview
2697 tmux.send_keys "#{FZF} --preview-window up,border-none --bind 'start:change-preview(echo hello)' --bind 'enter:change-preview-window(border-left)'", :Enter
2698 tmux.until { |lines| assert_equal 'hello', lines[0] }
2699 tmux.send_keys :Enter
2700 tmux.until { |lines| assert_equal '│ hello', lines[0] }
2701 end
2702
2703 def test_change_preview_window_rotate
2704 tmux.send_keys "seq 100 | #{FZF} --preview-window left,border-none --preview 'echo hello' --bind '" \
2705 "a:change-preview-window(right|down|up|hidden|)'", :Enter
2706 tmux.until { |lines| assert(lines.any? { _1.include?('100/100') }) }
2707 3.times do
…lines 2708–3798 unchanged (1091 lines)

Before

program
comment "#!/usr/bin/env ruby"
comment "# frozen_string_literal: true"
call
identifier "require"
argument_list
string
" "'"
string_content "minitest/autorun"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "fileutils"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "English"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "shellwords"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "erb"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "tempfile"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "net/http"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "json"
" "'"
assignment
constant "TEMPLATE"
= "="
call
constant "DATA"
. "."
identifier "read"
assignment (+29 nodes collapsed)
assignment
constant "DEFAULT_TIMEOUT"
= "="
integer "10"
assignment
constant "FILE"
= "="
call
constant "File"
. "."
identifier "expand_path"
argument_list
( "("
identifier "__FILE__"
) ")"
assignment
constant "BASE"
= "="
call
constant "File"
. "."
identifier "expand_path"
argument_list
( "("
string
" "'"
string_content ".."
" "'"
, ","
identifier "__dir__"
) ")"
call
constant "Dir"
. "."
identifier "chdir"
argument_list
( "("
constant "BASE"
) ")"
assignment
constant "FZF"
= "="
string
" "\""
string_content "FZF_DEFAULT_OPTS=--no-scrollbar FZF_DEFAULT_COMMAND= "
interpolation
#{ "#{"
constant "BASE"
} "}"
string_content "/bin/fzf"
" "\""
method (+60 nodes collapsed)
class (+193 nodes collapsed)
class (+714 nodes collapsed)
class (+415 nodes collapsed)
class
class "class"
constant "TestGoFZF"
superclass
< "<"
constant "TestBase"
body_statement
method
def "def"
identifier "setup"
body_statement
super "super"
assignment
instance_variable "@tmux"
= "="
call
constant "Tmux"
. "."
identifier "new"
end "end"
method
def "def"
identifier "teardown"
body_statement
call
instance_variable "@tmux"
. "."
identifier "kill"
end "end"
method (+286 nodes collapsed)
method (+73 nodes collapsed)
method (+61 nodes collapsed)
method (+615 nodes collapsed)
method (+116 nodes collapsed)
method (+171 nodes collapsed)
method (+622 nodes collapsed)
method (+303 nodes collapsed)
method (+276 nodes collapsed)
method (+143 nodes collapsed)
method (+63 nodes collapsed)
method (+61 nodes collapsed)
method (+159 nodes collapsed)
method (+111 nodes collapsed)
method (+196 nodes collapsed)
method (+121 nodes collapsed)
method (+157 nodes collapsed)
method (+159 nodes collapsed)
method (+369 nodes collapsed)
method (+125 nodes collapsed)
method (+124 nodes collapsed)
method (+59 nodes collapsed)
method (+213 nodes collapsed)
method (+93 nodes collapsed)
method (+254 nodes collapsed)
method (+278 nodes collapsed)
method (+62 nodes collapsed)
method (+275 nodes collapsed)
method (+96 nodes collapsed)
method (+148 nodes collapsed)
method (+127 nodes collapsed)
method (+316 nodes collapsed)
method (+22 nodes collapsed)
method (+115 nodes collapsed)
method (+89 nodes collapsed)
method (+132 nodes collapsed)
method (+63 nodes collapsed)
method (+78 nodes collapsed)
method (+483 nodes collapsed)
method (+646 nodes collapsed)
method (+362 nodes collapsed)
method (+352 nodes collapsed)
method (+377 nodes collapsed)
method (+180 nodes collapsed)
method (+283 nodes collapsed)
method (+132 nodes collapsed)
method (+124 nodes collapsed)
method (+130 nodes collapsed)
method (+87 nodes collapsed)
method (+118 nodes collapsed)
method (+140 nodes collapsed)
method (+133 nodes collapsed)
method (+139 nodes collapsed)
method (+160 nodes collapsed)
method (+147 nodes collapsed)
method (+160 nodes collapsed)
method (+95 nodes collapsed)
method (+190 nodes collapsed)
method (+71 nodes collapsed)
method (+62 nodes collapsed)
method (+71 nodes collapsed)
method (+174 nodes collapsed)
method (+47 nodes collapsed)
method (+52 nodes collapsed)
method (+53 nodes collapsed)
method (+23 nodes collapsed)
method (+34 nodes collapsed)
method (+83 nodes collapsed)
method (+125 nodes collapsed)
method (+44 nodes collapsed)
method (+65 nodes collapsed)
method (+83 nodes collapsed)
method (+169 nodes collapsed)
method (+123 nodes collapsed)
method (+428 nodes collapsed)
method (+112 nodes collapsed)
method (+217 nodes collapsed)
method (+56 nodes collapsed)
method (+156 nodes collapsed)
method (+89 nodes collapsed)
method (+430 nodes collapsed)
method (+278 nodes collapsed)
method (+252 nodes collapsed)
method (+160 nodes collapsed)
method (+249 nodes collapsed)
method (+262 nodes collapsed)
method (+270 nodes collapsed)
method (+108 nodes collapsed)
method (+135 nodes collapsed)
method (+67 nodes collapsed)
method (+113 nodes collapsed)
method (+43 nodes collapsed)
method (+43 nodes collapsed)
method (+252 nodes collapsed)
method (+197 nodes collapsed)
method (+104 nodes collapsed)
method (+219 nodes collapsed)
method (+147 nodes collapsed)
method (+82 nodes collapsed)
method (+102 nodes collapsed)
method (+105 nodes collapsed)
method (+137 nodes collapsed)
method (+128 nodes collapsed)
method (+204 nodes collapsed)
method (+170 nodes collapsed)
method (+70 nodes collapsed)
method (+361 nodes collapsed)
method (+189 nodes collapsed)
method (+69 nodes collapsed)
method (+37 nodes collapsed)
method (+69 nodes collapsed)
method (+134 nodes collapsed)
method (+113 nodes collapsed)
method (+73 nodes collapsed)
method (+101 nodes collapsed)
method (+119 nodes collapsed)
method (+119 nodes collapsed)
method (+80 nodes collapsed)
method (+144 nodes collapsed)
method (+167 nodes collapsed)
method (+111 nodes collapsed)
method (+47 nodes collapsed)
method (+154 nodes collapsed)
method (+198 nodes collapsed)
method (+243 nodes collapsed)
method (+73 nodes collapsed)
method (+73 nodes collapsed)
method (+109 nodes collapsed)
method (+158 nodes collapsed)
method (+69 nodes collapsed)
method (+119 nodes collapsed)
method (+605 nodes collapsed)
method (+109 nodes collapsed)
method (+179 nodes collapsed)
method (+262 nodes collapsed)
method (+134 nodes collapsed)
method (+193 nodes collapsed)
method (+163 nodes collapsed)
method (+224 nodes collapsed)
method (+194 nodes collapsed)
method (+333 nodes collapsed)
method (+186 nodes collapsed)
method (+179 nodes collapsed)
method (+80 nodes collapsed)
method (+122 nodes collapsed)
method (+94 nodes collapsed)
method (+126 nodes collapsed)
method (+126 nodes collapsed)
method (+126 nodes collapsed)
method (+126 nodes collapsed)
method (+114 nodes collapsed)
method (+103 nodes collapsed)
method (+285 nodes collapsed)
method (+237 nodes collapsed)
method (+72 nodes collapsed)
method (+66 nodes collapsed)
method (+418 nodes collapsed)
method (+248 nodes collapsed)
method (+246 nodes collapsed)
method (+241 nodes collapsed)
method (+66 nodes collapsed)
method (+94 nodes collapsed)
method (+39 nodes collapsed)
method (+39 nodes collapsed)
method (+39 nodes collapsed)
method (+41 nodes collapsed)
method (+39 nodes collapsed)
method (+60 nodes collapsed)
method (+250 nodes collapsed)
method (+115 nodes collapsed)
method (+142 nodes collapsed)
method (+54 nodes collapsed)
method (+54 nodes collapsed)
method (+58 nodes collapsed)
method (+187 nodes collapsed)
method (+41 nodes collapsed)
method (+41 nodes collapsed)
method (+41 nodes collapsed)
method (+45 nodes collapsed)
method (+42 nodes collapsed)
method (+45 nodes collapsed)
method (+45 nodes collapsed)
method (+80 nodes collapsed)
method (+250 nodes collapsed)
method (+339 nodes collapsed)
method (+274 nodes collapsed)
method (+90 nodes collapsed)
method (+155 nodes collapsed)
method (+50 nodes collapsed)
method (+414 nodes collapsed)
method (+304 nodes collapsed)
method (+207 nodes collapsed)
method (+69 nodes collapsed)
method (+42 nodes collapsed)
method (+73 nodes collapsed)
method (+137 nodes collapsed)
method (+42 nodes collapsed)
method (+128 nodes collapsed)
method (+69 nodes collapsed)
method (+205 nodes collapsed)
end "end"
module (+1483 nodes collapsed)
module (+2380 nodes collapsed)
class (+190 nodes collapsed)
class (+179 nodes collapsed)
class (+101 nodes collapsed)
uninterpreted "\nset -u\nPS1= PROMPT_COMMAND= HISTFILE= HISTSIZE=100\nunset <%"...

After

program
comment "#!/usr/bin/env ruby"
comment "# frozen_string_literal: true"
call
identifier "require"
argument_list
string
" "'"
string_content "minitest/autorun"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "fileutils"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "English"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "shellwords"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "erb"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "tempfile"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "net/http"
" "'"
call
identifier "require"
argument_list
string
" "'"
string_content "json"
" "'"
assignment
constant "TEMPLATE"
= "="
call
constant "DATA"
. "."
identifier "read"
assignment (+29 nodes collapsed)
assignment
constant "DEFAULT_TIMEOUT"
= "="
integer "10"
assignment
constant "FILE"
= "="
call
constant "File"
. "."
identifier "expand_path"
argument_list
( "("
identifier "__FILE__"
) ")"
assignment
constant "BASE"
= "="
call
constant "File"
. "."
identifier "expand_path"
argument_list
( "("
string
" "'"
string_content ".."
" "'"
, ","
identifier "__dir__"
) ")"
call
constant "Dir"
. "."
identifier "chdir"
argument_list
( "("
constant "BASE"
) ")"
assignment
constant "FZF"
= "="
string
" "\""
string_content "FZF_DEFAULT_OPTS=--no-scrollbar FZF_DEFAULT_COMMAND= "
interpolation
#{ "#{"
constant "BASE"
} "}"
string_content "/bin/fzf"
" "\""
method (+60 nodes collapsed)
class (+193 nodes collapsed)
class (+714 nodes collapsed)
class (+415 nodes collapsed)
class
class "class"
constant "TestGoFZF"
superclass
< "<"
constant "TestBase"
body_statement
method
def "def"
identifier "setup"
body_statement
super "super"
assignment
instance_variable "@tmux"
= "="
call
constant "Tmux"
. "."
identifier "new"
end "end"
method
def "def"
identifier "teardown"
body_statement
call
instance_variable "@tmux"
. "."
identifier "kill"
end "end"
method (+286 nodes collapsed)
method (+73 nodes collapsed)
method (+61 nodes collapsed)
method (+615 nodes collapsed)
method (+116 nodes collapsed)
method (+171 nodes collapsed)
method (+622 nodes collapsed)
method (+303 nodes collapsed)
method (+276 nodes collapsed)
method (+143 nodes collapsed)
method (+63 nodes collapsed)
method (+61 nodes collapsed)
method (+159 nodes collapsed)
method (+111 nodes collapsed)
method (+196 nodes collapsed)
method (+121 nodes collapsed)
method (+157 nodes collapsed)
method (+159 nodes collapsed)
method (+369 nodes collapsed)
method (+125 nodes collapsed)
method (+124 nodes collapsed)
method (+59 nodes collapsed)
method (+213 nodes collapsed)
method (+93 nodes collapsed)
method (+254 nodes collapsed)
method (+278 nodes collapsed)
method (+62 nodes collapsed)
method (+275 nodes collapsed)
method (+96 nodes collapsed)
method (+148 nodes collapsed)
method (+127 nodes collapsed)
method (+316 nodes collapsed)
method (+22 nodes collapsed)
method (+115 nodes collapsed)
method (+89 nodes collapsed)
method (+132 nodes collapsed)
method (+63 nodes collapsed)
method (+78 nodes collapsed)
method (+483 nodes collapsed)
method (+646 nodes collapsed)
method (+362 nodes collapsed)
method (+352 nodes collapsed)
method (+377 nodes collapsed)
method (+180 nodes collapsed)
method (+283 nodes collapsed)
method (+132 nodes collapsed)
method (+124 nodes collapsed)
method (+130 nodes collapsed)
method (+87 nodes collapsed)
method (+118 nodes collapsed)
method (+140 nodes collapsed)
method (+133 nodes collapsed)
method (+139 nodes collapsed)
method (+160 nodes collapsed)
method (+147 nodes collapsed)
method (+160 nodes collapsed)
method (+95 nodes collapsed)
method (+190 nodes collapsed)
method (+71 nodes collapsed)
method (+62 nodes collapsed)
method (+71 nodes collapsed)
method (+174 nodes collapsed)
method (+47 nodes collapsed)
method (+52 nodes collapsed)
method (+53 nodes collapsed)
method (+23 nodes collapsed)
method (+34 nodes collapsed)
method (+83 nodes collapsed)
method (+125 nodes collapsed)
method (+44 nodes collapsed)
method (+65 nodes collapsed)
method (+83 nodes collapsed)
method (+169 nodes collapsed)
method (+123 nodes collapsed)
method (+428 nodes collapsed)
method (+112 nodes collapsed)
method (+217 nodes collapsed)
method (+56 nodes collapsed)
method (+156 nodes collapsed)
method (+89 nodes collapsed)
method (+430 nodes collapsed)
method (+278 nodes collapsed)
method (+252 nodes collapsed)
method (+160 nodes collapsed)
method (+249 nodes collapsed)
method (+262 nodes collapsed)
method (+270 nodes collapsed)
method (+108 nodes collapsed)
method (+135 nodes collapsed)
method (+67 nodes collapsed)
method (+113 nodes collapsed)
method (+43 nodes collapsed)
method (+43 nodes collapsed)
method (+252 nodes collapsed)
method (+197 nodes collapsed)
method (+104 nodes collapsed)
method (+219 nodes collapsed)
method (+147 nodes collapsed)
method (+82 nodes collapsed)
method (+102 nodes collapsed)
method (+105 nodes collapsed)
method (+137 nodes collapsed)
method (+128 nodes collapsed)
method (+204 nodes collapsed)
method (+170 nodes collapsed)
method (+70 nodes collapsed)
method (+361 nodes collapsed)
method (+189 nodes collapsed)
method (+69 nodes collapsed)
method (+37 nodes collapsed)
method (+69 nodes collapsed)
method (+134 nodes collapsed)
method (+113 nodes collapsed)
method (+73 nodes collapsed)
method (+101 nodes collapsed)
method (+119 nodes collapsed)
method (+119 nodes collapsed)
method (+80 nodes collapsed)
method (+144 nodes collapsed)
method (+167 nodes collapsed)
method (+111 nodes collapsed)
method (+47 nodes collapsed)
method (+154 nodes collapsed)
method (+198 nodes collapsed)
method (+243 nodes collapsed)
method (+73 nodes collapsed)
method (+73 nodes collapsed)
method (+109 nodes collapsed)
method (+158 nodes collapsed)
method (+69 nodes collapsed)
method (+119 nodes collapsed)
method (+605 nodes collapsed)
method (+109 nodes collapsed)
method (+179 nodes collapsed)
method (+262 nodes collapsed)
method (+134 nodes collapsed)
method (+193 nodes collapsed)
method (+163 nodes collapsed)
method (+224 nodes collapsed)
method (+194 nodes collapsed)
method (+333 nodes collapsed)
method (+186 nodes collapsed)
method (+179 nodes collapsed)
method (+80 nodes collapsed)
method (+122 nodes collapsed)
method (+94 nodes collapsed)
method (+126 nodes collapsed)
method (+126 nodes collapsed)
method (+126 nodes collapsed)
method (+126 nodes collapsed)
method (+114 nodes collapsed)
method (+103 nodes collapsed)
method (+285 nodes collapsed)
method (+237 nodes collapsed)
method (+72 nodes collapsed)
method (+66 nodes collapsed)
method (+418 nodes collapsed)
method
def "def"
identifier "test_change_preview_window_should_not_reset_change_preview"
body_statement
call
identifier "tmux"
. "."
identifier "send_keys"
argument_list
string
" "\""
interpolation
#{ "#{"
constant "FZF"
} "}"
string_content " --preview-window up,border-none --bind 'start:change-previe"...
" "\""
, ","
simple_symbol ":Enter"
call
identifier "tmux"
. "."
identifier "until"
block
{ "{"
block_parameters
| "|"
identifier "lines"
| "|"
block_body
call
identifier "assert_equal"
argument_list
string
" "'"
string_content "hello"
" "'"
, ","
element_reference
identifier "lines"
[ "["
integer "0"
] "]"
} "}"
call
identifier "tmux"
. "."
identifier "send_keys"
argument_list
simple_symbol ":Enter"
call
identifier "tmux"
. "."
identifier "until"
block
{ "{"
block_parameters
| "|"
identifier "lines"
| "|"
block_body
call
identifier "assert_equal"
argument_list
string
" "'"
string_content "│ hello"
" "'"
, ","
element_reference
identifier "lines"
[ "["
integer "0"
] "]"
} "}"
end "end"
method (+248 nodes collapsed)
method (+246 nodes collapsed)
method (+241 nodes collapsed)
method (+66 nodes collapsed)
method (+94 nodes collapsed)
method (+39 nodes collapsed)
method (+39 nodes collapsed)
method (+39 nodes collapsed)
method (+41 nodes collapsed)
method (+39 nodes collapsed)
method (+60 nodes collapsed)
method (+250 nodes collapsed)
method (+115 nodes collapsed)
method (+142 nodes collapsed)
method (+54 nodes collapsed)
method (+54 nodes collapsed)
method (+58 nodes collapsed)
method (+187 nodes collapsed)
method (+41 nodes collapsed)
method (+41 nodes collapsed)
method (+41 nodes collapsed)
method (+45 nodes collapsed)
method (+42 nodes collapsed)
method (+45 nodes collapsed)
method (+45 nodes collapsed)
method (+80 nodes collapsed)
method (+250 nodes collapsed)
method (+339 nodes collapsed)
method (+274 nodes collapsed)
method (+90 nodes collapsed)
method (+155 nodes collapsed)
method (+50 nodes collapsed)
method (+414 nodes collapsed)
method (+304 nodes collapsed)
method (+207 nodes collapsed)
method (+69 nodes collapsed)
method (+42 nodes collapsed)
method (+73 nodes collapsed)
method (+137 nodes collapsed)
method (+42 nodes collapsed)
method (+128 nodes collapsed)
method (+69 nodes collapsed)
method (+205 nodes collapsed)
end "end"
module (+1483 nodes collapsed)
module (+2380 nodes collapsed)
class (+190 nodes collapsed)
class (+179 nodes collapsed)
class (+101 nodes collapsed)
uninterpreted "\nset -u\nPS1= PROMPT_COMMAND= HISTFILE= HISTSIZE=100\nunset <%"...