diff --git a/autoload/go/config.vim b/autoload/go/config.vim index f0f13d56bb..6af556729a 100644 --- a/autoload/go/config.vim +++ b/autoload/go/config.vim @@ -102,6 +102,8 @@ endfunction function! go#config#PlayBrowserCommand() abort if go#util#IsWin() let go_play_browser_command = '!start rundll32 url.dll,FileProtocolHandler %URL%' + elseif go#util#IsCygwin() + let go_play_browser_command = '!rundll32 url.dll,FileProtocolHandler %URL%' elseif go#util#IsMac() let go_play_browser_command = 'open %URL%' elseif executable('xdg-open') diff --git a/autoload/go/util.vim b/autoload/go/util.vim index 3a12f013a1..229a4ef3bf 100644 --- a/autoload/go/util.vim +++ b/autoload/go/util.vim @@ -49,6 +49,11 @@ function! go#util#IsMac() abort \ go#util#Exec(['uname'])[0] =~? '^darwin' endfunction +" IsCygwin returns 1 if current OS is Cygwin/MSYS2/GitBash, 0 otherwise +function! go#util#IsCygwin() + return has('win32unix') +endfunction + " Checks if using: " 1) Windows system, " 2) And has cygpath executable, @@ -529,6 +534,7 @@ function! go#util#OpenBrowser(url) abort if l:cmd =~ '^!' let l:cmd = substitute(l:cmd, '%URL%', '\=escape(shellescape(a:url), "#")', 'g') silent! exec l:cmd + redraw! elseif cmd =~ '^:[A-Z]' let l:cmd = substitute(l:cmd, '%URL%', '\=escape(a:url,"#")', 'g') exec l:cmd