Allow range for TableSort. Fix #133

This commit is contained in:
Dhruva Sagar
2019-04-25 23:13:38 +05:30
parent a40ef26c5c
commit 865563f785
2 changed files with 8 additions and 4 deletions

View File

@@ -180,10 +180,14 @@ function! tablemode#spreadsheet#Average(range, ...) abort "{{{2
return s:Average(call('tablemode#spreadsheet#cell#GetCellRange', args))
endfunction
function! tablemode#spreadsheet#Sort(bang, ...) "{{{2
function! tablemode#spreadsheet#Sort(bang, ...) range "{{{2
let opts = a:0 ? a:1 : ''
let bang = a:bang ? '!' : ''
if a:firstline == a:lastline
let [firstRow, lastRow] = [tablemode#spreadsheet#GetFirstRow('.'), tablemode#spreadsheet#GetLastRow('.')]
else
let [firstRow, lastRow] = [a:firstline, a:lastline]
endif
call tablemode#spreadsheet#MoveToStartOfCell()
exec ':'.firstRow.','.lastRow . 'sort'.bang opts '/.*\%'.col('.').'v/'
exec ':undojoin | '.firstRow.','.lastRow . 'sort'.bang opts '/.*\%'.col('.').'v/'
endfunction

View File

@@ -75,7 +75,7 @@ endif
" }}}2
command! -nargs=? -range Tableize <line1>,<line2>call tablemode#TableizeRange(<q-args>)
command! -nargs=? -bang TableSort call tablemode#spreadsheet#Sort(<bang>0, <q-args>)
command! -nargs=? -bang -range TableSort <line1>,<line2>call tablemode#spreadsheet#Sort(<bang>0, <q-args>)
command! TableAddFormula call tablemode#spreadsheet#formula#Add()
command! TableModeRealign call tablemode#table#Realign('.')
command! TableEvalFormulaLine call tablemode#spreadsheet#formula#EvaluateFormulaLine()