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)
|
||||
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
|
||||
endwhile
|
||||
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 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)
|
||||
let row_nr += 1
|
||||
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 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
|
||||
let line -= 1
|
||||
endwhile
|
||||
@@ -89,13 +89,13 @@ function! tablemode#spreadsheet#RowCount(line) "{{{2
|
||||
let line = tablemode#utils#line(a:line)
|
||||
|
||||
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
|
||||
let tline -= 1
|
||||
endwhile
|
||||
|
||||
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
|
||||
let tline += 1
|
||||
endwhile
|
||||
|
||||
@@ -58,7 +58,7 @@ function! tablemode#spreadsheet#cell#GetCells(line, ...) abort
|
||||
if row == 0
|
||||
let values = []
|
||||
let line = first_row
|
||||
while tablemode#table#IsRow(line) || tablemode#table#IsBorder(line)
|
||||
while tablemode#table#IsTable(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)]
|
||||
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_diff = row > 0 ? 1 : -1
|
||||
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)
|
||||
let row_nr += row_diff
|
||||
if row ==# row_nr | break | endif
|
||||
|
||||
@@ -149,7 +149,11 @@ function! tablemode#table#IsHeader(line) "{{{2
|
||||
endfunction
|
||||
|
||||
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
|
||||
|
||||
function! tablemode#table#AddBorder(line) "{{{2
|
||||
@@ -161,7 +165,7 @@ function! tablemode#table#Realign(line) "{{{2
|
||||
|
||||
let lines = []
|
||||
let [lnum, blines] = [line, []]
|
||||
while tablemode#table#IsRow(lnum) || tablemode#table#IsBorder(lnum)
|
||||
while tablemode#table#IsTable(lnum)
|
||||
if tablemode#table#IsBorder(lnum)
|
||||
call insert(blines, lnum)
|
||||
let lnum -= 1
|
||||
@@ -172,7 +176,7 @@ function! tablemode#table#Realign(line) "{{{2
|
||||
endwhile
|
||||
|
||||
let lnum = line + 1
|
||||
while tablemode#table#IsRow(lnum) || tablemode#table#IsBorder(lnum)
|
||||
while tablemode#table#IsTable(lnum)
|
||||
if tablemode#table#IsBorder(lnum)
|
||||
call add(blines, lnum)
|
||||
let lnum += 1
|
||||
|
||||
23
t/table.vim
23
t/table.vim
@@ -40,6 +40,29 @@ describe 'table'
|
||||
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'
|
||||
before
|
||||
new
|
||||
|
||||
Reference in New Issue
Block a user