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–234 unchanged (234 lines)
235 call cursor(1,1)
236 exe "normal \<C-]> "
237 call assert_equal('Xtest.c', expand('%:t'))
238 call assert_equal(2, col('.'))
239
240 set nohidden
241 set tags&
242 enew!
243 call delete('Xtags')
244 call delete('Xtest.c')
245 call delete("Xtest.dir", "rf")
246 %bwipe!
247endfunc
…lines 248–1733 unchanged (1486 lines)

After

…lines 1–233 unchanged (233 lines)
234 call append(0, 'SECTION_OFF')
235 call cursor(1,1)
236 exe "normal \<C-]> "
237 call assert_equal('Xtest.c', expand('%:t'))
238 call assert_equal(2, col('.'))
239
240 set nohidden " Accommodate Nvim default
241 set tags&
242 enew!
243 call delete('Xtags')
244 call delete('Xtest.c')
245 call delete("Xtest.dir", "rf")
246 %bwipe!
…lines 247–1733 unchanged (1487 lines)

Before

ERROR
comment "\" Tests for tagjump (tags and special searches)"
source_statement
source "source"
filename "check.vim"
source_statement
source "source"
filename "screendump.vim"
comment "\" SEGV occurs in older versions. (At least 7.4.1748 or olde"...
function_definition (+34 nodes collapsed)
function_definition (+266 nodes collapsed)
function_definition (+73 nodes collapsed)
function_definition (+89 nodes collapsed)
function_definition (+122 nodes collapsed)
function_definition (+485 nodes collapsed)
comment "\" Tests for [ CTRL-I and CTRL-W CTRL-I commands"
function_definition (+157 nodes collapsed)
comment "\" Test for jumping to a tag with 'hidden' set, with symbolic"...
comment "\" tag. This only works for Unix, because of the symbolic li"...
function_definition
function "func"
function_declaration
identifier "Test_tag_symbolic"
parameters
( "("
) ")"
body
if_statement
if "if"
unary_operation
! "!"
call_expression
identifier "has"
( "("
string_literal "'unix'"
) ")"
body
return_statement
return "return"
endif "endif"
set_statement
set "set"
set_item
option_name "hidden"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "\"Xtest.dir\""
, ","
string_literal "\"rf\""
) ")"
call_statement
call "call"
call_expression
identifier "system"
( "("
string_literal "\"ln -s . Xtest.dir\""
) ")"
comment "\" Create a tags file with the current directory name inserte"...
call_statement (+24 nodes collapsed)
call_statement
call "call"
call_expression
identifier "writefile"
( "("
list
[ "["
string_literal "'#define SECTION_OFF 3'"
, ","
string_literal "'#define NUM_SECTIONS 3'"
] "]"
, ","
string_literal "'Xtest.c'"
) ")"
comment "\" Try jumping to a tag, but with a path that contains a symb"...
comment "\" wrong, this will give the ATTENTION message. The next spa"...
comment "\" eaten by hit-return, instead of moving the cursor to 'd'."
set_statement
set "set"
set_item
option_name "tags"
= "="
set_value "Xtags"
enew_statement
enew "enew"
bang
! "!"
call_statement
call "call"
call_expression
identifier "append"
( "("
integer_literal "0"
, ","
string_literal "'SECTION_OFF'"
) ")"
call_statement
call "call"
call_expression
identifier "cursor"
( "("
integer_literal "1"
, ","
integer_literal "1"
) ")"
execute_statement
execute "exe"
string_literal "\"normal \\<C-]> \""
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'Xtest.c'"
, ","
call_expression
identifier "expand"
( "("
string_literal "'%:t'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
call_expression
identifier "col"
( "("
string_literal "'.'"
) ")"
) ")"
set_statement
set "set"
set_item
no_option
option_name "hidden"
set_statement
set "set"
set_item
default_option
option_name "tags"
& "&"
enew_statement
enew "enew"
bang
! "!"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "'Xtags'"
) ")"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "'Xtest.c'"
) ")"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "\"Xtest.dir\""
, ","
string_literal "\"rf\""
) ")"
range_statement
file "%"
ERROR
keyword "bwipe"
endfunction "endfunc"
comment "\" Tests for tag search with !_TAG_FILE_ENCODING."
function_definition (+382 nodes collapsed)
comment "\" Test for emacs-style tags file (TAGS)"
function_definition (+338 nodes collapsed)
comment "\" Test for getting and modifying the tag stack"
function_definition (+1382 nodes collapsed)
function_definition (+213 nodes collapsed)
function_definition (+190 nodes collapsed)
function_definition (+301 nodes collapsed)
comment "\" Check that using :tselect does not run into the hit-enter "...
comment "\" Requires a terminal to trigger that prompt."
function_definition (+144 nodes collapsed)
function_definition (+105 nodes collapsed)
comment "\" Test for expanding environment variable in a tag file name"
function_definition (+96 nodes collapsed)
comment "\" Test for :ptag"
function_definition (+204 nodes collapsed)
comment "\" Tests for guessing the tag location"
function_definition (+189 nodes collapsed)
comment "\" Test for an unsorted tags file"
function_definition (+127 nodes collapsed)
comment "\" Test for an unsorted tags file"
function_definition (+111 nodes collapsed)
comment "\" Test for the :ltag command"
function_definition (+301 nodes collapsed)
comment "\" Test for setting the last search pattern to the tag search"...
comment "\" when cpoptions has 't'"
function_definition (+107 nodes collapsed)
comment "\" Tag stack tests"
function "func"
function_declaration
identifier "Test_tag_stack"
parameters
( "("
) ")"
let_statement
let "let"
identifier "l"
= "="
list
[ "["
] "]"
for_loop (+33 nodes collapsed)
call_statement
call "call"
call_expression
identifier "writefile"
( "("
identifier "l"
, ","
string_literal "'Xtags'"
, ","
string_literal "'D'"
) ")"
set_statement
set "set"
set_item
option_name "tags"
= "="
set_value "Xtags"
let_statement
let "let"
identifier "l"
= "="
list
[ "["
] "]"
for_loop (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "writefile"
( "("
identifier "l"
, ","
string_literal "'Xfoo'"
, ","
string_literal "'D'"
) ")"
enew_statement
enew "enew"
comment "\" Jump to a tag when the tag stack is full. Oldest entry sho"...
for_loop
for "for"
identifier "i"
in "in"
call_expression
identifier "range"
( "("
integer_literal "10"
, ","
integer_literal "30"
) ")"
body
execute_statement
execute "exe"
binary_operation
string_literal "\"tag var\""
.. ".."
identifier "i"
endfor "endfor"
let_statement
let "let"
identifier "t"
= "="
call_expression
identifier "gettagstack"
( "("
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "20"
, ","
field_expression
identifier "t"
. "."
identifier "length"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'var11'"
, ","
field_expression
index_expression
field_expression
identifier "t"
. "."
identifier "items"
[ "["
integer_literal "0"
] "]"
. "."
identifier "tagname"
) ")"
let_statement
let "let"
identifier "full"
= "="
call_expression
identifier "deepcopy"
( "("
field_expression
identifier "t"
. "."
identifier "items"
) ")"
unknown_builtin_statement
unknown_command_name "tag"
arguments
command_argument "var31"
let_statement
let "let"
identifier "t"
= "="
call_expression
identifier "gettagstack"
( "("
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'var12'"
, ","
field_expression
index_expression
field_expression
identifier "t"
. "."
identifier "items"
[ "["
integer_literal "0"
] "]"
. "."
identifier "tagname"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'var31'"
, ","
field_expression
index_expression
field_expression
identifier "t"
. "."
identifier "items"
[ "["
integer_literal "19"
] "]"
. "."
identifier "tagname"
) ")"
comment "\" Jump to a tag when the tag stack is full, but with user da"...
call "call"
identifier "foreach"
( "("
identifier "full"
, ","
{ "{"
identifier "i"
, ","
identifier "item"
-> "->"
identifier "extend"
( "("
identifier "item"
, ","
{ "{"
dictionnary_entry (+1094 nodes collapsed)
, ","
ERROR (+273 nodes collapsed)
scope "v:"
keyword "let"
keyword "ta"
marker_definition "y"
keyword "call"
keyword "assert_match"
marker_definition "E435:', v:statusmsg)"
marker_definition "call assert_equal(2, line('.'))"
marker_definition "call assert_match('<y', @/)"
keyword "set"
keyword "tags"
marker_definition "cpoptions-=t"
marker_definition "endfunc"
keyword "func"
keyword "Test_tag_excmd_with_nostartofline"
keyword "call"
keyword "writefile"
marker_definition "TAG_FILE_ENCODING\\tutf-8\\t//\","
marker_definition "f\\tXfile\\tascii\"],"
marker_definition "Xtags', 'D')"
keyword "call"
keyword "writefile"
marker_definition "f', 'foobar'], 'Xfile', 'D')"
keyword "set"
keyword "startofline"
keyword "new"
marker_definition "Xfile"
keyword "setlocal"
keyword "tags"
marker_definition "Xtags"
marker_definition "rmal! G$"
keyword "This"
keyword "used"
keyword "to"
marker_definition "cause heap-buffer-overflow"
tag "tag"
marker_definition "f"
keyword "bwipe"
keyword "set"
keyword "startofline"
marker_definition "endfunc"
vim "vim"
keyword "shiftwidth"
marker_definition "2 sts=2 expandtab"

After

ERROR
comment "\" Tests for tagjump (tags and special searches)"
source_statement
source "source"
filename "check.vim"
source_statement
source "source"
filename "screendump.vim"
comment "\" SEGV occurs in older versions. (At least 7.4.1748 or olde"...
function_definition (+34 nodes collapsed)
function_definition (+266 nodes collapsed)
function_definition (+73 nodes collapsed)
function_definition (+89 nodes collapsed)
function_definition (+122 nodes collapsed)
function_definition (+485 nodes collapsed)
comment "\" Tests for [ CTRL-I and CTRL-W CTRL-I commands"
function_definition (+157 nodes collapsed)
comment "\" Test for jumping to a tag with 'hidden' set, with symbolic"...
comment "\" tag. This only works for Unix, because of the symbolic li"...
function_definition
function "func"
function_declaration
identifier "Test_tag_symbolic"
parameters
( "("
) ")"
body
if_statement
if "if"
unary_operation
! "!"
call_expression
identifier "has"
( "("
string_literal "'unix'"
) ")"
body
return_statement
return "return"
endif "endif"
set_statement
set "set"
set_item
option_name "hidden"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "\"Xtest.dir\""
, ","
string_literal "\"rf\""
) ")"
call_statement
call "call"
call_expression
identifier "system"
( "("
string_literal "\"ln -s . Xtest.dir\""
) ")"
comment "\" Create a tags file with the current directory name inserte"...
call_statement (+24 nodes collapsed)
call_statement
call "call"
call_expression
identifier "writefile"
( "("
list
[ "["
string_literal "'#define SECTION_OFF 3'"
, ","
string_literal "'#define NUM_SECTIONS 3'"
] "]"
, ","
string_literal "'Xtest.c'"
) ")"
comment "\" Try jumping to a tag, but with a path that contains a symb"...
comment "\" wrong, this will give the ATTENTION message. The next spa"...
comment "\" eaten by hit-return, instead of moving the cursor to 'd'."
set_statement
set "set"
set_item
option_name "tags"
= "="
set_value "Xtags"
enew_statement
enew "enew"
bang
! "!"
call_statement
call "call"
call_expression
identifier "append"
( "("
integer_literal "0"
, ","
string_literal "'SECTION_OFF'"
) ")"
call_statement
call "call"
call_expression
identifier "cursor"
( "("
integer_literal "1"
, ","
integer_literal "1"
) ")"
execute_statement
execute "exe"
string_literal "\"normal \\<C-]> \""
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'Xtest.c'"
, ","
call_expression
identifier "expand"
( "("
string_literal "'%:t'"
) ")"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "2"
, ","
call_expression
identifier "col"
( "("
string_literal "'.'"
) ")"
) ")"
set_statement
set "set"
set_item
no_option
option_name "hidden"
comment "\" Accommodate Nvim default"
set_statement
set "set"
set_item
default_option
option_name "tags"
& "&"
enew_statement
enew "enew"
bang
! "!"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "'Xtags'"
) ")"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "'Xtest.c'"
) ")"
call_statement
call "call"
call_expression
identifier "delete"
( "("
string_literal "\"Xtest.dir\""
, ","
string_literal "\"rf\""
) ")"
range_statement
file "%"
ERROR
keyword "bwipe"
endfunction "endfunc"
comment "\" Tests for tag search with !_TAG_FILE_ENCODING."
function_definition (+382 nodes collapsed)
comment "\" Test for emacs-style tags file (TAGS)"
function_definition (+338 nodes collapsed)
comment "\" Test for getting and modifying the tag stack"
function_definition (+1382 nodes collapsed)
function_definition (+213 nodes collapsed)
function_definition (+190 nodes collapsed)
function_definition (+301 nodes collapsed)
comment "\" Check that using :tselect does not run into the hit-enter "...
comment "\" Requires a terminal to trigger that prompt."
function_definition (+144 nodes collapsed)
function_definition (+105 nodes collapsed)
comment "\" Test for expanding environment variable in a tag file name"
function_definition (+96 nodes collapsed)
comment "\" Test for :ptag"
function_definition (+204 nodes collapsed)
comment "\" Tests for guessing the tag location"
function_definition (+189 nodes collapsed)
comment "\" Test for an unsorted tags file"
function_definition (+127 nodes collapsed)
comment "\" Test for an unsorted tags file"
function_definition (+111 nodes collapsed)
comment "\" Test for the :ltag command"
function_definition (+301 nodes collapsed)
comment "\" Test for setting the last search pattern to the tag search"...
comment "\" when cpoptions has 't'"
function_definition (+107 nodes collapsed)
comment "\" Tag stack tests"
function "func"
function_declaration
identifier "Test_tag_stack"
parameters
( "("
) ")"
let_statement
let "let"
identifier "l"
= "="
list
[ "["
] "]"
for_loop (+33 nodes collapsed)
call_statement
call "call"
call_expression
identifier "writefile"
( "("
identifier "l"
, ","
string_literal "'Xtags'"
, ","
string_literal "'D'"
) ")"
set_statement
set "set"
set_item
option_name "tags"
= "="
set_value "Xtags"
let_statement
let "let"
identifier "l"
= "="
list
[ "["
] "]"
for_loop (+27 nodes collapsed)
call_statement
call "call"
call_expression
identifier "writefile"
( "("
identifier "l"
, ","
string_literal "'Xfoo'"
, ","
string_literal "'D'"
) ")"
enew_statement
enew "enew"
comment "\" Jump to a tag when the tag stack is full. Oldest entry sho"...
for_loop
for "for"
identifier "i"
in "in"
call_expression
identifier "range"
( "("
integer_literal "10"
, ","
integer_literal "30"
) ")"
body
execute_statement
execute "exe"
binary_operation
string_literal "\"tag var\""
.. ".."
identifier "i"
endfor "endfor"
let_statement
let "let"
identifier "t"
= "="
call_expression
identifier "gettagstack"
( "("
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
integer_literal "20"
, ","
field_expression
identifier "t"
. "."
identifier "length"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'var11'"
, ","
field_expression
index_expression
field_expression
identifier "t"
. "."
identifier "items"
[ "["
integer_literal "0"
] "]"
. "."
identifier "tagname"
) ")"
let_statement
let "let"
identifier "full"
= "="
call_expression
identifier "deepcopy"
( "("
field_expression
identifier "t"
. "."
identifier "items"
) ")"
unknown_builtin_statement
unknown_command_name "tag"
arguments
command_argument "var31"
let_statement
let "let"
identifier "t"
= "="
call_expression
identifier "gettagstack"
( "("
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'var12'"
, ","
field_expression
index_expression
field_expression
identifier "t"
. "."
identifier "items"
[ "["
integer_literal "0"
] "]"
. "."
identifier "tagname"
) ")"
call_statement
call "call"
call_expression
identifier "assert_equal"
( "("
string_literal "'var31'"
, ","
field_expression
index_expression
field_expression
identifier "t"
. "."
identifier "items"
[ "["
integer_literal "19"
] "]"
. "."
identifier "tagname"
) ")"
comment "\" Jump to a tag when the tag stack is full, but with user da"...
call "call"
identifier "foreach"
( "("
identifier "full"
, ","
{ "{"
identifier "i"
, ","
identifier "item"
-> "->"
identifier "extend"
( "("
identifier "item"
, ","
{ "{"
dictionnary_entry (+1094 nodes collapsed)
, ","
ERROR (+273 nodes collapsed)
scope "v:"
keyword "let"
keyword "ta"
marker_definition "y"
keyword "call"
keyword "assert_match"
marker_definition "E435:', v:statusmsg)"
marker_definition "call assert_equal(2, line('.'))"
marker_definition "call assert_match('<y', @/)"
keyword "set"
keyword "tags"
marker_definition "cpoptions-=t"
marker_definition "endfunc"
keyword "func"
keyword "Test_tag_excmd_with_nostartofline"
keyword "call"
keyword "writefile"
marker_definition "TAG_FILE_ENCODING\\tutf-8\\t//\","
marker_definition "f\\tXfile\\tascii\"],"
marker_definition "Xtags', 'D')"
keyword "call"
keyword "writefile"
marker_definition "f', 'foobar'], 'Xfile', 'D')"
keyword "set"
keyword "startofline"
keyword "new"
marker_definition "Xfile"
keyword "setlocal"
keyword "tags"
marker_definition "Xtags"
marker_definition "rmal! G$"
keyword "This"
keyword "used"
keyword "to"
marker_definition "cause heap-buffer-overflow"
tag "tag"
marker_definition "f"
keyword "bwipe"
keyword "set"
keyword "startofline"
marker_definition "endfunc"
vim "vim"
keyword "shiftwidth"
marker_definition "2 sts=2 expandtab"