mirror of
https://github.com/airblade/vim-gitgutter.git
synced 2025-11-11 04:53:46 -05:00
Fix handling of file renames
Both `:file` and `:saveas` rename the current file.
`:file` does not write the newly named file to disk, and keeps the same
buffer. It fires a single `BufFilePre` / `BufFilePost` pair of
autocommands:
`BufFilePre` buffer
`BufFilePost` buffer
`:saveas` does write the newly named file to disk, in a new buffer. It
fires two pairs of `BufFilePre` / `BufFilePost` autocommands:
`BufFilePre` original buffer
`BufFilePre` new buffer
`BufFilePost` original buffer
`BufFilePost` new buffer
In both cases the cached path needs to be cleared.
See #860, #551.
Fixes #865.
This commit is contained in:
@@ -251,6 +251,35 @@ function Test_filename_umlaut()
|
||||
endfunction
|
||||
|
||||
|
||||
function Test_file_cmd()
|
||||
normal ggo*
|
||||
|
||||
file other.txt
|
||||
|
||||
call s:trigger_gitgutter()
|
||||
call assert_equal(1, b:gitgutter.enabled)
|
||||
call assert_equal('', b:gitgutter.path)
|
||||
call s:assert_signs([], 'other.txt')
|
||||
|
||||
write
|
||||
|
||||
call s:trigger_gitgutter()
|
||||
call assert_equal(-2, b:gitgutter.path)
|
||||
endfunction
|
||||
|
||||
|
||||
function Test_saveas()
|
||||
normal ggo*
|
||||
|
||||
saveas other.txt
|
||||
|
||||
call s:trigger_gitgutter()
|
||||
call assert_equal(1, b:gitgutter.enabled)
|
||||
call assert_equal(-2, b:gitgutter.path)
|
||||
call s:assert_signs([], 'other.txt')
|
||||
endfunction
|
||||
|
||||
|
||||
" FIXME: this test fails when it is the first (or only) test to be run
|
||||
function Test_follow_symlink()
|
||||
let tmp = 'symlink'
|
||||
|
||||
Reference in New Issue
Block a user