2018-04-11 16:50:42 +02:00
|
|
|
;;; Lisp
|
2018-03-24 17:02:25 +01:00
|
|
|
|
2019-03-08 09:37:34 +01:00
|
|
|
(require 'init-lispy)
|
|
|
|
(require 'init-rainbow)
|
2018-04-11 16:50:42 +02:00
|
|
|
|
2019-03-08 09:37:34 +01:00
|
|
|
(add-hook 'lisp-mode-hook 'ambrevar/turn-on-prettify-before-save)
|
|
|
|
(add-hook 'lisp-mode-hook 'ambrevar/turn-on-complete-filename)
|
|
|
|
(add-hook 'lisp-mode-hook 'ambrevar/turn-on-tab-width-to-8) ; Because some existing code uses tabs.
|
|
|
|
(add-hook 'lisp-mode-hook 'ambrevar/turn-off-indent-tabs) ; Should not use tabs.
|
|
|
|
(add-hook 'lisp-mode-hook 'ambrevar/init-lispy)
|
|
|
|
(when (fboundp 'rainbow-delimiters-mode)
|
|
|
|
(add-hook 'lisp-mode-hook #'rainbow-delimiters-mode))
|
2018-07-10 12:00:06 +02:00
|
|
|
|
2018-03-24 17:02:25 +01:00
|
|
|
;;; Common LISP.
|
2019-02-22 18:36:09 +01:00
|
|
|
(defun ambrevar/slime-switch-to-repl () ; TODO: Replace with `helm-defswitch'.
|
2019-02-19 13:32:18 +01:00
|
|
|
(interactive)
|
|
|
|
(pcase (length slime-net-processes)
|
|
|
|
(0 (slime))
|
2019-02-20 17:55:08 +01:00
|
|
|
(1 (if (and (eq (current-buffer) (slime-output-buffer))
|
|
|
|
(require 'helm-slime nil 'no-error))
|
|
|
|
(helm-slime-mini)
|
2019-02-19 13:32:18 +01:00
|
|
|
(pop-to-buffer (slime-output-buffer))))
|
|
|
|
(_ (if (require 'helm-slime nil 'noerror)
|
|
|
|
(helm-slime-mini)
|
|
|
|
(pop-to-buffer (slime-output-buffer))))))
|
|
|
|
|
2018-10-21 13:50:51 +02:00
|
|
|
(with-eval-after-load 'slime
|
2019-03-05 11:54:54 +01:00
|
|
|
(setq slime-lisp-implementations
|
|
|
|
'((sbcl ("sbcl" "--noinform"))
|
|
|
|
(ccl ("ccl"))))
|
2019-01-11 10:59:44 +01:00
|
|
|
(let ((slime-extra '(slime-fancy
|
|
|
|
;; slime-banner
|
|
|
|
slime-xref-browser
|
|
|
|
;; slime-highlight-edits ; A bit slow...
|
|
|
|
slime-sprof
|
|
|
|
slime-quicklisp
|
|
|
|
slime-asdf
|
|
|
|
slime-indentation)))
|
2018-10-21 13:50:51 +02:00
|
|
|
;; slime-company should not be required, see
|
|
|
|
;; https://github.com/anwyn/slime-company/issues/11.
|
2019-06-24 21:40:52 +02:00
|
|
|
;; TODO: Fix slime-repl-ansi-color.
|
|
|
|
;; (when (require 'slime-repl-ansi-color nil t)
|
|
|
|
;; (add-to-list 'slime-extra 'slime-repl-ansi-color)
|
|
|
|
;; (setq slime-repl-ansi-color t))
|
2018-10-21 13:50:51 +02:00
|
|
|
(when (ignore-errors (find-library-name "slime-company"))
|
|
|
|
(add-to-list 'slime-extra 'slime-company))
|
2019-01-11 11:00:10 +01:00
|
|
|
(slime-setup slime-extra)
|
|
|
|
(add-hook 'slime-repl-mode-hook 'ambrevar/init-lispy)))
|
2018-03-24 17:02:25 +01:00
|
|
|
|
2018-12-28 19:38:46 +01:00
|
|
|
;; Read CLHS locally.
|
2019-01-06 19:03:25 +01:00
|
|
|
(or
|
|
|
|
;; Quicklisp package.
|
|
|
|
(load "~/.quicklisp/clhs-use-local.el" 'noerror)
|
|
|
|
;; Unofficial Guix package (non-free license).
|
|
|
|
(when (require 'clhs nil 'noerror)
|
|
|
|
(clhs-setup)))
|
2018-12-28 19:38:46 +01:00
|
|
|
|
2018-03-24 17:02:25 +01:00
|
|
|
(provide 'init-lisp)
|