An extension to FoldingText to do math calculations.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
LICENSE
README.md
main.js
mathjs.js
package.json
spec.js

README.md

math.ftplugin

An extension to FoldingText to do math calculations and keep the results in the text. When you add this directory to your plugins directory for Foldingtext, you have to relaunch FoldingText to get the math extension working.

To use it, add .imath to a header or any line. Type in your math line(s) ending with =>. When you type the =>, the math expression will be evaluated and added to the line. If the line that has the .imath extension is a normal line, then your math lines will have to be indented.

Already evaluated lines will not get recalculated until the result and the space infront of it is removed. The => has to be the last thing on the line for evaluation. Therefore, if you define a variable and change it, you will have to delete the last result for the expression to be re-evaluated. I did it this way so that they system is not constantly recalculating everything all the time.

Latest Addition: July 21, 2014 You can now define functions and use them. You can also have variables in another section. If it is folded, then that section will not be used in the calculations. If unfolded, then it will be used. Very handy for doing cases. Also, if the mathjs library gives an error, the error information is added to the result after the ?.

Functions are defined with the =.

For example:

# test.imath
1 + 1 => 2
(2 * 2)/7 => 0.5714285714285714
4 + 8 => 12
sin(50 deg) => 0.766044443118978
log(5) => 1.6094379124341003
10^log(5) => 40.68533651197375
10^1.61 => 40.73802778041128
a = 1
b = 2
c = 1
result = (b + sqrt(b^2-4*a*c))/2*a
result => 1

d = 4
e = -8
f = 1 
g = 80
m(x) = d*x^3 + e*x^2 + f*x + g
m(10) => 3290

g = [ 1, 2, 3]
h = [ 5, 5, 5 ]
g-h=> [-4, -3, -2]

g = [ 1, 2, 3]
h = [ 5, 5, 5 ]
g+h=> [6, 7, 8]

It uses the math.js library to evaluate the math. Therefore, to know what math it can handle, please refer to the math.js library website.