mirror of https://github.com/Llewellynvdm/fzf.git
[vim] Download latest binary to meet version requirement
This commit is contained in:
parent
e73383fbbb
commit
607081bbaa
|
@ -1,11 +1,5 @@
|
||||||
$version="0.23.1"
|
$version="0.23.1"
|
||||||
|
|
||||||
if ([Environment]::Is64BitProcess) {
|
|
||||||
$binary_arch="amd64"
|
|
||||||
} else {
|
|
||||||
$binary_arch="386"
|
|
||||||
}
|
|
||||||
|
|
||||||
$fzf_base=Split-Path -Parent $MyInvocation.MyCommand.Definition
|
$fzf_base=Split-Path -Parent $MyInvocation.MyCommand.Definition
|
||||||
|
|
||||||
function check_binary () {
|
function check_binary () {
|
||||||
|
@ -68,6 +62,6 @@ function download {
|
||||||
check_binary >$null
|
check_binary >$null
|
||||||
}
|
}
|
||||||
|
|
||||||
download "fzf-$version-windows_$binary_arch.zip"
|
download "fzf-$version-windows_amd64.zip"
|
||||||
|
|
||||||
Write-Host 'For more information, see: https://github.com/junegunn/fzf'
|
Write-Host 'For more information, see: https://github.com/junegunn/fzf'
|
||||||
|
|
|
@ -154,7 +154,20 @@ function! fzf#install()
|
||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! fzf#exec()
|
function! s:version_requirement(val, min)
|
||||||
|
let val = split(a:val, '\.')
|
||||||
|
let min = split(a:min, '\.')
|
||||||
|
for idx in range(0, len(min) - 1)
|
||||||
|
let v = get(val, idx, 0)
|
||||||
|
if v < min[idx] | return 0
|
||||||
|
elseif v > min[idx] | return 1
|
||||||
|
endif
|
||||||
|
endfor
|
||||||
|
return 1
|
||||||
|
endfunction
|
||||||
|
|
||||||
|
let s:checked = {}
|
||||||
|
function! fzf#exec(...)
|
||||||
if !exists('s:exec')
|
if !exists('s:exec')
|
||||||
if executable(s:fzf_go)
|
if executable(s:fzf_go)
|
||||||
let s:exec = s:fzf_go
|
let s:exec = s:fzf_go
|
||||||
|
@ -169,6 +182,26 @@ function! fzf#exec()
|
||||||
throw 'fzf executable not found'
|
throw 'fzf executable not found'
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if a:0 && !has_key(s:checked, a:1)
|
||||||
|
let command = s:exec . ' --version'
|
||||||
|
let output = systemlist(command)
|
||||||
|
if v:shell_error || empty(output)
|
||||||
|
throw printf('Failed to run "%s": %s', command, output)
|
||||||
|
endif
|
||||||
|
let fzf_version = matchstr(output[0], '[0-9.]\+')
|
||||||
|
if s:version_requirement(fzf_version, a:1)
|
||||||
|
let s:checked[a:1] = 1
|
||||||
|
return s:exec
|
||||||
|
elseif a:0 < 2 && input(printf('You need fzf %s or above. Found: %s. Download binary? (y/n) ', a:1, fzf_version)) =~? '^y'
|
||||||
|
redraw
|
||||||
|
call fzf#install()
|
||||||
|
return fzf#exec(a:1, 1)
|
||||||
|
else
|
||||||
|
throw printf('You need to upgrade fzf (required: %s or above)', a:1)
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
return s:exec
|
return s:exec
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
@ -671,6 +704,8 @@ function! s:border_opt(window)
|
||||||
return ''
|
return ''
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
" For --border styles, we need fzf 0.24.0 or above
|
||||||
|
call fzf#exec('0.24.0')
|
||||||
let opt = ' --border=' . style
|
let opt = ' --border=' . style
|
||||||
if has_key(a:window, 'highlight')
|
if has_key(a:window, 'highlight')
|
||||||
let color = s:get_color('fg', a:window.highlight)
|
let color = s:get_color('fg', a:window.highlight)
|
||||||
|
|
|
@ -10,7 +10,7 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// Current version
|
// Current version
|
||||||
version = "0.23.1"
|
version = "0.24.0"
|
||||||
|
|
||||||
// Core
|
// Core
|
||||||
coordinatorDelayMax time.Duration = 100 * time.Millisecond
|
coordinatorDelayMax time.Duration = 100 * time.Millisecond
|
||||||
|
|
Loading…
Reference in New Issue