6N46BCIIDUA2NCB7VHX6E47WNYYRSDMBHDOABZSVEEMJXWH2LLOAC
MDLZDQL6E4N5RLKKKRYNHSFONGR6RWGGYJ7JN4QVOAKJOAKNPOMQC
RXCY7LD6ZRIOIKZEYKLMCYPMQPXF4DOEEFBDLVR2B22BXLZJFFBQC
A3TVGLVHSVLMEHLHB3TPBSD3QGNVGX3DIK6BEBDTTHWBNW4ALMRAC
HGGMS7P6BRIGWP6DZS3KLRXQPRETMB2GUULCQZAED6IYD5ENK2DQC
IOXOZB2VUXVUEINLFBT4SPSJV32X5ZFT5FKSVRAIEXEFQJLG6MHQC
UBKNEWYVVUOMWISFIYX364ZHXEEY46V5EZZPFHW5YSU26YVXUABQC
IOVPOFAVXEQIZ7BCFVVAWFW3RYFXPK2GOILDWA6N6QHQHLAJ4XTAC
5FLRDDUAB7NCOKJKK57IVQBETGX7JTT7GVKFT46ORSZ7OJ7Q2UFQC
DZNNVEMP3EYFGAEFWMBSMPU55VQT7QVAVNNOG473CN3FAT4TTARQC
IUA6MCZWWCFQ4EJ4GBWYAPLM4IE7SFB34CGSJJTBVOAFTSL4EDEAC
XJLV3OIIPQ6V6YHJGFI7RRDYI5MXTXCXSVKPOZFUOGMV4B2DEJSQC
ABDQA6HCTOUQXY5IDGDTCDBR5DA2WAHUWHBS5EIRYNUJNQCM6GOQC
(defun slime-ecl ()
(interactive)
(let ((inferior-lisp-program "ecl"))
(slime)))
(defun slime-cmucl ()
(interactive)
(let ((inferior-lisp-program "cmucl"))
(slime)))
(defun slime-sbcl ()
(interactive)
(let ((inferior-lisp-program "sbcl"))
(slime)))
(defun slime-ccl ()
(interactive)
(let ((inferior-lisp-program "ccl"))
(slime)))
(defun find-use-clause (current-form)
(when current-form
(destructuring-bind (discriminator . packages) current-form
(case discriminator
(:use (remove-if (op (or (eql :cl _)))
(cdr current-form)))
(defpackage (find-use-clause
(find-if (lambda (f)
(and (listp f)
(eql (car f) :use)))
'(defpackage :tracking-sim (:use :cl :alexandria :serapeum) (:export)))))))))
(defun load-package-uses ()
(interactive)
(slime-eval-async `(ql:quickload ',(find-use-clause (list-at-point)))))
(setq inferior-lisp-program "~/sbcl/bin/sbcl"
slime-company-completion 'fuzzy)
(add-hook 'lisp-mode-hook
'(lambda ()
;;(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol)
;; (unless (string= "*slime-scratch*" (buffer-name))
;; (paredit-mode)
;; (evil-paredit-mode))
(rainbow-delimiters-mode)))
(setq inferior-lisp-program "~/sbcl/bin/sbcl")
(setq slime-contribs
'(slime-fancy
slime-company
slime-macrostep
slime-trace-dialog
slime-mdot-fu))
(defun setup-lisp-mode ()
(comment
(unless (string= "*slime-scratch*" (buffer-name))
(paredit-mode)
(evil-paredit-mode)))
(unless (string= "*slime-scratch*" (buffer-name))
(smartparens-strict-mode 1)
(evil-smartparens-mode 1)
(aggressive-indent-mode 1))
(define-key evil-insert-state-map "^N" 'slime-fuzzy-indent-and-complete-symbol)
(unless (string= "*slime-scratch*" (buffer-name))
(paredit-mode)
(evil-paredit-mode))
(rainbow-delimiters-mode))
(add-hook 'lisp-mode-hook 'setup-lisp-mode)
(add-hook 'emacs-lisp-mode-hook 'setup-lisp-mode)
(defun slime-ecl ()
(interactive)
(let ((inferior-lisp-program "ecl"))
(slime)))
(defun slime-cmucl ()
(interactive)
(let ((inferior-lisp-program "cmucl"))
(slime)))
(defun slime-sbcl ()
(interactive)
(let ((inferior-lisp-program "sbcl"))
(slime)))
(defun slime-ccl ()
(interactive)
(let ((inferior-lisp-program "ccl"))
(slime)))
(defun find-use-clause (current-form)
(when current-form
(destructuring-bind (discriminator . packages) current-form
(case discriminator
(:use (remove-if (op (or (eql :cl _)))
(cdr current-form)))
(defpackage (find-use-clause
(find-if (lambda (f)
(and (listp f)
(eql (car f) :use)))
'(defpackage :tracking-sim (:use :cl :alexandria :serapeum) (:export)))))))))
(defun load-package-uses ()
(interactive)
(slime-eval-async `(ql:quickload ',(find-use-clause (list-at-point)))))
(define-key evil-insert-state-map (kbd "C-c j") 'skeleton-next-position)
(define-key evil-insert-state-map (kbd "C-c k") 'skeleton-prev-position)
(define-key evil-normal-state-map " g" 'helm-generate-lisp-skeleton)
(define-key evil-visual-state-map " g" 'helm-generate-lisp-skeleton))
(use-package lisp-skeletons
:config
(add-hook 'skeleton-end-hook 'skeleton-make-markers)
(define-key evil-insert-state-map (kbd "C-c j") 'skeleton-next-position)
(define-key evil-insert-state-map (kbd "C-c k") 'skeleton-prev-position)
(define-key evil-normal-state-map " g" 'helm-generate-lisp-skeleton)
(define-key evil-visual-state-map " g" 'helm-generate-lisp-skeleton))