@@ -2132,6 +2132,8 @@ func Test_Autocmd()
21322132
21332133 call delete (' Xtest' )
21342134 call delete (' Xempty' )
2135+ au ! QuickFixCmdPre
2136+ au ! QuickFixCmdPost
21352137endfunc
21362138
21372139func Test_Autocmd_Exception ()
@@ -2896,7 +2898,8 @@ func Xgetlist_empty_tests(cchar)
28962898 call assert_equal (0 , g: Xgetlist ({' size' : 0 }).size)
28972899 call assert_equal (' ' , g: Xgetlist ({' title' : 0 }).title )
28982900 call assert_equal (0 , g: Xgetlist ({' winid' : 0 }).winid)
2899- call assert_equal ({' context' : ' ' , ' id' : 0 , ' idx' : 0 , ' items' : [], ' nr' : 0 , ' size' : 0 , ' title' : ' ' , ' winid' : 0 }, g: Xgetlist ({' all' : 0 }))
2901+ call assert_equal (0 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2902+ call assert_equal ({' context' : ' ' , ' id' : 0 , ' idx' : 0 , ' items' : [], ' nr' : 0 , ' size' : 0 , ' title' : ' ' , ' winid' : 0 , ' changedtick' : 0 }, g: Xgetlist ({' all' : 0 }))
29002903
29012904 " Empty quickfix list
29022905 Xexpr " "
@@ -2908,6 +2911,7 @@ func Xgetlist_empty_tests(cchar)
29082911 call assert_equal (0 , g: Xgetlist ({' size' : 0 }).size)
29092912 call assert_notequal (' ' , g: Xgetlist ({' title' : 0 }).title )
29102913 call assert_equal (0 , g: Xgetlist ({' winid' : 0 }).winid)
2914+ call assert_equal (1 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
29112915
29122916 let qfid = g: Xgetlist ({' id' : 0 }).id
29132917 call g: Xsetlist ([], ' f' )
@@ -2921,7 +2925,8 @@ func Xgetlist_empty_tests(cchar)
29212925 call assert_equal (0 , g: Xgetlist ({' id' : qfid, ' size' : 0 }).size)
29222926 call assert_equal (' ' , g: Xgetlist ({' id' : qfid, ' title' : 0 }).title )
29232927 call assert_equal (0 , g: Xgetlist ({' id' : qfid, ' winid' : 0 }).winid)
2924- call assert_equal ({' context' : ' ' , ' id' : 0 , ' idx' : 0 , ' items' : [], ' nr' : 0 , ' size' : 0 , ' title' : ' ' , ' winid' : 0 }, g: Xgetlist ({' id' : qfid, ' all' : 0 }))
2928+ call assert_equal (0 , g: Xgetlist ({' id' : qfid, ' changedtick' : 0 }).changedtick)
2929+ call assert_equal ({' context' : ' ' , ' id' : 0 , ' idx' : 0 , ' items' : [], ' nr' : 0 , ' size' : 0 , ' title' : ' ' , ' winid' : 0 , ' changedtick' : 0 }, g: Xgetlist ({' id' : qfid, ' all' : 0 }))
29252930
29262931 " Non-existing quickfix list number
29272932 call assert_equal (' ' , g: Xgetlist ({' nr' : 5 , ' context' : 0 }).context)
@@ -2932,10 +2937,69 @@ func Xgetlist_empty_tests(cchar)
29322937 call assert_equal (0 , g: Xgetlist ({' nr' : 5 , ' size' : 0 }).size)
29332938 call assert_equal (' ' , g: Xgetlist ({' nr' : 5 , ' title' : 0 }).title )
29342939 call assert_equal (0 , g: Xgetlist ({' nr' : 5 , ' winid' : 0 }).winid)
2935- call assert_equal ({' context' : ' ' , ' id' : 0 , ' idx' : 0 , ' items' : [], ' nr' : 0 , ' size' : 0 , ' title' : ' ' , ' winid' : 0 }, g: Xgetlist ({' nr' : 5 , ' all' : 0 }))
2940+ call assert_equal (0 , g: Xgetlist ({' nr' : 5 , ' changedtick' : 0 }).changedtick)
2941+ call assert_equal ({' context' : ' ' , ' id' : 0 , ' idx' : 0 , ' items' : [], ' nr' : 0 , ' size' : 0 , ' title' : ' ' , ' winid' : 0 , ' changedtick' : 0 }, g: Xgetlist ({' nr' : 5 , ' all' : 0 }))
29362942endfunc
29372943
29382944func Test_getqflist ()
29392945 call Xgetlist_empty_tests (' c' )
29402946 call Xgetlist_empty_tests (' l' )
29412947endfunc
2948+
2949+ " Tests for the quickfix/location list changedtick
2950+ func Xqftick_tests (cchar)
2951+ call s: setup_commands (a: cchar )
2952+
2953+ call g: Xsetlist ([], ' f' )
2954+
2955+ Xexpr " F1:10:Line10"
2956+ let qfid = g: Xgetlist ({' id' : 0 }).id
2957+ call assert_equal (1 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2958+ Xaddexpr " F2:20:Line20\n F2:21:Line21"
2959+ call assert_equal (2 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2960+ call g: Xsetlist ([], ' a' , {' lines' : [" F3:30:Line30" , " F3:31:Line31" ]})
2961+ call assert_equal (3 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2962+ call g: Xsetlist ([], ' r' , {' lines' : [" F4:40:Line40" ]})
2963+ call assert_equal (4 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2964+ call g: Xsetlist ([], ' a' , {' title' : ' New Title' })
2965+ call assert_equal (5 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2966+
2967+ enew !
2968+ call append (0 , [" F5:50:L50" , " F6:60:L60" ])
2969+ Xaddbuffer
2970+ call assert_equal (6 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2971+ enew !
2972+
2973+ call g: Xsetlist ([], ' a' , {' context' : {' bus' : ' pci' }})
2974+ call assert_equal (7 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2975+ call g: Xsetlist ([{' filename' : ' F7' , ' lnum' : 10 , ' text' : ' L7' },
2976+ \ {' filename' : ' F7' , ' lnum' : 11 , ' text' : ' L11' }], ' a' )
2977+ call assert_equal (8 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2978+ call g: Xsetlist ([{' filename' : ' F7' , ' lnum' : 10 , ' text' : ' L7' },
2979+ \ {' filename' : ' F7' , ' lnum' : 11 , ' text' : ' L11' }], ' ' )
2980+ call assert_equal (1 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2981+ call g: Xsetlist ([{' filename' : ' F7' , ' lnum' : 10 , ' text' : ' L7' },
2982+ \ {' filename' : ' F7' , ' lnum' : 11 , ' text' : ' L11' }], ' r' )
2983+ call assert_equal (2 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2984+
2985+ call writefile ([" F8:80:L80" , " F8:81:L81" ], " Xone" )
2986+ Xfile Xone
2987+ call assert_equal (1 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2988+ Xaddfile Xone
2989+ call assert_equal (2 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2990+
2991+ " Test case for updating a non-current quickfix list
2992+ call g: Xsetlist ([], ' f' )
2993+ Xexpr " F1:1:L1"
2994+ Xexpr " F2:2:L2"
2995+ call g: Xsetlist ([], ' a' , {' nr' : 1 , " lines" : [" F10:10:L10" ]})
2996+ call assert_equal (1 , g: Xgetlist ({' changedtick' : 0 }).changedtick)
2997+ call assert_equal (2 , g: Xgetlist ({' nr' : 1 , ' changedtick' : 0 }).changedtick)
2998+
2999+ call delete (" Xone" )
3000+ endfunc
3001+
3002+ func Test_qf_tick ()
3003+ call Xqftick_tests (' c' )
3004+ call Xqftick_tests (' l' )
3005+ endfunc
0 commit comments