mirror of
https://github.com/dhruvasagar/vim-table-mode.git
synced 2025-11-08 11:03:47 -05:00
Add tablemode#table#IsTable
This commit is contained in:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
23
t/table.vim
23
t/table.vim
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user