52 lines
1.8 KiB
EmacsLisp
52 lines
1.8 KiB
EmacsLisp
;;; Lisp
|
|
|
|
(require 'init-lispy)
|
|
|
|
(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))
|
|
|
|
;; Read CLHS locally.
|
|
(or
|
|
;; Quicklisp package.
|
|
(load "~/.quicklisp/clhs-use-local.el" 'noerror)
|
|
;; Unofficial Guix package (non-free license).
|
|
(when (require 'clhs nil 'noerror)
|
|
(clhs-setup)))
|
|
|
|
(with-eval-after-load 'sly
|
|
(require 'init-sly))
|
|
|
|
(with-eval-after-load 'slime
|
|
(require 'init-slime))
|
|
|
|
;; #p completion. See https://github.com/joaotavora/sly/issues/405.
|
|
(with-eval-after-load 'company
|
|
(defcustom ambrevar/complete-cl-file-prefix "./"
|
|
"Prefix for `ambrevar/complete-cl-file'."
|
|
:type 'string)
|
|
|
|
(defun ambrevar/complete-cl-file (action &rest _)
|
|
(interactive (list 'interactive))
|
|
(cl-case action
|
|
(interactive (company-begin-backend #'ambrevar/complete-cl-file))
|
|
(candidates
|
|
(cond ((and (save-excursion (looking-back "#p" (- (point) 2)))
|
|
(not (looking-at-p "\"")))
|
|
(insert "\"")
|
|
(save-excursion (insert "\""))
|
|
(company-files 'candidates ambrevar/complete-cl-file-prefix))
|
|
((save-excursion (looking-back "#p\"" (- (point) 3)))
|
|
(company-files 'candidates ambrevar/complete-cl-file-prefix))))
|
|
(prefix "")
|
|
(t (company-files action))))
|
|
|
|
;; (add-to-list 'company-backends 'ambrevar/complete-cl-file)
|
|
;; (setq company-backends (cons 'company-files (delete 'company-files company-backends)))
|
|
)
|
|
|
|
(provide 'init-lisp)
|