mirror of
https://github.com/dhruvasagar/vim-table-mode.git
synced 2025-11-08 11:03:47 -05:00
Add support for center alignment. Fix #57
We now have support for center alignment, simply add a header border with the `g:table_mode_align_char` as both the first and the last character so it would look something like `+:.....:+` to center align the column values.
This commit is contained in:
@@ -13,7 +13,7 @@ function! s:Padding(string, length, where) "{{{3
|
|||||||
elseif a:where =~# 'r'
|
elseif a:where =~# 'r'
|
||||||
return repeat(" ", gap_length) . a:string
|
return repeat(" ", gap_length) . a:string
|
||||||
elseif a:where =~# 'c'
|
elseif a:where =~# 'c'
|
||||||
let right = spaces / 2
|
let right = gap_length / 2
|
||||||
let left = right + (right * 2 != gap_length)
|
let left = right + (right * 2 != gap_length)
|
||||||
return repeat(" ", left) . a:string . repeat(" ", right)
|
return repeat(" ", left) . a:string . repeat(" ", right)
|
||||||
endif
|
endif
|
||||||
@@ -64,14 +64,19 @@ function! tablemode#align#Split(string, delim)
|
|||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! tablemode#align#alignments(lnum, ncols) "{{{2
|
function! tablemode#align#alignments(lnum, ncols) "{{{2
|
||||||
|
let achr = g:table_mode_align_char
|
||||||
let alignments = []
|
let alignments = []
|
||||||
if tablemode#table#IsBorder(a:lnum+1)
|
if tablemode#table#IsBorder(a:lnum+1)
|
||||||
let hcols = tablemode#align#Split(getline(a:lnum+1), '[' . g:table_mode_corner . g:table_mode_corner_corner . ']')
|
let hcols = tablemode#align#Split(getline(a:lnum+1), '[' . g:table_mode_corner . g:table_mode_corner_corner . ']')
|
||||||
for idx in range(len(hcols))
|
for idx in range(len(hcols))
|
||||||
" Right align if header
|
" Right align if header
|
||||||
call add(alignments, 'l')
|
call add(alignments, 'l')
|
||||||
if hcols[idx] =~# g:table_mode_align_char . '$' | let alignments[idx] = 'r' | endif
|
if hcols[idx] =~# achr . '[^'.achr.']\+' . achr
|
||||||
if hcols[idx] !~# '[^0-9\.]' | let alignments[idx] = 'r' | endif
|
let alignments[idx] = 'c'
|
||||||
|
elseif hcols[idx] =~# achr . '$'
|
||||||
|
let alignments[idx] = 'r'
|
||||||
|
endif
|
||||||
|
" if hcols[idx] !~# '[^0-9\.]' | let alignments[idx] = 'r' | endif
|
||||||
endfor
|
endfor
|
||||||
end
|
end
|
||||||
return alignments
|
return alignments
|
||||||
|
|||||||
@@ -45,7 +45,10 @@ function! s:GenerateHeaderBorder(line) "{{{2
|
|||||||
|
|
||||||
for idx in range(len(hcols))
|
for idx in range(len(hcols))
|
||||||
if hcols[idx] =~# g:table_mode_align_char
|
if hcols[idx] =~# g:table_mode_align_char
|
||||||
if hcols[idx] =~# g:table_mode_align_char . '$'
|
" center align
|
||||||
|
if hcols[idx] =~# g:table_mode_align_char . '[^'.g:table_mode_align_char.']\+' . g:table_mode_align_char
|
||||||
|
let gcols[idx] = g:table_mode_align_char . gcols[idx][1:-2] . g:table_mode_align_char
|
||||||
|
elseif hcols[idx] =~# g:table_mode_align_char . '$'
|
||||||
let gcols[idx] = gcols[idx][:-2] . g:table_mode_align_char
|
let gcols[idx] = gcols[idx][:-2] . g:table_mode_align_char
|
||||||
else
|
else
|
||||||
let gcols[idx] = g:table_mode_align_char . gcols[idx][1:]
|
let gcols[idx] = g:table_mode_align_char . gcols[idx][1:]
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
| Title | Message |
|
| S. No | Title | Message |
|
||||||
|------:+--------:|
|
|-------+:------+:-------:|
|
||||||
| t1 | msg1 |
|
| 1 | t1 | msg1 |
|
||||||
| t2 | msg2 |
|
| 2 | t2 | msg2 |
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
| Title | Message |
|
|S. No|Title|Message|
|
||||||
|------:+--------:|
|
|-----+:----+:-----:|
|
||||||
| t1 | msg1 |
|
|1|t1|msg1|
|
||||||
| t2 | msg2 |
|
|2|t2|msg2|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|--------------+------------------+------------|
|
|--------------+------------------+------------|
|
||||||
| 测试测试 | 测试长度 | 长测试 |
|
| 测试测试 | 测试长度 | 长测试 |
|
||||||
|--------------+------------------+-----------:|
|
|--------------+:----------------:+-----------:|
|
||||||
| abc | 测试长度 | 长测试 |
|
| abc | 测试长度 | 长测试 |
|
||||||
| 长 | 测试测试测试测试 | 测试测试 |
|
| 长 | 测试测试测试测试 | 测试测试 |
|
||||||
| 测试测试 | 测试 | 测试测测试 |
|
| 测试测试 | 测试 | 测试测测试 |
|
||||||
| 测试测试测试 | 测试测试 | 测试 |
|
| 测试测试测试 | 测试测试 | 测试 |
|
||||||
|--------------+------------------+------------|
|
|--------------+------------------+------------|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
|--------+--------+------|
|
|--------+--------+------|
|
||||||
|测试测试|测试长度|长测试|
|
|测试测试|测试长度|长测试|
|
||||||
|--------+--------+-----:|
|
|--------+:------:+-----:|
|
||||||
|abc|测试长度|长测试|
|
|abc|测试长度|长测试|
|
||||||
|长|测试测试测试测试|测试测试|
|
|长|测试测试测试测试|测试测试|
|
||||||
|测试测试|测试|测试测测试|
|
|测试测试|测试|测试测测试|
|
||||||
|
|||||||
Reference in New Issue
Block a user