diff --git a/cli.py b/cli.py index 9adc0d5..8b2905b 100755 --- a/cli.py +++ b/cli.py @@ -7,7 +7,22 @@ def main(): if len(sys.argv) == 0: - sys.stderr("Pass a latex formated string to evaluate") + sys.stderr.write("Pass a latex formated string to evaluate") + return + if sys.argv[1] == "-wak": # Wolfram alpha backend + try: + from wolframalpha import Client + except ModuleNotFoundError: + sys.stderr.write("Run pip install wolframalpha") + return + if len(sys.argv) < 4: + sys.stderr.write("Pass in the wolframalpha key after -wak and the query after it") + return + client = Client(sys.argv[2]) + res = client.query(" ".join(sys.argv[3:])) + for pod in res.pods: + for sub in pod.subpods: + print(sub.plaintext) return try: for r in solve(" ".join(sys.argv[1:])): diff --git a/texsolver.el b/texsolver.el index bd8768a..9d1803f 100644 --- a/texsolver.el +++ b/texsolver.el @@ -15,14 +15,17 @@ ;;; Code: (defvar texsolver-cli-path "~/bin/texsolver.py") +(defvar texsolver-wolframalpha-key "") -(defun texsolver-suggest-text (text) +(defun texsolver-suggest-text (text &optional extra-args) "Get suggestions for text" + (or extra-args + (setq extra-args "")) (if (file-exists-p texsolver-cli-path) (progn (message "Running...") - (let ((output (shell-command-to-string (format "%s \"%s\"" (expand-file-name - texsolver-cli-path) - texsolver-last-text)))) + (let ((output (shell-command-to-string (format "%s %s \"%s\"" (expand-file-name + texsolver-cli-path) + extra-args texsolver-last-text)))) (if (> (string-width output) 0) (progn (setq texsolver-list (split-string output "\n")) @@ -52,5 +55,20 @@ end)) (texsolver-suggest-text texsolver-last-text)) +(defun texsolver-worlfram-query (query) + "Users wolfram alpha backend. Requires texsolver-worlframalpha-key" + (interactive "sWA Query: ") + (setq texsolver-last-text query) + (texsolver-suggest-text query (format "-wak %s" texsolver-wolframalpha-key))) + +(defun texsolver-worlfram-region (start end) + "Users wolfram alpha backend. Requires texsolver-worlframalpha-key" + (interactive "r") + (setq texsolver-last-text + (buffer-substring-no-properties + start + end)) + (texsolver-suggest-text texsolver-last-text (format "-wak %s" texsolver-wolframalpha-key))) + (provide 'texsolver) ;;; texsolver.el ends here diff --git a/texsuggest.py b/texsuggest.py index a068a25..27b69af 100644 --- a/texsuggest.py +++ b/texsuggest.py @@ -9,7 +9,7 @@ from sympy.parsing.latex import LaTeXParsingError, parse_latex from sympy.plotting import plot as spplot -SYMPY_SOLVERS = ["simplify", "expand", "doit"] +SYMPY_SOLVERS = ["simplify", "expand", "doit", "doit_numerically"] def _parse_latex(*args): with contextlib.redirect_stdout(None):