Skip to content
my-slime-config.el 3.51 KiB
Newer Older
luismbo's avatar
luismbo committed
;;;; SLIME

Luís Oliveira's avatar
Luís Oliveira committed
(when siscog-p
  (add-to-list 'load-path "~/siscog/sc-emacs/slime/"))
luismbo's avatar
luismbo committed

(unless siscog-p
  (load (expand-file-name "~/quicklisp/slime-helper.el"))

  (slime-setup '(slime-fancy slime-asdf slime-indentation slime-banner
                                        ;slime-hyperdoc
                 slime-parse))
luismbo's avatar
luismbo committed

Luís Oliveira's avatar
Luís Oliveira committed
  ;(slime-require 'swank-listener-hooks)

  ;;(setq inferior-lisp-program "clisp -K full")
  ;;(setq inferior-lisp-program "~/Software/sbcl.sh")
Luís Oliveira's avatar
Luís Oliveira committed
  (setq inferior-lisp-program "/usr/local/bin/sbcl")
  ;;(setq inferior-lisp-program "/Users/luis/Software/bin/openmcl")
  ;;(setq inferior-lisp-program "acl")
Luís Oliveira's avatar
Luís Oliveira committed
  (setq slime-net-coding-system 'utf-8-unix))
luismbo's avatar
luismbo committed

(setq lisp-indent-function 'common-lisp-indent-function)
(setq slime-complete-symbol-function 'slime-fuzzy-complete-symbol)

(when siscog-p
  (defvar browse-url-chm-program "d:/cygwin/opt/bin/KeyHH.exe")
  (defvar browse-url-chm-program-args '("-emacs"))
  (defun browse-url-chm (url &rest args)
    (with-temp-buffer
      (let ((process (apply 'start-process
                            "CHMBrowser"
                            nil
                            browse-url-chm-program
                            (append browse-url-chm-program-args (list url)))))
        (process-kill-without-query process))))
  (setq browse-url-browser-function
        '(("\\.chm" . browse-url-chm)
          ("." . browse-url-default-windows-browser))))

luismbo's avatar
luismbo committed
(setq common-lisp-hyperspec-root
      (if siscog-p
          "z:/doc/clhs.chm::/"
          ; "http://intranet/TechDocs/Lisp/HyperSpec/"
          "file:///Users/luis/Documents/References/HyperSpec-7-0/HyperSpec/"))
luismbo's avatar
luismbo committed

;;; Various lisps

(defmacro defslime-start (name lisp &optional coding-system args)
  `(defun ,name ()
     (interactive)
     (slime-start :program ,lisp ,@(when args (list :program-args args))
                  :coding-system (or ',coding-system 'utf-8-unix))))

Luís Oliveira's avatar
Luís Oliveira committed
  (defslime-start allegro "~/Software/acl/alisp")
Luís Oliveira's avatar
Luís Oliveira committed
  (defslime-start allegro64 "~/Software/acl82.64/alisp")
  (defslime-start clisp "~/Software/bin/clisp" utf-8-unix '("-I" "-K" "full"))
  (defslime-start cmucl "~/Software/bin/lisp" iso-latin-1-unix)
Luís Oliveira's avatar
Luís Oliveira committed
  (defslime-start ccl "~/Software/ccl/scripts/ccl" iso-latin-1-unix)
  (defslime-start ccl64 "~/Software/ccl/scripts/ccl64" iso-latin-1-unix)
  (defslime-start sbcl "/usr/local/bin/sbcl" utf-8-unix)
  (defslime-start ecl "~/Software/bin/ecl" iso-latin-1-unix)
  (defslime-start lw "~/Software/bin/lw")
  (defslime-start abcl "~/sources/abcl/abcl" iso-latin-1-unix))
luismbo's avatar
luismbo committed

(defmacro defslime-connect (name host port)
  `(defun ,name ()
     (interactive)
     (slime-connect ,host ,port)))

(defslime-connect lw-local "localhost" 4000)
;; Lisps running on virtual PC
(defslime-connect lw-win "virtual" 4000)
(defslime-connect allegro-win "virtual" 4001)
(defslime-connect clisp-win "virtual" 4002)
(defslime-connect corman-win "virtual" 4003)

(setq slime-save-buffers nil)

;; Getting rid of the Fontifying *SLIME
;; Compilation*... (regexps......) message.
(setq font-lock-verbose nil)

luismbo's avatar
luismbo committed
;;;; Keybindings

(global-set-key (kbd "C-c s") 'slime-selector)
(global-set-key (kbd "C-c h") 'clhs-lookup)
(global-set-key (kbd "C-c r") 'slime-pop-find-definition-stack)

(defun slime-toggle-trace-fdefinition (&optional using-context-p)
  "Toggle trace."
  (interactive "P")
  (let* ((spec (if using-context-p
                   (slime-extract-context)
                   (slime-symbol-at-point)))
         (spec (slime-trace-query spec)))
    (message "%s" (slime-eval `(swank:swank-toggle-trace ,spec)))))
(setq slime-autodoc-use-multiline-p t)