56 lines
2.3 KiB
EmacsLisp
56 lines
2.3 KiB
EmacsLisp
|
|
(defun ambrevar/slime-rainbow-init ()
|
|
(font-lock-mode -1)
|
|
(rainbow-delimiters-mode)
|
|
(font-lock-mode))
|
|
|
|
;; REVIEW: Fix issue https://github.com/slime/slime/issues/523:
|
|
;; Remove with SLIME 2.25.
|
|
(setq slime-defpackage-regexp
|
|
"^(\\(cl:\\|common-lisp:\\|uiop:\\)?\\(defpackage\\|define-package\\)\\>[ \t']*")
|
|
|
|
(setq slime-lisp-implementations
|
|
'((sbcl ("sbcl" "--noinform"))
|
|
(ccl ("ccl"))
|
|
(ecl ("ecl"))))
|
|
(let ((slime-extra '(slime-fancy
|
|
;; slime-banner
|
|
slime-mrepl
|
|
slime-xref-browser
|
|
;; slime-highlight-edits ; A bit slow...
|
|
slime-sprof
|
|
slime-quicklisp
|
|
slime-asdf
|
|
slime-indentation)))
|
|
;; 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))
|
|
|
|
;; slime-company should not be `require'd, see
|
|
;; https://github.com/anwyn/slime-company/issues/11.
|
|
(when (ignore-errors (find-library-name "slime-company"))
|
|
(add-to-list 'slime-extra 'slime-company))
|
|
(define-key slime-editing-map (kbd "C-c C-d C-h") 'slime-documentation-lookup)
|
|
(slime-setup slime-extra)
|
|
(add-hook 'slime-repl-mode-hook 'ambrevar/init-lispy)
|
|
(add-hook 'slime-repl-mode-hook #'ambrevar/slime-rainbow-init))
|
|
|
|
(when (require 'helm-slime nil :noerror)
|
|
(with-eval-after-load 'slime-repl
|
|
(defun ambrevar/helm/slime-set-keys ()
|
|
(define-key slime-repl-mode-map (kbd "M-p") 'helm-slime-repl-history)
|
|
(define-key slime-repl-mode-map (kbd "M-s") nil)
|
|
(define-key slime-repl-mode-map (kbd "M-s f") 'helm-comint-prompts-all)
|
|
(define-key slime-autodoc-mode-map (kbd "C-c C-d C-a") 'helm-slime-apropos)
|
|
(define-key slime-repl-mode-map (kbd "C-c C-x c") 'helm-slime-list-connections)
|
|
;; REVIEW: Seems that helm-company is less useful than helm-slime-complete.
|
|
(define-key slime-mode-map (kbd "M-<tab>") 'helm-slime-complete)
|
|
(dolist (key '("M-<tab>" "<tab>"))
|
|
(define-key slime-repl-mode-map (kbd key) 'helm-slime-complete)))
|
|
(add-hook 'slime-repl-mode-hook 'ambrevar/helm/slime-set-keys))
|
|
(global-helm-slime-mode)
|
|
(add-to-list 'helm-source-names-using-follow "SLIME xrefs"))
|
|
|
|
(provide 'init-slime)
|