Add tablemode#table#IsTable

This commit is contained in:
Dhruva Sagar
2015-11-23 14:53:05 +05:30
parent e7373c9083
commit fdfa4b12c2
4 changed files with 37 additions and 10 deletions

View File

@@ -41,7 +41,7 @@ function! tablemode#spreadsheet#GetLastRow(line) "{{{2
if tablemode#table#IsRow(a:line) if tablemode#table#IsRow(a:line)
let line = tablemode#utils#line(a:line) let line = tablemode#utils#line(a:line)
while tablemode#table#IsRow(line + 1) || tablemode#table#IsBorder(line + 1) while tablemode#table#IsTable(line + 1)
let line += 1 let line += 1
endwhile endwhile
if tablemode#table#IsBorder(line) | let line -= 1 | endif if tablemode#table#IsBorder(line) | let line -= 1 | endif
@@ -61,7 +61,7 @@ function! tablemode#spreadsheet#LineNr(line, row) "{{{2
let line = tablemode#spreadsheet#GetFirstRow(a:line) let line = tablemode#spreadsheet#GetFirstRow(a:line)
let row_nr = 0 let row_nr = 0
while tablemode#table#IsRow(line + 1) || tablemode#table#IsBorder(line + 1) while tablemode#table#IsTable(line + 1)
if tablemode#table#IsRow(line) if tablemode#table#IsRow(line)
let row_nr += 1 let row_nr += 1
if a:row ==# row_nr | break | endif if a:row ==# row_nr | break | endif
@@ -77,7 +77,7 @@ function! tablemode#spreadsheet#RowNr(line) "{{{2
let line = tablemode#utils#line(a:line) let line = tablemode#utils#line(a:line)
let rowNr = 0 let rowNr = 0
while !tablemode#table#IsHeader(line) && (tablemode#table#IsRow(line) || tablemode#table#IsBorder(line)) while !tablemode#table#IsHeader(line) && tablemode#table#IsTable(line)
if tablemode#table#IsRow(line) | let rowNr += 1 | endif if tablemode#table#IsRow(line) | let rowNr += 1 | endif
let line -= 1 let line -= 1
endwhile endwhile
@@ -89,13 +89,13 @@ function! tablemode#spreadsheet#RowCount(line) "{{{2
let line = tablemode#utils#line(a:line) let line = tablemode#utils#line(a:line)
let [tline, totalRowCount] = [line, 0] let [tline, totalRowCount] = [line, 0]
while !tablemode#table#IsHeader(tline) && (tablemode#table#IsRow(tline) || tablemode#table#IsBorder(tline)) while !tablemode#table#IsHeader(tline) && tablemode#table#IsTable(tline)
if tablemode#table#IsRow(tline) | let totalRowCount += 1 | endif if tablemode#table#IsRow(tline) | let totalRowCount += 1 | endif
let tline -= 1 let tline -= 1
endwhile endwhile
let tline = line + 1 let tline = line + 1
while !tablemode#table#IsHeader(tline) && (tablemode#table#IsRow(tline) || tablemode#table#IsBorder(tline)) while !tablemode#table#IsHeader(tline) && tablemode#table#IsTable(tline)
if tablemode#table#IsRow(tline) | let totalRowCount += 1 | endif if tablemode#table#IsRow(tline) | let totalRowCount += 1 | endif
let tline += 1 let tline += 1
endwhile endwhile

View File

@@ -58,7 +58,7 @@ function! tablemode#spreadsheet#cell#GetCells(line, ...) abort
if row == 0 if row == 0
let values = [] let values = []
let line = first_row let line = first_row
while tablemode#table#IsRow(line) || tablemode#table#IsBorder(line) while tablemode#table#IsTable(line)
if tablemode#table#IsRow(line) if tablemode#table#IsRow(line)
let row_line = getline(line)[stridx(getline(line), g:table_mode_separator):strridx(getline(line), g:table_mode_separator)] let row_line = getline(line)[stridx(getline(line), g:table_mode_separator):strridx(getline(line), g:table_mode_separator)]
call add(values, tablemode#utils#strip(get(split(row_line, g:table_mode_separator), colm>0?colm-1:colm, ''))) call add(values, tablemode#utils#strip(get(split(row_line, g:table_mode_separator), colm>0?colm-1:colm, '')))
@@ -70,7 +70,7 @@ function! tablemode#spreadsheet#cell#GetCells(line, ...) abort
let row_nr = 0 let row_nr = 0
let row_diff = row > 0 ? 1 : -1 let row_diff = row > 0 ? 1 : -1
let line = row > 0 ? first_row : last_row let line = row > 0 ? first_row : last_row
while tablemode#table#IsRow(line) || tablemode#table#IsBorder(line) while tablemode#table#IsTable(line)
if tablemode#table#IsRow(line) if tablemode#table#IsRow(line)
let row_nr += row_diff let row_nr += row_diff
if row ==# row_nr | break | endif if row ==# row_nr | break | endif

View File

@@ -149,7 +149,11 @@ function! tablemode#table#IsHeader(line) "{{{2
endfunction endfunction
function! tablemode#table#IsRow(line) "{{{2 function! tablemode#table#IsRow(line) "{{{2
return !tablemode#table#IsBorder(a:line) && getline(a:line) =~# (tablemode#table#StartExpr() . g:table_mode_separator) return !tablemode#table#IsBorder(a:line) && getline(a:line) =~# (tablemode#table#StartExpr() . g:table_mode_separator) . '[^' . g:table_mode_separator . ']\+'
endfunction
function! tablemode#table#IsTable(line) "{{{2
return tablemode#table#IsRow(a:line) || tablemode#table#IsBorder(a:line)
endfunction endfunction
function! tablemode#table#AddBorder(line) "{{{2 function! tablemode#table#AddBorder(line) "{{{2
@@ -161,7 +165,7 @@ function! tablemode#table#Realign(line) "{{{2
let lines = [] let lines = []
let [lnum, blines] = [line, []] let [lnum, blines] = [line, []]
while tablemode#table#IsRow(lnum) || tablemode#table#IsBorder(lnum) while tablemode#table#IsTable(lnum)
if tablemode#table#IsBorder(lnum) if tablemode#table#IsBorder(lnum)
call insert(blines, lnum) call insert(blines, lnum)
let lnum -= 1 let lnum -= 1
@@ -172,7 +176,7 @@ function! tablemode#table#Realign(line) "{{{2
endwhile endwhile
let lnum = line + 1 let lnum = line + 1
while tablemode#table#IsRow(lnum) || tablemode#table#IsBorder(lnum) while tablemode#table#IsTable(lnum)
if tablemode#table#IsBorder(lnum) if tablemode#table#IsBorder(lnum)
call add(blines, lnum) call add(blines, lnum)
let lnum += 1 let lnum += 1

View File

@@ -40,6 +40,29 @@ describe 'table'
end end
end end
describe 'IsTable'
before
new normal! ggdG
read t/fixtures/table/sample_with_header.txt
end
it 'should be true on a table row'
Expect tablemode#table#IsTable(2) to_be_true
Expect tablemode#table#IsTable(4) to_be_true
Expect tablemode#table#IsTable(5) to_be_true
end
it 'should be true when on a table border'
Expect tablemode#table#IsTable(1) to_be_true
Expect tablemode#table#IsTable(3) to_be_true
Expect tablemode#table#IsTable(6) to_be_true
end
it 'should not be true when not on a table'
Expect tablemode#table#IsTable(7) to_be_false
end
end
describe 'IsHeader' describe 'IsHeader'
before before
new new