Fix #23 - Remove usage of bufexists

`bufexists` can't handle the home directory(`~`). Instead use `bufnr`
and `bufwinnr`, which are more appropriate.

Also, I've decided to use `bufwinnr` instead of `bufnr` for checking if
the file exists before loading it with `g:vebugger_view_source_cmd`, so
it'll use `g:vebugger_view_source_cmd` if no window displays the buffer
- even if the buffer is loaded. This fixes an inconsistency that was
before, that `g:vebugger_view_source_cmd` would get invoked only if the
file has no buffer loaded, if there is a buffer loaded it'll jump to it
from the current window.
This commit is contained in:
IdanArye 2015-11-06 22:30:02 +02:00
parent ee298e7390
commit fa63556530

View File

@ -180,7 +180,7 @@ function! s:standardThinkHandlers.moveToCurrentLine(readResult,debugger) dict
exe 'sign unplace 1 file='.fnameescape(fnamemodify(a:debugger.state.std.location.file,':p')) exe 'sign unplace 1 file='.fnameescape(fnamemodify(a:debugger.state.std.location.file,':p'))
endif endif
let a:debugger.state.std.location=deepcopy(a:readResult.std.location) let a:debugger.state.std.location=deepcopy(a:readResult.std.location)
if !bufexists(a:readResult.std.location.file) if -1 == bufwinnr(a:readResult.std.location.file)
exe get(g:, 'vebugger_view_source_cmd', 'new').' '.(a:readResult.std.location.file) exe get(g:, 'vebugger_view_source_cmd', 'new').' '.(a:readResult.std.location.file)
endif endif
call vebugger#std#updateMarksForFile(a:debugger.state,a:readResult.std.location.file) call vebugger#std#updateMarksForFile(a:debugger.state,a:readResult.std.location.file)
@ -258,7 +258,7 @@ endif
"Update all the marks(currently executed line and breakpoints) for a file "Update all the marks(currently executed line and breakpoints) for a file
function! vebugger#std#updateMarksForFile(state,filename) function! vebugger#std#updateMarksForFile(state,filename)
let l:filename=fnamemodify(a:filename,":p") let l:filename=fnamemodify(a:filename,":p")
if bufexists(l:filename) if -1 < bufnr(l:filename)
exe 'sign unplace 1 file='.fnameescape(fnamemodify(l:filename,':p')) exe 'sign unplace 1 file='.fnameescape(fnamemodify(l:filename,':p'))
exe 'sign unplace 2 file='.fnameescape(fnamemodify(l:filename,':p')) exe 'sign unplace 2 file='.fnameescape(fnamemodify(l:filename,':p'))