mirror of
https://github.com/tpope/vim-fugitive.git
synced 2025-11-13 22:03:51 -05:00
Accept alternate syntax for :GBrowse remote
The @ syntax is kind of weird as you can't use fnameescape() to get around it. Add an alternative syntax for programmatic usage.
This commit is contained in:
@@ -5806,19 +5806,23 @@ function! fugitive#BrowseCommand(line1, count, range, bang, mods, arg, args) abo
|
|||||||
let dir = s:Dir()
|
let dir = s:Dir()
|
||||||
exe s:DirCheck(dir)
|
exe s:DirCheck(dir)
|
||||||
try
|
try
|
||||||
|
let arg = a:arg
|
||||||
|
if arg =~# '^++remote='
|
||||||
|
let remote = matchstr(arg, '^++remote=\zs\S\+')
|
||||||
|
let arg = matchstr(arg, '\s\zs\S.*')
|
||||||
|
endif
|
||||||
let validremote = '\.\|\.\=/.*\|[[:alnum:]_-]\+\%(://.\{-\}\)\='
|
let validremote = '\.\|\.\=/.*\|[[:alnum:]_-]\+\%(://.\{-\}\)\='
|
||||||
if a:arg ==# '-'
|
if arg ==# '-'
|
||||||
if a:count >= 0
|
if a:count >= 0
|
||||||
return 'echoerr ' . string('fugitive: ''-'' no longer required to get persistent URL if range given')
|
return 'echoerr ' . string('fugitive: ''-'' no longer required to get persistent URL if range given')
|
||||||
else
|
else
|
||||||
return 'echoerr ' . string('fugitive: use :0GBrowse instead of :GBrowse -')
|
return 'echoerr ' . string('fugitive: use :0GBrowse instead of :GBrowse -')
|
||||||
endif
|
endif
|
||||||
elseif len(a:arg)
|
elseif len(arg) && !exists('l:remote')
|
||||||
let remote = matchstr(a:arg, '@\zs\%('.validremote.'\)$')
|
let remote = matchstr(arg, '@\zs\%('.validremote.'\)$')
|
||||||
let rev = substitute(a:arg, '@\%('.validremote.'\)$','','')
|
let rev = substitute(arg, '@\%('.validremote.'\)$','','')
|
||||||
else
|
else
|
||||||
let remote = ''
|
let rev = arg
|
||||||
let rev = ''
|
|
||||||
endif
|
endif
|
||||||
if rev ==# ''
|
if rev ==# ''
|
||||||
let rev = s:DirRev(@%)[1]
|
let rev = s:DirRev(@%)[1]
|
||||||
@@ -5928,7 +5932,7 @@ function! fugitive#BrowseCommand(line1, count, range, bang, mods, arg, args) abo
|
|||||||
if exec_error
|
if exec_error
|
||||||
let commit = ''
|
let commit = ''
|
||||||
endif
|
endif
|
||||||
if a:count > 0 && empty(a:arg) && commit =~# '^\x\{40,\}$'
|
if a:count > 0 && empty(arg) && commit =~# '^\x\{40,\}$'
|
||||||
let blame_list = tempname()
|
let blame_list = tempname()
|
||||||
call writefile([commit, ''], blame_list, 'b')
|
call writefile([commit, ''], blame_list, 'b')
|
||||||
let blame_in = tempname()
|
let blame_in = tempname()
|
||||||
|
|||||||
Reference in New Issue
Block a user