dotemacs/contrapunctus/cp-lisp.el

44 lines
1.3 KiB
EmacsLisp

;; (require 'chicken)
;; (require 'slime)
(require 'slime-autoloads)
(global-set-key (kbd "<f5> s") 'slime)
(with-eval-after-load 'slime
(slime-setup)
(setq inferior-lisp-program "/usr/bin/sbcl")
(cp-set-keys
:keymap slime-mode-map
:bindings
`((,(kbd "M-n") next-line)
(,(kbd "M-p") previous-line))))
(defun set-cl-repl-keys ()
(if (or (cp-buffer-name-match-p "^\*inferior-lisp\*\\(<[0-9]*>\\)?")
(eq major-mode 'lisp-mode))
(local-set-key (kbd "TAB") 'completion-at-point)))
(add-hook 'slime-connected-hook 'set-cl-repl-keys)
(add-hook 'comint-mode-hook 'set-cl-repl-keys)
(add-hook 'lisp-mode-hook 'set-cl-repl-keys)
(setq scheme-program-name "csi -:c")
(setq comint-prompt-read-only t)
(add-to-list 'auto-mode-alist '("\\.scm\\'" . geiser-mode))
;; (require 'geiser)
(autoload 'geiser-mode "geiser-mode" "geiser-mode." t)
(with-eval-after-load 'geiser-mode
(cp-set-keys
:unset t
:keymap geiser-mode-map
:bindings
`((,(kbd "C-.")))))
(autoload 'byte-recompile-file "bytecomp" "byte-recompile-file" t)
(defun cp-byte-recompile-el-buffer ()
"Run byte-recompile-file on current buffer if current buffer is
an Emacs Lisp file."
(if (equal major-mode 'emacs-lisp-mode)
(byte-compile-file (buffer-name))))
(add-hook 'after-save-hook 'cp-byte-recompile-el-buffer)