diff --git a/CHANGELOG.md b/CHANGELOG.md
index 77075f6..2c9c749 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,11 @@
# 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
diff --git a/README.md b/README.md
index 13446a0..f55d876 100644
--- a/README.md
+++ b/README.md
@@ -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
tables as you type.
diff --git a/autoload/tablemode/spreadsheet/formula.vim b/autoload/tablemode/spreadsheet/formula.vim
index e1d0026..0ae8eb0 100644
--- a/autoload/tablemode/spreadsheet/formula.vim
+++ b/autoload/tablemode/spreadsheet/formula.vim
@@ -50,7 +50,7 @@ function! tablemode#spreadsheet#formula#Add(...) "{{{2
endif
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 [target, expr] = map(split(a:expr, '='), 'tablemode#utils#strip(v:val)')
let cell = substitute(target, '\$', '', '')
@@ -98,15 +98,15 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
if 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
if cell =~# ','
if expr =~# '\$'
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
- call tablemode#spreadsheet#cell#SetCell(eval(expr), line, row, colm)
+ silent! call tablemode#spreadsheet#cell#SetCell(eval(expr), line, row, colm)
else
let [row, line] = [1, tablemode#spreadsheet#GetFirstRow(line)]
while !s:IsFormulaLine(line)
@@ -114,10 +114,10 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
let texpr = expr
if expr =~# '\$'
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
- call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
+ silent! call tablemode#spreadsheet#cell#SetCell(eval(texpr), line, row, colm)
let row += 1
endif
let line += 1
@@ -125,7 +125,7 @@ function! tablemode#spreadsheet#formula#EvaluateExpr(expr, line) abort "{{{2
endif
endfunction
-function! tablemode#spreadsheet#formula#EvaluateFormulaLine() abort "{{{2
+function! tablemode#spreadsheet#formula#EvaluateFormulaLine() "{{{2
let exprs = []
let cstring = &commentstring
let matchexpr = ''
diff --git a/doc/table-mode.txt b/doc/table-mode.txt
index f1477fd..c22fe26 100644
--- a/doc/table-mode.txt
+++ b/doc/table-mode.txt
@@ -1,7 +1,7 @@
*table-mode.txt* Table Mode for easy table formatting
===============================================================================
Table Mode, THE AWESOME AUTOMATIC TABLE CREATOR & FORMATTER
- VERSION 4.7.6.1
+ VERSION 4.8.0
Author: Dhruva Sagar
License: MIT