diff --git a/Cask b/Cask index 984fb6581..8cdbd7cc5 100644 --- a/Cask +++ b/Cask @@ -167,6 +167,9 @@ (depends-on "company-tern") (depends-on "nodejs-repl") +;; Julia -- modules/module-julia.el +(depends-on "julia-mode") + ;; Lisp -- modules/module-lisp.el (depends-on "slime") diff --git a/init.el b/init.el index 06870ac03..193642795 100644 --- a/init.el +++ b/init.el @@ -73,6 +73,7 @@ module-haskell ; a language that's lazier than I am module-java ; the poster child for carpal tunnel syndome module-js ; all(hope(abandon(ye(who(enter(here)))))) + module-julia ; MATLAB, but fast module-lisp ; drowning in parentheses module-lua ; one-based indices? one-based indices. module-php ; making php less painful to work with diff --git a/modules/defuns/defuns-julia.el b/modules/defuns/defuns-julia.el new file mode 100644 index 000000000..ed42020fa --- /dev/null +++ b/modules/defuns/defuns-julia.el @@ -0,0 +1,15 @@ +;;; defuns-julia.el + +;;;###autoload +(defun narf/julia-repl () + "Run an inferior instance of `julia' inside Emacs." + (interactive) + (let ((buffer (get-buffer-create "*Julia*"))) + (unless (comint-check-proc "*Julia*") + (apply #'make-comint-in-buffer "Julia" "*Julia*" julia-program julia-arguments)) + (pop-to-buffer buffer) + (with-current-buffer buffer + (inferior-julia-mode)))) + +(provide 'defuns-julia) +;;; defuns-julia.el ends here diff --git a/modules/module-julia.el b/modules/module-julia.el new file mode 100644 index 000000000..50faf19db --- /dev/null +++ b/modules/module-julia.el @@ -0,0 +1,12 @@ +;;; module-julia.el + +(use-package julia-mode + :mode "\\.jl$" + :interpreter "julia" + :init + (define-repl! julia-mode narf/julia-repl) + (evil-set-initial-state 'inferior-julia-mode 'emacs) + (add-to-list 'editorconfig-indentation-alist '(julia-mode julia-indent-offset))) + +(provide 'module-julia) +;;; module-julia.el ends here