Switch to neovim version of help filetype, fixes #536

This commit is contained in:
Adam Stankiewicz
2020-09-04 12:11:55 +02:00
parent 96179c95ba
commit 48f59577c8
6 changed files with 149 additions and 93 deletions

View File

@@ -1450,7 +1450,7 @@ fu! csv#SumColumn(list) "{{{3
let b:csv_result = '0'
return 0
else
let sum = has("float") ? 0.0 : 0
let sum = 0.0
for item in a:list
if empty(item)
continue
@@ -1460,33 +1460,25 @@ fu! csv#SumColumn(list) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr = '0'
endtry
let sum += (has("float") ? str2float(nr) : (nr + 0))
let sum += str2float(nr)
endfor
if has("float")
let b:csv_result = string(float2nr(sum))
if float2nr(sum) == sum
return float2nr(sum)
else
return printf("%.2f", sum)
endif
endif
let b:csv_result = string(sum)
return sum
let b:csv_result = sum
return printf("%.2f", sum)
endif
endfu
fu! csv#AvgColumn(list) "{{{3
if empty(a:list)
let b:csv_result = '0'
return 0
return 0.0
else
let cnt = 0
let sum = has("float") ? 0.0 : 0
let sum = 0.0
for item in a:list
if empty(item)
continue
@@ -1496,30 +1488,25 @@ fu! csv#AvgColumn(list) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr ='0'
endtry
let sum += (has("float") ? str2float(nr) : (nr + 0))
let sum += str2float(nr)
let cnt += 1
endfor
if has("float")
let b:csv_result = printf("%.2f", sum/cnt)
return str2float(b:csv_result)
else
let b:csv_result = printf("%s", sum/cnt)
return b:csv_result + 0
endif
let b:csv_result = printf("%.2f", sum/cnt)
return sum/cnt
endif
endfu
fu! csv#VarianceColumn(list, is_population) "{{{3
if empty(a:list)
return 0
return 0.0
else
let cnt = 0
let sum = has("float") ? 0.0 : 0
let sum = 0.0
let avg = csv#AvgColumn(a:list)
for item in a:list
if empty(item)
@@ -1530,64 +1517,64 @@ fu! csv#VarianceColumn(list, is_population) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr = '0'
endtry
let sum += pow((has("float") ? (str2float(nr)-avg) : ((nr + 0)-avg)), 2)
let nr = str2float(nr)
let sum += pow((nr-avg), 2)
let cnt += 1
endfor
if(a:is_population == 0)
let cnt = cnt-1
endif
if has("float")
let b:csv_result = printf("%." . get(b:, 'csv_accuracy', get(g:, 'csv_accuracy', 2)) . "f", sum/cnt)
return b:csv_result
else
let b:csv_result = printf("%s", sum/cnt)
return sum/(cnt)
endif
let b:csv_result = sum/cnt
return b:csv_result
endif
endfu
fu! csv#SmplVarianceColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
return csv#VarianceColumn(a:list, 0)
endif
endfu
fu! csv#PopVarianceColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
return csv#VarianceColumn(a:list, 1)
endif
endfu
fu! csv#SmplStdDevColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
let result = sqrt(str2float(csv#VarianceColumn(a:list, 0)))
let b:csv_result = string(result)
let result = sqrt(csv#VarianceColumn(a:list, 0))
let b:csv_result = result
return result
endif
endfu
fu! csv#PopStdDevColumn(list) "{{{2
unlet! b:csv_result
if empty(a:list)
let b:csv_result = '0'
return 0
let b:csv_result = 0.0
return 0.0
else
let result = sqrt(str2float(csv#VarianceColumn(a:list, 1)))
let b:csv_result = string(result)
let result = sqrt(csv#VarianceColumn(a:list, 1))
let b:csv_result = result
return result
endif
endfu
@@ -1610,13 +1597,13 @@ fu! csv#MaxColumn(list) "{{{3
let format2 = '\d\+\zs\V' . s:nr_format[1] . '\m\ze\d'
try
let nr = substitute(nr, format1, '', '')
if has("float") && s:nr_format[1] != '.'
if s:nr_format[1] != '.'
let nr = substitute(nr, format2, '.', '')
endif
catch
let nr = 0
let nr = '0'
endtry
call add(result, has("float") ? str2float(nr) : nr+0)
call add(result, str2float(nr))
endfor
let result = sort(result, s:csv_numeric_sort ? 'n' : 'csv#CSVSortValues')
let ind = len(result) > 9 ? 9 : len(result)
@@ -1995,10 +1982,7 @@ fu! csv#AnalyzeColumn(...) "{{{3
call filter(res, 'v:val =~ ''^''.join(max_items, ''\|'').''$''')
endif
if has("float")
let title="Nr\tCount\t % \tValue"
else
let title="Nr\tCount\tValue"
let title="Nr\tCount\t % \tValue"
endif
echohl Title
echo printf("%s", title)
@@ -2014,12 +1998,8 @@ fu! csv#AnalyzeColumn(...) "{{{3
else
let k = key
endif
if has("float")
echo printf("%02d\t%02d\t%2.0f%%\t%.50s", i, res[key],
\ ((res[key] + 0.0)/qty)*100, k)
else
echo printf("%02d\t%02d\t%.50s", i, res[key], k)
endif
echo printf("%02d\t%02d\t%2.0f%%\t%.50s", i, res[key],
\ ((res[key] + 0.0)/qty)*100, k)
call remove(res,key)
let i+=1
else
@@ -2950,6 +2930,11 @@ fu! csv#EvalColumn(nr, func, first, last, ...) range "{{{3
call csv#Warn("File is no CSV file!")
return
endif
" Need a Vim with floating point feature
if !has("float")
call csv#Warn("Your Vim is missing floating point feature!")
return
endif
let save = winsaveview()
call csv#CheckHeaderLine()
let nr = matchstr(a:nr, '^\-\?\d\+')