mirror of
https://github.com/dhruvasagar/vim-table-mode.git
synced 2025-11-09 03:23:47 -05:00
Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
816072c0f5 | ||
|
|
698ff3074c | ||
|
|
494d95d2b3 | ||
|
|
9191af46b6 |
36
CHANGELOG.md
36
CHANGELOG.md
@@ -1,5 +1,41 @@
|
|||||||
# Change Log
|
# Change Log
|
||||||
|
|
||||||
|
## Version 4.8.0
|
||||||
|
* Improved formula engine
|
||||||
|
- Does not cast column values to float
|
||||||
|
- Silences errors during evaluation, see `v:errmsg` for error information
|
||||||
|
from last evaluation for debugging issues with formulas
|
||||||
|
|
||||||
|
## Version 4.7.6.1
|
||||||
|
* Improved handling of `g:table_mode_ignore_align` configuration, now allows
|
||||||
|
per buffer overrides
|
||||||
|
|
||||||
|
## Version 4.7.6
|
||||||
|
* Add configuration `g:table_mode_ignore_align`
|
||||||
|
|
||||||
|
## Version 4.7.5
|
||||||
|
* Improved undo
|
||||||
|
|
||||||
|
## Version 4.7.3
|
||||||
|
* Adding option `g:table_mode_tableize_auto_border` to enable automatic border
|
||||||
|
creation when using Tableize to create tables
|
||||||
|
|
||||||
|
## Version 4.7.2
|
||||||
|
* Fix formula evaluation to respect border rows and apply formula expressions
|
||||||
|
correctly
|
||||||
|
|
||||||
|
## Version 4.6.8
|
||||||
|
* Upgrade rake
|
||||||
|
|
||||||
|
## Version 4.6.7
|
||||||
|
* Remove auto align feature for insert mode
|
||||||
|
|
||||||
|
## Version 4.6.6
|
||||||
|
* Add configuration `g:table_mode_update_time`
|
||||||
|
|
||||||
|
## Version 4.6.5
|
||||||
|
* Add support for auto aligning
|
||||||
|
|
||||||
## Version 4.6.4.1
|
## Version 4.6.4.1
|
||||||
* Added a fix for markdown commentstring
|
* Added a fix for markdown commentstring
|
||||||
|
|
||||||
|
|||||||
11
README.md
11
README.md
@@ -1,4 +1,4 @@
|
|||||||
# VIM Table Mode v4.7.5 [](https://travis-ci.org/dhruvasagar/vim-table-mode)
|
# VIM Table Mode v4.8.0 [](https://travis-ci.org/dhruvasagar/vim-table-mode)
|
||||||
|
|
||||||
An awesome automatic table creator & formatter allowing one to create neat
|
An awesome automatic table creator & formatter allowing one to create neat
|
||||||
tables as you type.
|
tables as you type.
|
||||||
@@ -116,6 +116,15 @@ To get ReST-compatible tables use
|
|||||||
|
|
||||||
Markdown and ReST filetypes have automatically configured corners.
|
Markdown and ReST filetypes have automatically configured corners.
|
||||||
|
|
||||||
|
> If you wish to override their configurations, it should be done in an after
|
||||||
|
> plugin, for example :
|
||||||
|
>
|
||||||
|
> In a `$VIM/after/ftplugin/markdown/custom.vim` you can add the following :
|
||||||
|
>
|
||||||
|
> ```viml
|
||||||
|
> let b:table_mode_corner='+'
|
||||||
|
> ```
|
||||||
|
|
||||||
You can also define in a table header border how its content should be
|
You can also define in a table header border how its content should be
|
||||||
aligned, whether center, right or left by using a `:` character defined by
|
aligned, whether center, right or left by using a `:` character defined by
|
||||||
`g:table_mode_align_char` option.
|
`g:table_mode_align_char` option.
|
||||||
|
|||||||
@@ -115,7 +115,11 @@ function! tablemode#align#Align(lines) "{{{2
|
|||||||
endfor
|
endfor
|
||||||
endfor
|
endfor
|
||||||
|
|
||||||
let alignments = tablemode#align#alignments(lines[0].lnum, len(lines[0].text))
|
if tablemode#utils#get_buffer_or_global_option('table_mode_ignore_align') ==# 1
|
||||||
|
let alignments = []
|
||||||
|
else
|
||||||
|
let alignments = tablemode#align#alignments(lines[0].lnum, len(lines[0].text))
|
||||||
|
endif
|
||||||
|
|
||||||
for idx in range(len(lines))
|
for idx in range(len(lines))
|
||||||
let tlnum = lines[idx].lnum
|
let tlnum = lines[idx].lnum
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ function! tablemode#spreadsheet#formula#Add(...) "{{{2
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) "{{{2
|
||||||
let line = tablemode#utils#line(a:line)
|
let line = tablemode#utils#line(a:line)
|
||||||
let [target, expr] = map(split(a:expr, '='), 'tablemode#utils#strip(v:val)')
|
let [target, expr] = map(split(a:expr, '='), 'tablemode#utils#strip(v:val)')
|
||||||
let cell = substitute(target, '\$', '', '')
|
let cell = substitute(target, '\$', '', '')
|
||||||
@@ -98,15 +98,15 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
|||||||
|
|
||||||
if expr =~# '\$\-\?\d\+,\-\?\d\+'
|
if expr =~# '\$\-\?\d\+,\-\?\d\+'
|
||||||
let expr = substitute(expr, '\$\(\-\?\d\+\),\(\-\?\d\+\)',
|
let expr = substitute(expr, '\$\(\-\?\d\+\),\(\-\?\d\+\)',
|
||||||
\ '\=str2float(tablemode#spreadsheet#cell#GetCells(line, submatch(1), submatch(2)))', 'g')
|
\ '\=tablemode#spreadsheet#cell#GetCells(line, submatch(1), submatch(2))', 'g')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if cell =~# ','
|
if cell =~# ','
|
||||||
if expr =~# '\$'
|
if expr =~# '\$'
|
||||||
let expr = substitute(expr, '\$\(\d\+\)',
|
let expr = substitute(expr, '\$\(\d\+\)',
|
||||||
\ '\=str2float(tablemode#spreadsheet#cell#GetCells(line, row, submatch(1)))', 'g')
|
\ '\=tablemode#spreadsheet#cell#GetCells(line, row, submatch(1))', 'g')
|
||||||
endif
|
endif
|
||||||
call tablemode#spreadsheet#cell#SetCell(eval(expr), line, row, colm)
|
silent! call tablemode#spreadsheet#cell#SetCell(eval(expr), line, row, colm)
|
||||||
else
|
else
|
||||||
let [row, line] = [1, tablemode#spreadsheet#GetFirstRow(line)]
|
let [row, line] = [1, tablemode#spreadsheet#GetFirstRow(line)]
|
||||||
while !s:IsFormulaLine(line)
|
while !s:IsFormulaLine(line)
|
||||||
@@ -114,10 +114,10 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
|||||||
let texpr = expr
|
let texpr = expr
|
||||||
if expr =~# '\$'
|
if expr =~# '\$'
|
||||||
let texpr = substitute(texpr, '\$\(\d\+\)',
|
let texpr = substitute(texpr, '\$\(\d\+\)',
|
||||||
\ '\=str2float(tablemode#spreadsheet#cell#GetCells(line, row, submatch(1)))', 'g')
|
\ '\=tablemode#spreadsheet#cell#GetCells(line, row, submatch(1))', 'g')
|
||||||
endif
|
endif
|
||||||
|
|
||||||
call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
|
silent! call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
|
||||||
let row += 1
|
let row += 1
|
||||||
endif
|
endif
|
||||||
let line += 1
|
let line += 1
|
||||||
@@ -125,7 +125,7 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
|
|||||||
endif
|
endif
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
function! tablemode#spreadsheet#formula#EvaluateFormulaLine() abort "{{{2
|
function! tablemode#spreadsheet#formula#EvaluateFormulaLine() "{{{2
|
||||||
let exprs = []
|
let exprs = []
|
||||||
let cstring = &commentstring
|
let cstring = &commentstring
|
||||||
let matchexpr = ''
|
let matchexpr = ''
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
*table-mode.txt* Table Mode for easy table formatting
|
*table-mode.txt* Table Mode for easy table formatting
|
||||||
===============================================================================
|
===============================================================================
|
||||||
Table Mode, THE AWESOME AUTOMATIC TABLE CREATOR & FORMATTER
|
Table Mode, THE AWESOME AUTOMATIC TABLE CREATOR & FORMATTER
|
||||||
VERSION 4.7.5
|
VERSION 4.8.0
|
||||||
|
|
||||||
Author: Dhruva Sagar <http://dhruvasagar.com/>
|
Author: Dhruva Sagar <http://dhruvasagar.com/>
|
||||||
License: MIT <http://opensource.org/licenses/MIT/>
|
License: MIT <http://opensource.org/licenses/MIT/>
|
||||||
@@ -78,6 +78,7 @@ Manipulation of tables:
|
|||||||
using |table-mode-insert-column-before-map| or after the cusor using
|
using |table-mode-insert-column-before-map| or after the cusor using
|
||||||
|table-mode-insert-column-after-map|.
|
|table-mode-insert-column-after-map|.
|
||||||
|
|
||||||
|
*table-formulas*
|
||||||
Table Formulas:
|
Table Formulas:
|
||||||
Table Mode now has support for formulas like a spreadsheet. There
|
Table Mode now has support for formulas like a spreadsheet. There
|
||||||
are 2 ways of defining formulas :
|
are 2 ways of defining formulas :
|
||||||
@@ -100,6 +101,7 @@ Table Formulas:
|
|||||||
You can evaluate the formula line using |:TableEvalFormulaLine| or the
|
You can evaluate the formula line using |:TableEvalFormulaLine| or the
|
||||||
mapping |<Leader>tfe| defined by the option |table-mode-expr-calc-map|
|
mapping |<Leader>tfe| defined by the option |table-mode-expr-calc-map|
|
||||||
|
|
||||||
|
*formula-expressions*
|
||||||
Formula Expressions :
|
Formula Expressions :
|
||||||
Expressions are of the format '$target = formula'.
|
Expressions are of the format '$target = formula'.
|
||||||
|
|
||||||
@@ -187,6 +189,7 @@ Overview:
|
|||||||
|table-mode-auto-align| ......... Set if the table mode should auto
|
|table-mode-auto-align| ......... Set if the table mode should auto
|
||||||
align as you type
|
align as you type
|
||||||
|table-mode-tableize-auto-border| Set if tableize adds row borders
|
|table-mode-tableize-auto-border| Set if tableize adds row borders
|
||||||
|
|table-mode-ignore-align| ....... Set to ignore alignment characters
|
||||||
|
|
||||||
g:loaded_table_mode *table-mode-loaded*
|
g:loaded_table_mode *table-mode-loaded*
|
||||||
Use this option to disable the plugin: >
|
Use this option to disable the plugin: >
|
||||||
@@ -376,6 +379,12 @@ g:table_mode_tableize_auto_border
|
|||||||
Enables adding row borders to tables when created using tableize. >
|
Enables adding row borders to tables when created using tableize. >
|
||||||
let g:table_mode_tableize_auto_border = 0
|
let g:table_mode_tableize_auto_border = 0
|
||||||
<
|
<
|
||||||
|
*table-mode-ignore-align*
|
||||||
|
g:table_mode_ignore_align
|
||||||
|
If enabled, ignores alignment characters on the header border and always
|
||||||
|
left aligns. >
|
||||||
|
let g:table_mode_ignore_align = 0
|
||||||
|
<
|
||||||
|
|
||||||
===============================================================================
|
===============================================================================
|
||||||
MAPPINGS *table-mode-mappings*
|
MAPPINGS *table-mode-mappings*
|
||||||
|
|||||||
@@ -61,6 +61,7 @@ call s:SetGlobalOptDefault('table_mode_syntax', 1)
|
|||||||
call s:SetGlobalOptDefault('table_mode_auto_align', 1)
|
call s:SetGlobalOptDefault('table_mode_auto_align', 1)
|
||||||
call s:SetGlobalOptDefault('table_mode_update_time', 500)
|
call s:SetGlobalOptDefault('table_mode_update_time', 500)
|
||||||
call s:SetGlobalOptDefault('table_mode_tableize_auto_border', 0)
|
call s:SetGlobalOptDefault('table_mode_tableize_auto_border', 0)
|
||||||
|
call s:SetGlobalOptDefault('table_mode_ignore_align', 0)
|
||||||
|
|
||||||
if !g:table_mode_always_active "{{{2
|
if !g:table_mode_always_active "{{{2
|
||||||
exec "nnoremap <silent>" g:table_mode_map_prefix . g:table_mode_toggle_map ":<C-U>call tablemode#Toggle()<CR>"
|
exec "nnoremap <silent>" g:table_mode_map_prefix . g:table_mode_toggle_map ":<C-U>call tablemode#Toggle()<CR>"
|
||||||
|
|||||||
@@ -36,3 +36,4 @@ let g:table_mode_syntax = 1
|
|||||||
let g:table_mode_auto_align = 1
|
let g:table_mode_auto_align = 1
|
||||||
let g:table_mode_update_time = 500
|
let g:table_mode_update_time = 500
|
||||||
let g:table_mode_tableize_auto_border = 0
|
let g:table_mode_tableize_auto_border = 0
|
||||||
|
let g:table_mode_ignore_align = 0
|
||||||
|
|||||||
Reference in New Issue
Block a user