mirror of
https://github.com/dhruvasagar/vim-table-mode.git
synced 2025-11-08 11:03:47 -05:00
Improved Formula Engine
* Does not try to forcefully cast column content to float * Silences any errors during formula evaluation, you can look at `v:errmsg` to see if there was any error during the evaluation for debugging
This commit is contained in:
@@ -1,5 +1,11 @@
|
|||||||
# 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
|
## Version 4.7.6.1
|
||||||
* Improved handling of `g:table_mode_ignore_align` configuration, now allows
|
* Improved handling of `g:table_mode_ignore_align` configuration, now allows
|
||||||
per buffer overrides
|
per buffer overrides
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# VIM Table Mode v4.7.6.1 [](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.
|
||||||
|
|||||||
@@ -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.6.1
|
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/>
|
||||||
|
|||||||
Reference in New Issue
Block a user