(require 'slime) (require 'slime-repl) (define-slime-contrib slime-banner "Persistent header line and startup animation." (:authors "Helmut Eller " "Luke Gorrie ") (:license "GPL") (:on-load (setq slime-repl-banner-function 'slime-startup-message)) (:on-unload (setq slime-repl-banner-function 'slime-repl-insert-banner))) (defcustom slime-startup-animation (fboundp 'animate-string) "Enable the startup animation." :type '(choice (const :tag "Enable" t) (const :tag "Disable" nil)) :group 'slime-ui) (defcustom slime-header-line-p (boundp 'header-line-format) "If non-nil, display a header line in Slime buffers." :type 'boolean :group 'slime-repl) (defun slime-startup-message () (when slime-header-line-p (setq header-line-format (format "%s Port: %s Pid: %s" (slime-lisp-implementation-type) (slime-connection-port (slime-connection)) (slime-pid)))) (when (zerop (buffer-size)) (let ((welcome (concat "; SLIME " slime-version))) (if slime-startup-animation (animate-string welcome 0 0) (insert welcome))))) (provide 'slime-banner)