(add-to-list 'load-path "~/elisp/3rd-party-lib/slime/") (add-to-list 'load-path "~/elisp/3rd-party-lib/slime/contrib/") ;; (setq special-display-regexps ;; (quote (("slime-repl" (height . 40) (width . 80) ;; (top . 85) (left . 50)) ;; ("sldb" (height . 30) (width . 50) ;; (left . 10) (top . 25))))) (eval-after-load "hyperspec" '(progn (setq common-lisp-hyperspec-root "/home/liang/elisp/slime/HyperSpec/"))) (require-maybe 'slime-autoloads) (eval-after-load "slime" '(progn (slime-setup wl-slime-contrib-list) ; fixed per suggestion from tcr on #lisp (define-key slime-mode-map [return] 'paredit-newline) (define-key slime-repl-mode-map [tab] 'indent-or-complete) (define-key inferior-slime-mode-map [(control ?c) (control ?p)] 'slime-repl-previous-prompt) (setq slime-net-coding-system 'utf-8-unix) (setq slime-lisp-implementations '((sbcl ("sbcl" "--core" "/home/liang/elisp/slime/sbcl/sbcl.core-for-slime") :coding-system utf-8-unix) (cmucl ("lisp")) (ecl ("ecl")) (allegro ("/usr/local/stow/AllegroCL/alisp")) (clisp ("clisp" "-K" "full") :coding-system utf-8-unix) (lispworks ("")) (openmcl ("dx86cl64")))) (defun start-slime () (interactive) (unless (slime-connected-p) (save-excursion (slime)))) (add-hook 'slime-mode-hook 'start-slime) (add-hook 'slime-load-hook #'(lambda () (require 'slime-fancy))) (add-hook 'inferior-lisp-mode-hook #'(lambda () (inferior-slime-mode t))) (add-hook 'slime-repl-mode-hook 'turn-on-cldoc-mode) (global-set-key "\C-cf" 'slime-selector) (defun indent-or-complete (&optional arg) (interactive "p") (if (or (looking-back "^\\s-*") (bolp)) (call-interactively 'lisp-indent-line) (call-interactively 'slime-indent-and-complete-symbol))) (eval-after-load "lisp-mode" '(progn (define-key lisp-mode-map [tab] 'indent-or-complete) (define-key lisp-mode-map [(meta ?q)] 'slime-reindent-defun))))) (autoload 'turn-on-cldoc-mode "cldoc" nil t) (add-hook 'lisp-mode-hook 'turn-on-cldoc-mode) (add-hook 'emacs-lisp-mode-hook (lambda () (eldoc-mode 1))) (require-maybe 'paredit) (eval-after-load "paredit" '(progn (dolist (hook '(emacs-lisp-mode-hook lisp-mode-hook slime-repl-mode-hook)) (add-hook hook #'(lambda nil (paredit-mode 1) (show-paren-mode 1)))) (define-key paredit-mode-map [?\)] 'paredit-close-parenthesis) (define-key paredit-mode-map [(meta ?\))] 'paredit-close-parenthesis-and-newline))) (provide 'wl-common-lisp)