Don't unecessarily assume responsibility for checking SLIME version.
[emacs.d.git] / lisp / maximarc.el
blob258bbbf784da5bc7a32bad972ed618248d9cfb16
1 ;;; An rc to setup Emacs as a Maxima client.
3 ;;; I can't without Common Lisp.
4 (require 'cl-lib)
6 (defvar maxima-path '("~/share/maxima"
7 "/usr/local/share/maxima"
8 "/usr/share/maxima")
9 "List of directories to search for a distribution of Maxima.")
11 (defun find-maxima-emacs-contrib ()
12 (cl-find-if (lambda (path) (file-exists-p path))
13 (cl-mapcan (lambda (path)
14 (mapcar (lambda (path)
15 (concat (file-name-as-directory path)
16 "emacs/"))
17 ;; Prefer larger version numbers.
18 (sort (file-expand-wildcards
19 (concat (file-name-as-directory
20 path)
21 "*"))
22 #'string-greaterp)))
23 maxima-path)))
25 (defun setup-maxima ()
26 ;; Find the emacs directory.
27 (let ((maxima-emacs-contrib (find-maxima-emacs-contrib)))
28 (when maxima-emacs-contrib
29 ;; Use maxima.el.
30 (add-to-list 'load-path maxima-emacs-contrib)
31 (autoload 'maxima-mode "maxima" "Maxima mode." t)
32 (autoload 'maxima "maxima" "Maxima interaction." t)
33 (add-to-list 'auto-mode-alist '("\\.ma?[cx]$" . maxima-mode))
34 ;; Also use imaxima.el.
35 (autoload 'imaxima "imaxima" "Maxima interaction with images." t)
36 (setq imaxima-fnt-size "Large"
37 imaxima-use-maxima-mode-flag t))))
39 (setup-maxima)